Servo Motors encontre grandes aplicações em indústrias na área de automação, controle e robótica. Os servomotores são bem conhecidos por seu controle preciso e funcionam segundo o princípio do servomecanismo. Os servo motores podem ser executados em ângulos precisos usando PWM. O PWM (modulação por largura de pulso) é o princípio básico de funcionamento por trás de um servo motor (para mais detalhes sobre PWM consulte Modo PWM com correção de fase). Este artigo explora a interface do servo motor com ATmega16. Também para saber mais sobre o mecanismo servo, consulte Interface do Servo Motor com 8051.
Existem diferentes tipos de servos disponíveis no mercado. Este artigo limita seu escopo à interface de um servo comumente disponível, amplamente utilizado por amadores, com o ATmega16. Tal servo consiste em três fios de alimentação positiva, terra e um sinal de controle. Ao contrário de outros motores, os servomotores não requerem nenhum driver. Quando um sinal PWM é aplicado ao seu pino de controle, o eixo gira em um ângulo específico dependendo do ciclo de trabalho do pulso.
Fig. 2: Ciclo de trabalho de pulso e deslocamento angular do eixo na aplicação da onda PWM
Na figura acima, o tempo de ativação do pulso é de 1 ms e o tempo de desligamento do pulso é de 18 ms, o que gira o eixo em -90 graus. Da mesma forma, se o tempo de ativação do pulso for 1,5 ms e o tempo de desligamento do pulso for igual, o servo gira para 00 e se o pulso do tempo ON aumentar para 2ms, ele gira para +900. Isso dá uma rotação completa de 180 graus. O motor mantém sua posição para cada sinal correspondente.
Nota: Antes de iniciar o servo, verifique primeiro o pulso ON mais baixo que gira o servo em -90 graus e o pulso ON mais alto que gira o servo em +90 graus enquanto mantém o pulso OFF constante. Ao fazer experiências com servomotores VS2, descobriu-se que para -90 graus o pulso ON necessário era de 50us e o pulso OFF era de 18ms. E para +90 graus o pulso ON foi de 2050us e manteve o tempo OFF igual a 18ms. As coisas podem diferir no tipo e na qualidade.
Um pulso contínuo de 50 us no tempo ON e 18 ms no tempo OFF gira o eixo do servo em -90 graus.
enquanto(1)
Se o tempo ON for aumentado, o ângulo de rotação também aumenta.
O código fornecido gira o eixo servo em 20 graus a cada 5 segundos.
Código-fonte do projeto
###
// Programa para girar o servo em passos de 20 graus.
###
Diagramas de circuito
Diagrama de circuito de como fazer a interface do servomotor com o microcontrolador AVR-ATmega16 |
Componentes do Projeto
- ATmega16