O que é um Controlador de Motor Servo?
Definição de Controlador de Motor Servo
Um controlador de motor servo (ou driver de motor servo) é definido como um circuito usado para controlar a posição de um motor servo.
Circuito do Driver de Motor Servo
O circuito do driver de motor servo inclui um microcontrolador, fonte de alimentação, potenciômetro e conectores, garantindo o controle preciso do motor.
Papel do Microcontrolador
O microcontrolador gera pulsos PWM em intervalos específicos para controlar com precisão a posição do motor servo.
Fonte de Alimentação
O design da fonte de alimentação para um controlador de motor servo depende do número de motores conectados. Motores servo geralmente usam uma fonte de 4,8V a 6V, sendo 5V o padrão. Exceder a tensão da fonte pode danificar o motor. O consumo de corrente varia com o torque e é menor no modo ocioso e maior quando em funcionamento. A corrente máxima, conhecida como corrente de estagnação, pode chegar a 1A para alguns motores.
Para o controle de um único motor, use um regulador de tensão como LM317 com dissipador de calor. Para múltiplos motores, é necessário uma fonte de alimentação de alta qualidade com uma classificação de corrente mais alta. Uma SMPS (Fonte de Alimentação Modulada por Comutação) é uma boa escolha.
Diagrama de blocos abaixo mostrando as interconexões em um Driver de Motor Servo

Controle do Motor Servo
O motor servo tem três terminais.
Sinal de posição (pulsos PWM)
Vcc (da fonte de alimentação)
Terra

A posição angular do motor servo é controlada aplicando pulsos PWM de larguras específicas. A duração do pulso varia de aproximadamente 0,5ms para rotação de 0 graus a 2,2ms para rotação de 180 graus. Os pulsos devem ser fornecidos em frequências ao redor de 50Hz a 60Hz.
Para gerar a forma de onda PWM (Modulação de Largura de Pulso), conforme mostrado na figura abaixo, pode-se usar o módulo PWM interno do microcontrolador ou os temporizadores podem ser usados. Usar o bloco PWM é mais flexível, pois a maioria das famílias de microcontroladores é projetada, e este bloco PWM atende melhor às necessidades de aplicações como o motor servo. Para diferentes larguras de pulsos PWM, é necessário programar os registradores internos de acordo.
Agora, também precisamos informar ao microcontrolador quanto ele deve girar. Para esse propósito, podemos usar um simples potenciômetro e usar um ADC para obter o ângulo de rotação ou, para aplicações mais complexas, um acelerômetro pode ser usado.

Algoritmo do Programa
Vamos projetar o programa para controlar um único servo e a entrada de posição é dada via o potenciômetro conectado a um pino do controlador.
Inicialize os pinos de porta para entrada/saída.
Leia o ADC para a posição desejada do servo.
Programe os registradores PWM para o valor desejado.
Assim que você ativa o módulo PWM, o pino do canal PWM selecionado fica alto (lógica 1) e, após a largura necessária ser alcançada, ele volta a ficar baixo (lógica 0). Portanto, após ativar o PWM, você deve iniciar um temporizador com um atraso de cerca de 19 ms e aguardar até que o temporizador transbordeVolte para o passo 2
Existem vários modos de PWM disponíveis que você pode usar, dependendo do microcontrolador escolhido. Algum grau de otimização deve ser feito no código para controlar o servo.
Se você planeja usar mais de um servo, será necessário tantos canais PWM. Cada servo pode receber o sinal PWM sequencialmente. Mas você deve ter cuidado para manter a taxa de repetição de pulsos para cada servo. Caso contrário, o servo sairá de sincronização.