Vale, lo busco y te lo envío pero no se si te valdrá de mucho. Yo lo hice en PIC en lenguaje ensamblador. No se parece en nada al C del Arduino.
El micro tiene que generar un tren de pulsos a una frecuencia entre 50 y 100 Hz, cuanto más fija mejor. El ancho de pulso debe estar entre 1 y 2 mSeg que son las posiciones extremas del servo.
El truco está en crear un contador que cuente un tiempo que será el retardo que apliques antes de cambiar el ancho de impulso.
Cuanto mayor sea la cuenta de este contador más lento se moverá el servo ya que el retardo entre un ancho de pulso y el siguiente será mayor.
A ver si con un ejemplo consigo explicarme mejor:
- Un extremo del desvío corresponde a 1,2 mSeg y el otro a 1,4 mSeg,
- Tenemos 10 posiciones intermedias (1,20 - 1,22 - 1,24 - 1,26 - - 1,28 - 1,30 - 1,32 - 1,34 - 1,36 - 1,38 y 1,40).
- La posición inicial sea la de 1,2 y la final la de 1,4 mSeg.
Los pasos son:
- El micro genera el ancho de pulso de 1,2 mSeg.
- Arranca un contador que cuenta hasta n.
- Al finalizar el contador se resetea y se pasa al ancho de pulso siguiente (1,22 mSeg).
- Repite este último paso hasta alcanzar 1,40 mSeg.
De esta forma hacemos el cambio pero retardándolo. Cuanto mayor será el valor de n más lento se moverá el servo.
No sé si me habré explicado bien.
El micro tiene que generar un tren de pulsos a una frecuencia entre 50 y 100 Hz, cuanto más fija mejor. El ancho de pulso debe estar entre 1 y 2 mSeg que son las posiciones extremas del servo.
El truco está en crear un contador que cuente un tiempo que será el retardo que apliques antes de cambiar el ancho de impulso.
Cuanto mayor sea la cuenta de este contador más lento se moverá el servo ya que el retardo entre un ancho de pulso y el siguiente será mayor.
A ver si con un ejemplo consigo explicarme mejor:
- Un extremo del desvío corresponde a 1,2 mSeg y el otro a 1,4 mSeg,
- Tenemos 10 posiciones intermedias (1,20 - 1,22 - 1,24 - 1,26 - - 1,28 - 1,30 - 1,32 - 1,34 - 1,36 - 1,38 y 1,40).
- La posición inicial sea la de 1,2 y la final la de 1,4 mSeg.
Los pasos son:
- El micro genera el ancho de pulso de 1,2 mSeg.
- Arranca un contador que cuenta hasta n.
- Al finalizar el contador se resetea y se pasa al ancho de pulso siguiente (1,22 mSeg).
- Repite este último paso hasta alcanzar 1,40 mSeg.
De esta forma hacemos el cambio pero retardándolo. Cuanto mayor será el valor de n más lento se moverá el servo.
No sé si me habré explicado bien.
Luis Alberto