Que é un controlador de motor servo?
Definición de controlador de motor servo
Un controlador de motor servo (ou controlador de motor servo) defínese como un circuito usado para controlar a posición dun motor servo.
Circuíto controlador de motor servo
O circuíto controlador de motor servo inclúe un microcontrolador, alimentación eléctrica, potenciómetro e conectores, asegurando un control preciso do motor.
Papel do microcontrolador
O microcontrolador xera pulsos PWM en intervalos específicos para controlar a posición do motor servo con precisión.
Alimentación eléctrica
O deseño da alimentación eléctrica para un controlador de motor servo depende do número de motores conectados. Os motores servo usan tipicamente unha alimentación de 4,8V a 6V, sendo 5V o estándar. Superar a tensión de alimentación pode danar o motor. A corrente consumida varía coa torsión e é menor no modo de inactividade e maior cando está en funcionamento. A corrente máxima, coñecida como corrente de bloqueo, pode chegar ata 1A en algúns motores.
Para o control dun só motor, usa un regulador de tensión como o LM317 cun dissipador de calor. Para múltiples motores, é necesario unha alimentación de alta calidade con unha clasificación de corrente superior. Un SMPS (Alimentación de Modo Comutado) é unha boa opción.
Diagrama de bloques a continuación - mostrando as interconexións nun controlador de motor servo

Control do motor servo
O motor servo ten tres terminais.
Sinal de posición (pulsos PWM)
Vcc (da alimentación eléctrica)
Terra

A posición angular do motor servo controlase aplicando pulsos PWM de anchuras específicas. A duración dos pulsos vaia desde uns 0,5ms para unha rotación de 0 graos a 2,2ms para unha rotación de 180 graos. Os pulsos deben darse a frecuencias arredor de 50Hz a 60Hz.
Para xerar a forma de onda PWM (Modulación de Anchura de Pulsos), como se mostra na figura a seguir, pódese usar o módulo PWM interno do microcontrolador ou os temporizadores. O uso do bloque PWM é máis flexible xa que a maioría das familias de microcontroladores o deseñan para mellor axustarse ás necesidades das aplicacións como o motor servo. Para diferentes anchuras de pulsos PWM, é necesario programar os rexistros internos en consecuencia.
Agora, tamén temos que indicar ao microcontrolador cantísimo debe rotar. Para este propósito, podemos usar un simple potenciómetro e un ADC para obter o ángulo de rotación ou, para aplicacións máis complexas, un acelerómetro.

Algoritmo do programa
Deseñemos o programa para controlar un único servo e a entrada de posición démosa a través dun potenciómetro conectado a un pin do controlador.
Inicializar os pins do porto para entrada/saída.
Ler o ADC para a posición desexada do servo.
Programar os rexistros PWM para o valor desexado.
Tan pronto como actives o módulo PWM, o pin do canal PWM seleccionado irá alto (lóxica 1) e despois de alcanzar a anchura requireida, volverá a baixo (lóxica 0). Polo tanto, despois de activar o PWM, debes iniciar un temporizador cun retardo de aproximadamente 19 ms e agardar ata que o temporizador transbordeIr ao paso 2
Hai varios modos de PWM dispoñibles que podes usar dependendo do microcontrolador que elixas. Debería facerse algunha medida de optimización no código para controlar o servo.
Se planes usar máis dun servo, requerirás tantos canles PWM. Cada servo pode recibir a sinal PWM secuencialmente. Pero debes ter en conta que a taxa de repetición de pulsos para cada servo debe manterse. Do contrario, o servo sairá de sincronización.