O servo motor possibilita o controle de sua posição e é conhecido pela sua versatilidade, sendo apropriado para aplicação nos mais variados projetos.
Disponível no mercado em diferentes modelos, é ideal para aeromodelismo, projetos mecatrônicos, robótica em geral, automação de processos, etc.
Muitos projetistas utilizam o arduino para controle do servo motor, devido à sua facilidade e eficiência.
Preparamos esse conteúdo para que você aprenda como controlar servo motor com arduino. Boa leitura!
Como funciona um servo motor com arduino?
Existem muitos tipos de servomotores, como os chamados “servos de hobby”, que são os atuadores mais frequentemente usados em projetos com arduino.
O modelo mais procurado é o micro servo motor 9g, por ser compacto e ter alta potência de saída. Esse tipo de servo gira aproximadamente 180 graus, sendo 90 em cada direção.
No interior de um servo hobby há um motor DC de alta velocidade e baixo torque, uma caixa de engrenagens, um potenciômetro e um circuito de controle. Conforme o motor gira, o potenciômetro também gira, resultando em tensão relacionada ao ângulo absoluto do eixo de saída.
No circuito de controle, é feita uma comparação desta tensão com a tensão da linha de sinal e, se preciso, é ativada uma ponte H para que o motor gire em qualquer direção até os sinais chegarem a uma diferença zero.
O que é necessário para controlar o servo motor com arduino? Principais componentes
Para conectar um servo motor e girá-lo para diferentes posições, são necessários: uma placa arduino ligada a um computador via cabo USB; um servo motor; e fios de ligação em ponte.
Para conectar o servo ao arduino, observe que ele possui um conector fêmea com 3 pinos – o mais escuro deles deve ser conectado à placa.
Depois disso, o cabo de alimentação (vermelho) deve ser conectado aos 5v do arduino. O último fio deve ser conectado a um pino digital na placa microcontroladora.
Como controlar o servo motor com arduino?
Para controlar um servo motor com arduino basta conectar o pino de controle do dispositivo a qualquer pino digital do arduino, conectando o aterramento e os fios positivos à fonte de 5V e o aterramento da placa ao aterramento do servo.
Você pode usar esse código simples para controle:
/* Servo Motor Control using the Arduino Servo Library by Dejan, https://howtomechatronics.com */ #include Servo myservo; // create servo object to control a servo void setup() { myservo.attach(9,600,2300); // (pin, min, max) } void loop() { myservo.write(0); // tell servo to go to a particular angle delay(1000); myservo.write(90); delay(500); myservo.write(135); delay(500); myservo.write(180); delay(1500); }
Neste exemplo, é preciso apenas incluir a biblioteca, definir o objeto servo, e utilizando a função attachment(), definir o pino ao qual o servo está conectado, assim como os valores mínimo e máximo das durações dos pulsos. Após isso, use a função write() para definição da posição do servo de 0 a 180 graus.
Também é possível controlar vários servo motores ao mesmo tempo com um arduino utilizando a biblioteca do site oficial da placa microcontroladora. Com apenas 1 temporizador, por exemplo, dá para controlar 12 servos.
A biblioteca suporta essa quantidade de motores na maioria das placas arduino e 48 no Arduino Mega.
Montagem
Para a montagem, são utilizados:
- um computador;
- uma placa Arduino Uno;
- um cabo USB para ligação da placa ao PC;
- três cabos macho/fêmea;
- um servo motor.
Esquema de ligação
O motor é alimentado por um fio terra preto/marrom (GND) e por um fio de tensão da bateria (+5V) vermelho. Seu controle é feito por um sinal PWM enviado através de um fio amarelo/branco (terminal 9 da placa).
Dependendo do número de servos utilizados e da sua potência, dá para fazer a alimentação pelo terminal 5V do Arduino. A alimentação da placa pode ser realizada por um computador através de uma entrada USB.
Código básico
O controle da posição do servo é feito a partir do envio de um sinal por modulação de largura de pulso, utilizando, por exemplo, esse código básico:
//Déclaration des constantes #define UPDATE_TIME 20 //Déclaration des paramètres int servoPin = 9; int pulse = 1500; void setup() { // Code d'initialisation pinMode(servoPin,OUTPUT); Serial.begin(9600); } void loop() { // Code principal digitalWrite(servoPin,HIGH); delayMicroseconds(pulse); digitalWrite(servoPin,LOW); delay(UPDATE_TIME); }
Como é a programação Arduino para servo motor?
Quando utilizamos um servo motor com arduino, geralmente é utilizada a biblioteca oficial do Arduino para fazer a sua programação, permitindo o controle do servo por diferentes modelos de Arduino – como o Arduino Leonardo, Arduino Mega, Arduino Nano e o Arduino Uno.
As bibliotecas são coleções de códigos que facilitam a conexão a um sensor, monitor, módulo etc.
Como controlar servo motor com arduino usando potenciômetro?
Também é possível optar por outra forma de como controlar servo motor com arduino, que é usando o potenciômetro e fazendo uma das programações que já vêm na placa. O caminho é acessar “Arquivos > exemplos > Servo > knob. Exemplo:
//Inclusão da biblioteca Servo #include Servo myservo; // Cria um objeto baseado na biblioteca Servo int potpin = 0; // Pino analógico ligado ao potenciômetro int val;// Variável para ler o valor do potenciômetro void setup() { myservo.attach(9); // Diz que o objeto "myservo" está ligado ao pino 9 } void loop() { val = analogRead(potpin); // Ler e armazena o valor do potenciometro val = map(val, 0, 1023, 0, 180); // Faz um mapeamento myservo.write(val); // Comando para mandar o servo para posição "val" que foi mapeada delay(15); // Espera de 15 ms }
Lembrando que é necessário um mapeamento, assim, você informa que quando o valor do potenciômetro for 0, o ângulo será 0° e, quando o valor do potenciômetro for 1023, o ângulo será 180°.
A função usa a regra de 3: quando o potenciômetro estiver na metade, o ângulo será 90°. Conforme for girando o potenciômetro varia sua resistência, variando também a tensão na porta analógica, possibilitando o controle do servo.
Qual é a função do potenciômetro?
O potenciômetro é um tipo de resistor ajustável que serve para variar a resistência elétrica de um circuito, de forma manual, permitindo a mudança do regime de operação.
É usado para ajustar a intensidade de volume ou a potência de aparelhos eletrônicos, como eletrodomésticos, amplificadores de áudio e equipamentos industriais.
Também é aplicado na seleção de temperatura, ajuste de sinal em módulos eletrônicos, regulagem de iluminação, controle de movimento de robôs, etc.
Leia também: O que é resistor de frenagem? Entenda tudo.
Servo motor com arduino: principais aplicações
Devido às suas características, como seu peso, tamanho, controle eficiente de posição e movimentação precisa, o servo motor com arduino é adotado em inúmeros projetos mecatrônicos, com controle feito via rádio frequência através de smartphones, entre outras formas de controle.
Veja alguns exemplos de uso:
- braços robóticos;
- aeromodelos;
- drones;
- miniaturas;
- brinquedos;
- automação industrial; etc.
Conheça as soluções da Kalatec Automação!
A Kalatec tem a experiência de mais de 30.000 servomotores instalados em diversas aplicações e centenas de casos de sucesso.
Há 35 anos no mercado, é autoridade em automação industrial e conta com uma equipe técnica que engaja com os clientes para soluções inovadoras.
O seu portfólio de produtos inclui uma linha completa de servo motores à pronta-entrega. Destaque para os servos motores INVT DA180 e DA200, que representam uma inovação significativa no campo da automação industrial.
Eles foram desenvolvidos para oferecer alto desempenho, flexibilidade e compatibilidade com uma variedade de sistemas, tornando-os uma escolha excelente para diversas aplicações.
Conclusão
Se você precisa de uma movimentação precisa e controlada, agora já sabe que o servo motor é uma boa opção.
Esse equipamento é capaz de girar exatamente no ângulo que você programar no arduino, por isso é uma das principais soluções utilizadas nos campos da robótica e da automação.
Ao longo do artigo, você viu que não é nada complicado aprender como controlar servo motor com arduino, basta utilizar códigos simples, encontrados facilmente na Internet.
Caso esteja procurando servomotores para seu projeto, não hesite em consultar a Kalatec. Para escolher o modelo ideal, nossa equipe de especialistas está à disposição para orientá-lo.
Um abraço e até mais!