# Frecuencia para control de servomotor con señal PWM



## cacahuano (Ago 25, 2009)

Estimados Señores:
Estoy trabajando un proyecto de un brazo robotico controlado por PLC. Tal brazo se mueve mediante servomotores. He leido que la frecuencia de la señal PWM necesaria para su control debe ser de unos 50Hz (20ms) aprox. para un servo marca Hitec y que si esa frecuencia disminuye demasiado el servo puede "caerse" osea que no resistiria un torque externo. 
Mi pregunta va por lo contrario, que sucede si aumento demasiado la frecuencia???(Dentro de margenes razonables obviamente) hay alguna limitante por ese lado???


----------



## renatopa (Nov 9, 2009)

parece que amigo no hay muchos en este campo, yo tambien tengo dudas tengo que armar un circuito con  un control pwm pero con cplds de un servo motor, espero que alguien podria ayudarme un poco


----------



## Eduardo ringler (Nov 10, 2009)

Amigos ..el movimiento maximo del servo de modelismo es de 180º y el valor del ancho de pulso es de 1 a 2 milisegundos ...0º es 1mls - 90º 1,5mls - 180 2mls 
...la precaucion es que si tiene que mover un peso mayor al diseñado el servo se rompe ...el motor se estropea 
Hay servos de diferentes tamaños y torques 
Espero ayudar ...saludos


----------



## asdwier (Nov 19, 2009)

el pwm ponelo en 200Hz


----------



## nietzche (Jun 30, 2010)

las hojas de datos de los servos te dicen que por ejemplo: para 1.5 ms son 90 grados,, pero tu le puedes poner digamos 400 Hz de frecuencia y aun asi obtener 1.5 ms de duty cicle. El periodo de 400 es 2.5 ms, asi que si le alcanza perfectamente, si te pide que en 180 grados sean 2 ms, tambien se ajusta con el periodo. no se si me expliquè. el problema es el duty cicle no la frecuencia,  si estoy en un error corrijanme


----------



## wilovb (Jul 14, 2010)

facil amigo, solo tiene que enviarles un pulso de 1 a 2 ms en un ciclo de 20ms, si el servomotor es de 50hz, esto se logra muy facilmente con un AVR el cual tienes que fijarlo en un preescaler de 256 en fastPWM con una frecuencia del micro en 4Mhz. como ejemplo puedes configurar los ADC del micro para que a traves de un PIN puedas variar los grados del servomotor con un potenciometro multivuelta


----------



## FENIXadr (Feb 2, 2011)

Hola... creo que para saber si se puede o no modificar el período del PWM de un servo, primero deberíamos saber como trata los pulsos dicho servo... yo no se como trata internamente un servo los pulsos, pero si yo construyera uno lo haría de la siguiente manera

Junto con el brazo que gira de 0º a 180º, giraría un potenciómetro que me indicaría cuantos grados se ha movido, luego, con una resistencia en serie y un capacitor a masa, convertiría en un valor de tensión los pulsos del PWM entrante, con lo cual la modificación del duty cicle haría variar esta tensión nominal y el mecanismo de control solo debería igualar esta tensión con su correspondiente del potenciómetro antes mensionado, moviendo el motor hacia un lado o hacia otro.
Un servo trabajando de esta manera, sí tendría problemas si modificamos los 20 ms, porque no llegaría a los valores de tensión adecuados (Frecuencia baja), o con los milisegundos del duty cicle adecuado se pasaría (frecuencia alta).
Ésta puede ser la explicación del inicio de este hilo que decia que si la frecuencia disminuye, el servo puede "caerse". 

Resumiendo... es muy posible que si modificamos la frecuencia que especifica el fabricante, tengamos problemas, una forma de saberlo sería con prueba y error, con un osciloscopio medir que ponemos la frecuencia adecuada y después variarla para ver la respuesta del servo.

bueno eso es todo, espero haber ayudado de alguna manera...


----------



## arielin1 (Jul 5, 2011)

tengo una pregunta. cualquier servo tiene la misma proporcion algular, respecto del ancho de pulso, en su pin de disparo?


----------



## gca (Jul 7, 2011)

No ,varia segun la marca. Algunos van de 1 a 2 ms otros de 0.7 a 2.3ms... etc.
Busca en google que hay tablas que segun marca te dicen el ancho de pulso.

Saludos


----------



## juan p133 (May 20, 2015)

wilovb dijo:


> facil amigo, solo tiene que enviarles un pulso de 1 a 2 ms en un ciclo de 20ms, si el servomotor es de 50hz, esto se logra muy facilmente con un AVR el cual tienes que fijarlo en un preescaler de 256 en fastPWM con una frecuencia del micro en 4Mhz. como ejemplo puedes configurar los ADC del micro para que a traves de un PIN puedas variar los grados del servomotor con un potenciometro multivuelta




hola amigo de casualidad tu sabes programar un servo de 360 grados pero sin utilizar el potenciometro?  necesito ayuda


----------



## Recucuno (Ago 23, 2016)

juan p133 dijo:


> hola amigo de casualidad tu sabes programar un servo de 360 grados pero sin utilizar el potenciometro?  necesito ayuda



El servo cuenta con un encoder, este mecanismo genera pulsos digitales por medio de un sensor infrarrojo, los pulsos pueden ser leídos, por ejemplo, con un PIC o Arduino. De este modo haces el calculo de acuerdo con los pulsos generados por vuelta, esta relación la encuentras en la placa del cervo. de este modo, puedes controlar la posición energizando el motor y contando los pulsos requeridos para que se detenga.



Alguna idea para mantener un torque eficiente con una velocidad relativamente baja usando PWM en un servomotor???????


----------

