Sunteți pe pagina 1din 24

Control de servomotores

(c) Domingo Llorente 2010

Conceptos bsicos
Un servomotor (tambin llamado Servo) es un dispositivo, que tiene la capacidad de ubicarse en cualquier posicin dentro de su rango de operacin, (entre -90 y +90) y mantenerse estable en dicha posicin. Est conformado por un motor c.c, una caja reductora y un circuito de control. Es posible modificar un servomotor para obtener un motor de corriente continua. Los servos se utilizan frecuentemente en sistemas de radio control y en robtica.

(c) Domingo Llorente 2010

Aplicaciones de los servomotores

Hexpodos

Robots humanoides

Brazos robotizados
(c) Domingo Llorente 2010

Radio control
3

Partes de un servomotor
Los servos se suelen alimentar a una tensin entre 4 y 6v. El cable de conexin es de tres hilos: rojo (+Vcc), negro(Gnd) y el de seal que puede ser blanco, amarillo o naranja. Para que el servo mantenga su posicin tiene que estar alimentado y enviar, continuamente, el tren de pulsos adecuado a cada posicin.

(c) Domingo Llorente 2010

Funcionamiento del servo


La frecuencia de los pulsos de control debe estar entre 50 y 100Hz, lo cual implica periodos de entre 10 y 20ms. La duracin del tiempo en alto suele estar entre 0.3 y 2.5ms Relacin Tiempo->Posicin (2.5-0.5)/180.0=11.11us Es decir, a partir de los 500us cada 11.11us el servo se mueve un grado a la derecha.

(c) Domingo Llorente 2010

Pulsos de control del servo Hitec HS-300


20 ms hitec
HS-300

Extremo Izquierda 0,3 ms 20 ms 90 hitec Posicin Central 1,2 ms 20 ms 180 Extremo Derecha 2,1 ms hitec
HS-300 HS-300

(c) Domingo Llorente 2010

Caractersticas del servo Hitec HS-422


Caractersticas: Dimensiones:

(c) Domingo Llorente 2010

Caractersticas del servo Futaba S3003

Dimensiones:

(c) Domingo Llorente 2010

Tabla de tiempos para servos Futaba

(c) Domingo Llorente 2010

Tabla de tiempos para servos Hitec

(c) Domingo Llorente 2010

10

Recomendaciones
En un proyecto con control de motores es, muy recomendable, utilizar dos fuentes de alimentacin independientes, una para la electrnica (alimentacin del microcontrolador y circuitos integrados) y otra para los motores. No olvides unir las masas de ambas fuentes. Cables de seal de servos demasiado largos pueden provocar movimientos inesperados (efecto antena del cable, interferencia con otros servos). Para evitarlo se pueden utilizar cables apantallados. Procura no forzar nunca un servo. Un servo en funcionamiento normal NO se debe calentar y NO debe de vibrar. Respeta siempre los tiempos que indica el fabricante en cuanto a refresco de la seal de posicionamiento.

(c) Domingo Llorente 2010

11

Simulacin en Proteus (I)


En Proteus el servomotor se llama MOTOR-PWMSERVO y se puede elegir como un componente ms.

MOTOR-PWMSERVO

(c) Domingo Llorente 2010

12

Simulacin en Proteus (II)


El componente MOTOR-PWMSERVO se puede editar para ajustar los parmetros al servo real que tengamos.

Tiempo mnimo del Pulso en ms (pos=-90)

Tiempo mximo del Pulso en ms (pos=+90)

(c) Domingo Llorente 2010

13

Ejemplo
Disear un programa que posicione un servo conectado en el pin RC1 en la posicin de -90 si RA0=0 o en la de +90 si RA0=1. Mostrar mensajes en el LCD y utilizar la interrrupcin del Timer 1 sin preescaler para generar los tiempos de control.

(c) Domingo Llorente 2010

14

Solucin en CCS (I)


Comenzamos utilizando el asistente PIC Wizard

Luego hay que crear la carpeta para nuestro proyecto y dar un nombre al archivo con extensin .pjt

(c) Domingo Llorente 2010

15

Solucin en CCS (II)


Elegir: Pic: PIC17F877A Frecuencia del oscilador: 4Mhz Fuses: Crystal osc <=4Mhz Memoria de programa: No protegida

(c) Domingo Llorente 2010

16

Solucin en CCS (III)


En la pestaa de Interrups marcar la casilla de Timer 1 overflow

(c) Domingo Llorente 2010

17

Solucin en CCS (IV)


En la pestaa Code podemos ver el cdigo que se aadir en nuestro programa.

(c) Domingo Llorente 2010

18

Solucin en CCS (V)


En la pestaa de Timers configurar el TIMER 1 como temporizador sin preescaler.

(c) Domingo Llorente 2010

19

Solucin en CCS (VI)


En la pestaa Code podemos ver el cdigo que se aadir en nuestro programa.

(c) Domingo Llorente 2010

20

Solucin en CCS (VII)


El compilador nos genera el siguiente cdigo

(c) Domingo Llorente 2010

21

Solucin en CCS (VIII)


Cabecera del programa con los Fuses y declaracin de variables globales:

(c) Domingo Llorente 2010

22

Solucin en CCS (IX)


Una posible funcin de Interrupcin:

(c) Domingo Llorente 2010

23

El programa principal:

(c) Domingo Llorente 2010

24

S-ar putea să vă placă și