Autor Tema: Frecuencia servo  (Leído 2205 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado antoniojdobarro

  • PIC12
  • **
  • Mensajes: 84
Frecuencia servo
« en: 09 de Julio de 2011, 04:51:46 »
Bien, sabiendo que el servo funciona con una frecuencia de 50Hz, es un Futaba S3003, surge el problema de generar esa frecuencia, ya que hasta con un cristal de 1Mhz no se consigue una frecuencia tan baja, creo recordar ahora mismo que la mínima es de 244Khz.

Como se consigue esa frecuencia con el módulo interno del pica para generara PWM a esa frecuencia?

Desconectado david24

  • PIC10
  • *
  • Mensajes: 5
Re: Frecuencia servo
« Respuesta #1 en: 09 de Julio de 2011, 06:17:51 »
Buenas,

Yo no entiendo mucho pero creo que si se puede conseguir una frecuencia más baja que 244KHz.

Aquí viene bién explicado.

http://www.todopic.com.ar/foros/index.php?topic=21102

juega con esa formula que viene tan bién explicada por fjalex para conseguir el valor de 50 Hz.

hasta otra,

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re: Frecuencia servo
« Respuesta #2 en: 09 de Julio de 2011, 06:26:55 »
No lo he hecho nunca, pero si te puedo dar una idea basica de como va.
Utilizando el prescaler y varios contadores en cascada, hasta obtener el resultado deseado.
Por ejemplo si partimos de un cristal de 4 MHz. y pones el prescaler al maximo, creo que es 255, ya con eso tendrias 4000000/255=15686,27 Hz. A partir de ahi para obtener los 50 Hz. necesarios, tendrias que dividir por 314, (157*2), pero obtendrias exactamente 49.9562 Hz.
Para hacer mas exacto el resultado, podrias probar con 250 en el prescaler y 320, (160*2), 160 en la segunda etapa y 2 en la tercera. Con eso obtendrias exactamente 50 Hz.
Repito es solo lo que yo creo, pero no lo he probado. Si estoy equivocado que alguien lo corrija.

Saludos.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Frecuencia servo
« Respuesta #3 en: 13 de Julio de 2011, 04:48:58 »
Creo que la manera mas sencilla, por lo menos la que yo uso, es con un timer hacer desbordes de 20ms, esto ya te marca 50hz, cada vez que el timer se desborda, pones a 1 el pin que tengas conectado al servo, y llamas a la temporizacion (yo estas como son pequeñas, entre0.3ms y 2.3ms) las hago por bucle, si quieres 0º (o -90º segun como se mire) temporizacion de 0.3ms, si quieres 90º (0 0º) 1.3ms y si quieres 180º (+90º) 2.3ms.

Los servos para que se mantengan en su posicion hay que enviarles señal constantemente, porque sino se quedan muertos, locos, sin fuerza.

Supon que quieres tener un servo 1s a -90º despues 1s a 0º y despues 1s a +90º. Tendrias que enviar 50 pulsos de 0.3ms cada 20ms, a continuacion 50pulsos de 1.3ms cada 20ms y por ultimo 50pulsos de 2.3ms cada 20ms.

Bueno espero que os ayude en algo.


 

anything