TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: arcadi en 18 de Noviembre de 2008, 18:31:27

Título: Servo Futaba S3003
Publicado por: arcadi en 18 de Noviembre de 2008, 18:31:27
Buenas,

me gustaria saber si puedo conectar directamente el PIC 18F452 al PWM del Servo Futaba S3003. Utilizo el puerto generador de PWM CCP1. Es que he visto esquemas que utilizan un driver para los servos y estoy en dudas.

Muchas gracias.
Título: Re: Servo Futaba S3003
Publicado por: ESTECA55 en 18 de Noviembre de 2008, 22:48:38
Hola,

Si podes conectarlo directamente, de hecho en al red hay varias aplicaciones de ese tipo como las interfaz para varios servos por RS232 o USB.

saludos
Título: Re: Servo Futaba S3003
Publicado por: RedPic en 19 de Noviembre de 2008, 04:33:38
Eléctricamente no hay ningún problema en conectar la señal PWM a pin de control del servo.

En lo que si puedes tener problemas es con el PWM generado con el hardware del PIC. Estos servos (http://www.todopic.com.ar/foros/index.php?topic=20335.0) reciben una señal de 50 hz (20 ms de periodo) y a menos que el PIC tenga una señal de Clock extremadamente baja el PWM de menor frecuencia que puedes generar es del orden de cientos de herzios.
Título: Re: Servo Futaba S3003
Publicado por: Slalen en 19 de Noviembre de 2008, 06:10:41
Mira estos enlaces:
http://slalen.iespana.es/index.php?option=com_content&task=view&id=32&Itemid=48
http://slalen.iespana.es/index.php?option=com_content&task=view&id=36&Itemid=53
Título: Re: Servo Futaba S3003
Publicado por: arcadi en 19 de Noviembre de 2008, 07:08:19
Lo que se:

PWM períod=(PR2+1)*4*Tosc*(TMR2 prescale value)

PWM duty cycle=(CCPR1L:CCP1CON<5:4>)*Tosc*(TMR2 prescale value)


Utilizo el servo "trucado" para la rotacion continuada.


------------Calculos------------------------------------

                               fosc=4*10MHz    ----->   La frequencia del oscilador * 4
                               PWM=20ms        ----->   Frequencia de trabajo del servo en PWM
                               TMR2 preescaler=16   ---->  Preescaler del TMR2


PWM períod=(PR2+1)*4*Tosc*(TMR2 prescale value)

20ms=(PR2+1)*4*0.025us*16 ------> PR2=12499 -----> no puede ser
20ms=(255+1)*4*Tosc*16 ------> fosc=4*76,8kHz ----> no se puede

No se puede hacer por el generador de PWM del 18F452.

Solucion: Por interrupcion del TIMER0 y variando el valor de esta interrupcion.


OK muchas gracias