Ejemplo de control de Servos con PICX1

SCM Hacker . Sección Proyectos
Número: 17

El Magazine electrónico de SCM

International


Presentando la nueva tarjeta para desarrollo con PICs!

Ejemplo de control de un Servo para RC con entrada de control con potenciómetro.

 
SCM home
SCM International , le provee puerta a puerta a todo el mundo!
Consultas
Cursos
PLCs
Sensores
Micros
Robótica
Alambres Musculares

¿Requiere de desarrollos a medida? o la integración de un sistema?

On-line Book Store

Compre los mejores libros. Ahorre! Pague menos y con costos de envío reducidos!

Electrónica - Mecánica - Micros - Robótica

Tenemos un nuevo kit de desarrollo para PICs en nuestro catalogo. Se trata de una tarjeta de desarrollo y entrenamiento para microcontroladores PICs. Puede tener información sobre ella en nuestro web comercial.

Tenga mas informacion sobre PICX1Esta tarjeta posee tres potenciometros conectados a tres de los pines del zócalo de 40 pines en el cual se insertara el microcontrolador PIC. La tarjeta fue especialmente diseñada para el microcontrolador PIC 16F874, aunque puede ser utilizada con otros microcontroladores.

La tarjeta PICX1 posee tres de los canales analógicos  conectados a tres potenciometros , y además posee dos de su pines de I/O conectados a conectores para servos. Esto permitirá utilizando uno de estos potes, generar una tensión variable en forma manual , la cual será leida porel conversor analógico del PIC. Los valores adquiridos por el conversor analógico serán tomados como valores de control de posición deseados para el servo. Es decir si el pote se encuentra en el centro, el servo estará en reposo, y si se modifica la posición del potenciómetro el servo tendera a seguir esa nueva posición.

En este ejemplo explicaremos como acceder a estos recursos del PICX1 desde un programa desarrollado en PIC BASIC para implementar la aplicación descripta.

' Ejemplo en Basic para mover un servo comandado por un
' potenciómetro conectado a un canal analógico de
' un microcontrolador PIC

pos var word

' Variable conteniendo la posicion deseada
' para el servo

servo1 var PORTC.1

' Pin al que se encuentra conectado el servo

ADCON1=4

Low servo1

' Pone la salida del servo a bajo

Gosub reposo

' Posiciona el servo en reposo


main:

ADECON0.2=1

' Dispara una lectura de la posicion del pote

Pauseus 50

pos = ADRESH * 4

' Toma el valor analogico y lo multiplica por 4

servo1 = 1

' Inicia la generacion del pulso de control

Pauseus pos

servo1 = 0

' Termina el pulso de control del servo

Pause 16

' La frecuencia de actualizacion del servo es
' de aproximadamente 60Herz.

Goto main

 

El procedimiento de control es muy sencillo. Inicialmente el algoritmo mide la posición en que se encuentra el potenciometro, por medio de una rutina de adquisición de datos. El valor obtenido tendrá un rango de 0 a 256. Los pulsos a generarse deberán tener como parámetros valores entre 0 y 2000. Ese es el motivo por el cual multiplicamos el valor por 4, tratando de obtener un valor adecuado para el ancho de pulso de control del servo. esta operación se repetirá cíclicamente.

wpe4.gif (3728 bytes)

 

Copyright © 2000 SCM International, Inc.s. All rights reserved.

Por favor, lea cuidadosamente los términos y condiciones descriptas para el uso de   notas de aplicación, materiales, e información de este sitio.

Home page de SCM International

SCM Hacker Magazine home page