¿Qué es un controlador de motor servo?
Definición de controlador de motor servo
Un controlador de motor servo (o conductor de motor servo) se define como un circuito utilizado para controlar la posición de un motor servo.
Circuito del conductor de motor servo
El circuito del conductor de motor servo incluye un microcontrolador, fuente de alimentación, potenciómetro y conectores, asegurando un control preciso del motor.
Papel del microcontrolador
El microcontrolador genera pulsos PWM en intervalos específicos para controlar con precisión la posición del motor servo.
Fuente de alimentación
El diseño de la fuente de alimentación para un controlador de motor servo depende del número de motores conectados. Los motores servo típicamente utilizan una fuente de 4.8V a 6V, siendo 5V el estándar. Superar el voltaje de alimentación puede dañar el motor. El consumo de corriente varía con el par y es menor en modo inactivo y mayor cuando está en funcionamiento. La corriente máxima, conocida como corriente de bloqueo, puede alcanzar hasta 1A en algunos motores.
Para el control de un solo motor, utilice un regulador de voltaje como LM317 con disipador de calor. Para múltiples motores, es necesario una fuente de alimentación de alta calidad con una clasificación de corriente más alta. Una fuente de alimentación SMPS (Switched Mode Power Supply) es una buena opción.
Diagrama de bloques a continuación, mostrando las interconexiones en un conductor de motor servo

Control del motor servo
El motor servo tiene tres terminales.
Señal de posición (pulsos PWM)
Vcc (de la fuente de alimentación)
Tierra

La posición angular del motor servo se controla aplicando pulsos PWM de anchuras específicas. La duración del pulso varía desde aproximadamente 0.5ms para una rotación de 0 grados hasta 2.2ms para una rotación de 180 grados. Los pulsos deben darse a frecuencias alrededor de 50Hz a 60Hz.
Para generar la forma de onda PWM (Modulación por Ancho de Pulso), como se muestra en la figura a continuación, se puede utilizar el módulo PWM interno del microcontrolador o los temporizadores. Utilizar el bloque PWM es más flexible, ya que la mayoría de las familias de microcontroladores lo diseñan, y este bloque PWM se adapta mejor a las necesidades de aplicaciones como un motor servo. Para diferentes anchuras de pulsos PWM, es necesario programar los registros internos en consecuencia.
Ahora, también necesitamos indicar al microcontrolador cuánto debe girar. Para este propósito, podemos usar un potenciómetro simple y un ADC para obtener el ángulo de rotación, o para aplicaciones más complejas, se puede usar un acelerómetro.

Algoritmo del programa
Diseñemos el programa para controlar un solo servo y la entrada de posición se da a través del potenciómetro conectado a un pin del controlador.
Inicializar los pines de puerto para entrada/salida.
Leer el ADC para la posición deseada del servo.
Programar los registros PWM para el valor deseado.
Tan pronto como se activa el módulo PWM, el pin del canal PWM seleccionado se pone alto (lógica 1) y después de alcanzar el ancho requerido, volverá a ponerse bajo (lógica 0). Así, después de activar el PWM, debe iniciar un temporizador con un retardo de aproximadamente 19 ms y esperar hasta que el temporizador se desborde. Vaya al paso 2.
Existen varios modos de PWM disponibles que se pueden usar dependiendo del microcontrolador que elija. Se debe realizar cierto grado de optimización en el código para controlar el servo.
Si planea usar más de un servo, necesitará tantos canales PWM. Cada servo puede recibir la señal PWM secuencialmente. Pero debe tener cuidado de mantener la tasa de repetición de pulsos para cada servo. De lo contrario, el servo se desincronizará.