Introdução
Outro elemento muito utilizado em projetos robóticos e de modelismo são os servo motores. Com eles podemos dar movimentos a braços robóticos, movimentar sistemas de direcionamento em miniaturas de barcos e aeromodelos, etc. Esse será o nosso assunto de hoje.
![]() |
Exemplo do que se pode fazer com servo motores |
Entendendo o que é um Servo Motor
Um servo motor é um mecanismo eletromecânico que transforma energia elétrica em movimento de forma semelhante a um motor, porém, ao invés de executar um movimento giratório contínuo, os servos executam movimentos angulares de no máximo meia-volta.
Internamente um servo motor é constituído por um motor, um conjunto de engrenagens para lhe aumentar o seu torque e um conjunto controlador que permite movimento precisos em diferentes velocidades e posicionamentos.
Nesse conjunto controlador podemos ter um potenciômetro e/ou um encoder atrelado ao eixo do motor para fornecer informações de posição e velocidade para os devidos ajustes do circuito.
Tutorial da Solid Works que ilustra um Servo Motor
Externamente o servo possui um case que encapsula todo o conjunto, dando a ele proteção e um formato bem característico. A um rotor externo das engrenagens pode ser acoplado três tipos de braço atuadores: simples, duplo e cruzeta, que podem acionar outros mecanismos articulados de um projeto.
![]() |
Exemplo de Servo Motor para Arduino com os três tipos de braços atuadores |
![]() |
Exemplo de mecanismos comercializados para servo motor |
Em termos de especificações, os servo motores mais utilizados para projetos maker com Arduinos trabalham de 3 a 6V, com corrente de operação em torno de 220 mA, ângulo máximo de 180º, velocidade de 0,12 seg/60 Graus (4,8V) sem carga e um torque variando de 1,2 kg.cm (4,8V) a 1,6 kg.cm (6,0V). Geralmente possuem um cabo com três terminais, sendo um VCC, um GND e outro para sinal PWM.
Cabe esclarecer que existem diversos tipos e modelos de servo motores disponíveis para projetos embarcados. Temos, por exemplo, os servos lineares onde um braço se estende para frente e trás.
Recomendações da Arduino
Segundo a documentação do Arduino é recomendável o uso de uma fonte externa de alimentação para os servo motores, sendo recomendável a utilização de concomitante de capacitores para estabilizar o fornecimento de energia, minimizar quedas de tensão e reduzir ruído elétrico.
Abaixo temos uma imagem retirada da documentação da Arduino (ver referências) onde destaquei os capacitores em um circuito com o uso de potenciômetro (componente azul) para controle de um servo motor.
![]() |
Recomendação da Arduino para uso de capacitores |
Bibliotecas
Atualmente a biblioteca que tem recebido maior número de estrelas na Arduino Doc é a Adafruit PWM Servo Driver para uso com drivers deste fabricante para controle de servo motores utilizando o protocolo I2C.
No entanto para uso genérico temos também a Servo utilizada na maioria dos tutoriais encontrados pela Web brasileira, que permite o controle de até 12 servo motores com um único timer em um Arduino Uno com uma fonte externa de alimentação. É ela que utilizaremos nos nossos exemplos.
Montagem
Vou disponibilizar uma montagem pronta no Wokwi mostrando o uso básico de um servo motor com dois botões de controle que o estudante poderá acessar com sua conta e salvar um cópia nos seus projetos. Não colocarei capacitor, pois o Wokwi não disponibiliza.
![]() |
Montagem no Wokwi para servo motor |
Link: https://wokwi.com/projects/415297193498031105
Sketch
O código é bem fácil. Estamos incluindo a biblioteca Servo, depois declarando as constante que vão definir os pinos usados para o sinal pwm do servo e para entradas dos botões azul e verde. Também estou declarando uma variável para armazenar a posição.
Na linha 6 eu estou instanciando o objeto servo1 com base na classe Servo da biblioteca e na função setup eu estou iniciando o objeto servo1 informando que ele está no pino especificado pela constante pwm.
Depois estou definindo os pinos dos botões como entradas. Repare que não foi necessário configurar o pino do pwm. Também iniciei o monitor serial e utilizei o método read da biblioteca para ler a posição inicial do servo. Ao executar o código repare que ele não começa exatamente em 90 graus.
Na função loop eu estou dando um delay para capturar o pressionamento dos botões e de acordo com o botão pressionado, faço o servo se movimentar dando pulsos com o método write() em ângulos controlados pela variável posicao. Isso está sendo feito com laços, variando o ângulo de 1 em 1.
Quando pressionado o botão verde ele varia a posição de 0 a 180 e o azul de 180 a 0. Eu não quis complicar implementando mais coisas, mas o código está permitindo que se pressione os botões da mesma cor seguidamente. Uma sugestão para o estudante seria brincar modificando o if para uma condição dupla que impedisse isso.
- #include <Servo.h>
- int const pwm=11;
- int const azul=12;
- int const verde=13;
- int posicao = 0;
- Servo servo1;
- void setup() {
- servo1.attach(pwm);
- pinMode(verde, INPUT);
- pinMode(azul, INPUT);
- Serial.begin(9600);
- Serial.println(servo1.read());
- }
- void loop() {
- delay(100);
- if (digitalRead(verde)==HIGH){
- for (posicao = 0; posicao <= 180; posicao++) {
- servo1.write(posicao);
- delay(15);
- }
- }
- if (digitalRead(azul)==HIGH){
- for (posicao = 180; posicao >= 0; posicao--) {
- servo1.write(posicao);
- delay(15);
- }
- }
- }
Agora que você entendeu o básico vou deixar abaixo o link para um projeto simples de um pequeno robô disponibilizado pela Science Buddies que utiliza poucos componentes e material facilmente encontrado. O áudio está em inglês, mas a descrição contém vários links para o passo a passo do projeto. Basta clicar na imagem.
![]() |
Projeto da Science Buddies para robozinho com servo motor |
Referências
ARDUINO DOCS. Servo. Disponível em <https://docs.arduino.cc/libraries/servo/> Acesso em 23 nov 2024.
ARDUINO DOCS. Noções básicas de servo motor com Arduino. Disponível em <https://docs.arduino.cc/learn/electronics/servo-motors/> Acesso em 23 nov 2024.
BLOG ELETROGATE. Servo Motor: Conheça Aplicações e Aprenda a Usar. Disponível em <https://blog.eletrogate.com/servo-motor-para-aplicacoes-com-arduino/> Acesso em 23 nov 2024.
MAKER HERO. O que é servo motor? Funcionamento, tipos e como testar. Disponível em <https://www.makerhero.com/blog/o-que-e-servo-motor/> Acesso em 23 nov 2024.
MUNDO DA ELÉTRICA. O que é Servo motor e como funciona? Disponível em <https://www.mundodaeletrica.com.br/o-que-e-servo-motor-e-como-funciona/> Acesso em 23 nov 2024.
SERVOMOTOR. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2024. Disponível em: <https://pt.wikipedia.org/w/index.php?title=Servomotor&oldid=67609568>. Acesso em: 23 nov. 2024.