Como controlar servo motor com arduino: fique por dentro!
Automação Industrial

Como controlar servo motor com arduino: fique por dentro!

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

imagem ilustrativa dos componentes para controlar servo motor com arduino

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.

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:

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.

banner para os servo motores Kalatec

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!

Edilson Cravo

Edilson Cravo

Engenheiro de Aplicação da KALATEC, 23 anos de experiência com mais de 5000 visitas únicas em Indústrias. Especialista em Automação Industrial e apaixonado por Servos Motores, foi treinado nas fábricas EMERSON MOTION CONTROL, YASKAWA, WEG, DELTA, HNC, LEADSHINE e ESTUN. Foi consultor de projetos no Instituto Nuclear Brasileiro, Embraer, Rede Globo, USP (Projeto Inspire) entre outros.