Site icon Blog Usinainfo

Servo Motor Arduino – Diferenças entre o Servo de 180º e o Servo de Rotação Contínua

O Servo Motor Arduino é um equipamento utilizado nos mais diversificados projetos para controle de posição e movimento e está geralmente associado a projetos de pequena e média escala. Mesmo que bastante semelhantes, o servo motor é comercializado com ângulos de 180º e 360º (Rotação contínua).

Servo Motor 180 e 360 Graus

Por ser um produto de fácil controle e aplicação, existem diversos modelos deste para venda, modelos com engrenagens metálicas e de plástico, modelos de diversos tamanhos e também servos motores de posição e servos motores de rotação contínua, um servo motor de 360º que possui especificações diferentes dos demais.

Para o servo motor de 180º existem diversos códigos para controle de posição e velocidade, porém estes códigos não se aplicam ao servo motor de 360º uma vez que este não possui as mesmas funções e não possibilita determinar um ângulo de parada para o mesmo, por exemplo.

Neste artigo vamos verificar a diferença entre os servos de 180 e 360º e desenvolver um método de controle para o servo motor de rotação contínua, vamos conhecer um pouco melhor o funcionamento destes motores e como eles são desenvolvidos.

 

Servo Motor Arduino de Posição

Os servos motores de posição são aqueles com ângulos máximos de 180º e que conseguem posicionar-se em ângulos exatos dentro do limite e a partir de 0º. São recomendados para projetos que necessitam de posicionamentos precisos e não corram perigo de alterar sua posição.

Braço robótico com Arduino e Servos Motores

Uma vez que posicionado no ângulo determinado através do código Arduino, este equipamento tende a manter sua posição e mostrar-se resistente a reações externas, fator bastante importante em projetos e que se diferencia de motores DC, por exemplo, que não possibilitam posicionamentos específicos e não fixam posição já que quando parados não possuem tensão aplicada.

Sendo este, o modelo mais comum encontrado para venda e normalmente utilizado nos mais diversificados projetos, fica fácil encontrarmos códigos de funcionamento e esquemas de ligação para utilizar junto ao mesmo. Uma facilidade de utilização do Servo Motor está no fato de precisar uma única biblioteca já inclusa no Software Arduino.

O Servo motor é constituído de forma mecânica por um motor DC e um grupo de engrenagens, estes elementos são responsáveis pelo movimento, diminuição das rotações e parcial suba no torque básico do motor base.

Servo Motor Arduino e Sistema de Engrenagem

O controle de posição do servo motor está diretamente relacionado um tipo de trimpot, que varia a sua resistência e indica o ângulo em que o servo se encontra, instalado junto de um pequeno circuito elétrico, estes são responsáveis pelo funcionamento e interpretação dos dados PWM fornecidos pelo Arduino.

Trimpot responsável pelo controle de posição do Servo Motor Arduino

Alguns modelos de Servo Motor como o Micro Servo Motor SG90, talvez o modelo mais famoso desta linha, possuem um exclusivo sistema de segurança que delimita os valores máximos e mínimos de deslocamento através de uma peça plástica fixada junto a uma de suas engrenagens, veja:

Sistema de trava para ângulos menores que 180º do Micro Servo Motor SG90

Para compreender um pouco melhor da aplicação e desenvolvimento de projetos junto ao Servo Motor Arduino, acesse o link abaixo, onde constam códigos e esquemas elétricos para seu controle.

https://www.usinainfo.com.br/blog/controle-de-posicao-servo-motor-com-arduino/

 

Servo Motor Arduino de Rotação Contínua

Diferente do Servo Motor de Posição, este modelo possui a capacidade de realizar movimentos maiores que 180º, possibilitando voltas contínuas que por sua vez, eliminam capacidade de controle do ângulo, ou seja, este servo não possui a capacidade de deslocar-se de acordo com ângulos determinados via código.

Semelhante a um motor DC, o Servo Motor 360º possibilita movimentos continuados em um único sentido, porém destaca-se uma vez que não necessita de um drive para inverter sua rotação, este procedimento é realizado diretamente via código. Um fator que diferencia o Servo Motor de Rotação Contínua do modelo de 180º é que este perde em partes a sua resistência às intervenções externas de movimento.

O Servo Motor de Rotação Contínua também é constituído mecanicamente por um motor DC e um grupo de engrenagens, responsáveis pelo movimento, diminuição das rotações e parcial suba no torque básico do motor base. O que diferencia o Servo de Rotação Contínua para o Servo de posição é a ausência do trimpot para verificação de ângulo.

Módulo para controle de movimento e interpretação de dados sem Trimpot

O processo de fabricação de ambos os modelos tratados neste artigo são os mesmos, porém no Servo Motor de Rotação Contínua não é incluído o trimpot, o que gera um espaço vazio dentro do encapsulamento e faz necessária a inclusão de um pequeno divisor que separa o pino de rotação das engrenagens e impede o contado deste com o circuito.

Até então tratamos das diferenças físicas deste modelo, porém outra diferença bastante importante é quanto a sua programação. Os códigos utilizados no Servo de Posição não funciona da mesma maneira quando aplicado em projetos com o Servo Motor de Rotação Contínua.

 

Projeto de Aplicação para Servo Motor Arduino 360º

O esquema de ligação de ambos os modelos é o mesmo, o servo motor é constituído de três fios, dois de alimentação e um de comunicação com isto já conseguimos trabalhar os movimentos através do código Arduino. Veja abaixo, o esquema de ligação para aplicação do código Arduino:

Esquema de Ligação Servo Motor Arduino 360º

Para quem preferir, fica disponível também esquema elétrico de ligação do projeto acima:

Esquema Elétrico Servo Motor Arduino 360º

Como vemos, nada diferente do projeto desenvolvido com o Servo Motor de Posição, porém o código para utilização do Servo de Rotação Contínua possui algumas particularidades que se diferenciam bastante, veja abaixo o código completo e após breve explicação:
[crayon-66364dbe94933439595324/]
Teoricamente, os processos para execução do código são os mesmos, só que como já foi tratado anteriormente, o servo motor de rotação contínua não reconhece os ângulos como variáveis de posição, neste equipamento, os ângulos são tratados como variáveis de velocidade e sentido de rotação. Em resumo:

Por mais que não faça sentido, é isto mesmo, são os ângulos que determinam a velocidade de movimento do Servo Motor de Rotação Contínua, no código realizamos a variação do ângulo e velocidade através do seguinte comando:
[crayon-66364dbe94938642231555/]
De maneira interpretada, a função diz: para ângulos menores que 180 e acima de 110 soma-se em intervalos de 2 segundos um ângulo de 10º e executa-se este após ajuste, sendo que após chegar ao valor máximo termina a sequencia e vai para próxima.

 

Conclusão

Por mais que pareçam semelhantes em sua forma física, os Sevos Motores de 180 e 360º possuem peculiaridades que os diferenciam bastante, existem modelos de 180º com trava fim de curso e outros sem, modelos de posição possuem trimpot para determinar posição enquanto servos de rotação contínua não possuem.

Mesmo com um esquema de ligação extremamente igual, o código destes dois modelos de Servo Motor Arduino se diferencia uma vez que o de Rotação Contínua possui configurações próprias, mesmo que semelhantes, mas com ações diferentes.

Cada modelo possui suas distinções, porém um fator que deixa a desejar no Servo Motor de 360º é a sua perda de torque quando reduzida a sua velocidade, teoricamente o torque está diretamente relacionado com a velocidade.

Se já utilizou este motor e encontrou uma solução para sua utilização, comente abaixo e compartilhe as suas experiências com os demais, muitas outras possibilidades podem ser exploradas, a aplicação de uma biblioteca VarSpeedServo, por exemplo, ou diferentes meios de dispor as variáveis para uma melhor experiência.

Sair da versão mobile