O que é servo motor? Como controlar servos com Arduino
O que é servo motor, como ele funciona e como ligar no Arduino? SG90 vs MG90S vs MG996R, a biblioteca Servo, alimentação dos servos e erros comuns.
Um servo motor é um pequeno motor cujo eixo gira até um ângulo definido e fica parado ali. Um motor DC comum continua girando; um servo vai exatamente a 90 graus quando você pede 90 graus e segura a carga nessa posição. Braços robóticos, suportes de câmera pan-tilt, travas automáticas de porta e as superfícies de controle de aeromodelos são todos movidos por servos.



Como um servo motor funciona?
Dentro de um servo há quatro partes: um pequeno motor DC, uma caixa de engrenagens que reduz a velocidade e aumenta o torque, um potenciômetro que mede a posição do eixo e um circuito de controle que gerencia tudo isso. O circuito de controle compara o tempo todo o ângulo pedido com o ângulo lido pelo potenciômetro e gira o motor até a diferença chegar a zero. Graças a esse circuito fechado, o servo mantém a posição mesmo sob carga.
O ângulo é enviado ao servo como um sinal PWM: um pulso chega a cada 20 ms (50 Hz) e a largura do pulso define o ângulo. Cerca de 1 ms significa 0°, 1,5 ms significa 90° e 2 ms significa 180°. A maioria dos servos aceita uma faixa de 0,5–2,5 ms; os valores exatos variam um pouco entre os modelos.
Fios do servo e ligação
| Cor do fio | Função | Onde vai no Arduino |
|---|---|---|
| Marrom / preto | GND (terra) | GND |
| Vermelho | Alimentação (+4,8–6 V) | 5V ou uma fonte externa de 5–6 V |
| Laranja / amarelo / branco | Sinal (PWM) | Qualquer pino digital (por exemplo, o 9) |
Qual servo escolher?

| Modelo | Torque (aprox.) | Engrenagens | Indicado para |
|---|---|---|---|
| SG90 | 1,8 kg·cm | Plástico | Tarefas leves, primeiros experimentos, pan-tilt |
| MG90S | 2,2 kg·cm | Metal | Mesmo tamanho do SG90, mais resistente |
| MG996R | 9–11 kg·cm | Metal | Braços robóticos, tampas e mecanismos pesados |
| FS90R | 1,5 kg·cm | Plástico | Rotação contínua: pequenos robôs com rodas |
Controlando um servo com Arduino: definindo o ângulo com um potenciômetro


- Ligue o fio marrom do servo ao GND e o fio vermelho ao 5V (para um único SG90).
- Ligue o fio laranja de sinal ao pino digital 9.
- Ligue os terminais externos do potenciômetro ao 5V e ao GND e o terminal do meio ao A0.
- Carregue o código abaixo; o servo deve girar entre 0 e 180° conforme você gira o potenciômetro.
1#include <Servo.h>
2
3Servo servo; // servo nesnesi / servo object
4const int POT_PIN = A0; // potansiyometre / potentiometer
5
6void setup() {
7 servo.attach(9); // sinyal 9. pinde / signal on pin 9
8}
9
10void loop() {
11 int value = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
12 int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
13 servo.write(angle); // servoyu döndür / move the servo
14 delay(15); // servo yetişsin / let the servo settle
15}servo.write(angle) recebe um ângulo de 0 a 180. Para um controle mais fino, use servo.writeMicroseconds(1500) para definir a largura do pulso diretamente em microssegundos. Você pode ver quais pinos da sua placa são PWM e digitais na ferramenta de pinagem.
Servos com ESP32 e Raspberry Pi Pico
- ESP32: a biblioteca Servo padrão não funciona; instale a biblioteca ESP32Servo na Arduino IDE. Ela é usada do mesmo jeito. Um sinal de 3,3 V é suficiente para a maioria dos servos.
- Raspberry Pi Pico (MicroPython): configure o PWM em 50 Hz e informe a largura do pulso com duty_ns(): 1.000.000 ns ≈ 0°, 1.500.000 ns ≈ 90°, 2.000.000 ns ≈ 180°.
- Nas duas placas, não alimente o servo pelo pino 3,3 V da placa; use a linha de 5 V ou uma fonte externa.
Os erros mais comuns com servos
- Tremores e movimentos aleatórios: normalmente causados por alimentação insuficiente. Use uma fonte externa e coloque um capacitor de 470–1000 µF na alimentação do servo.
- Esquecer o GND comum: um servo alimentado por uma fonte externa não entende o sinal se os terras não estiverem ligados.
- Forçar o servo até o limite: um servo empurrando contra o batente mecânico zumbe e esquenta. Se necessário, limite a faixa a 10–170°.
- Esperar PWM nos pinos 9 e 10: no Uno a biblioteca Servo usa o Timer1, então o analogWrite não funciona nesses pinos enquanto houver um servo conectado.
- Esperar um ângulo de um servo de rotação contínua: modelos como o FS90R não sabem a própria posição; só é possível controlar a velocidade e o sentido.
Para ver o que dá para montar com servos, confira os projetos de robôs e motores no BlueGrays. Se você é novo no Arduino, leia primeiro O que é Arduino? e, para montar o circuito em uma placa, O que é protoboard?.
Perguntas frequentes
Quantos graus um servo motor gira?
Os servos padrão giram cerca de 180°; alguns modelos são de 90° ou 270°. Os servos de rotação contínua giram sem limite, mas não mantêm um ângulo.
Posso alimentar um servo pelo pino 5V do Arduino?
Você pode alimentar um único SG90 com carga leve para testes. Para vários servos, modelos fortes como o MG996R ou projetos com carga, use uma fonte externa de 5–6 V e ligue os terras entre si.
Quantos servos um Arduino consegue controlar?
A biblioteca Servo suporta até 12 servos no Arduino Uno e 48 no Mega. Para muitos servos, placas controladoras I2C de 16 canais como a PCA9685 são mais práticas.
Por que meu servo está tremendo?
As causas mais comuns são alimentação insuficiente, falta de terra comum e fios de sinal longos. Use uma fonte forte, coloque um capacitor na alimentação do servo e mantenha os fios curtos.
Qual é a diferença entre servo motor e motor de passo?
O servo usa realimentação para ir até um ângulo específico e ficar lá, e normalmente é limitado a 180°. O motor de passo gira passo a passo sem limite; ele precisa de uma placa driver para posicionamento preciso e não mede a própria posição.
Projetos para montar depois desta leitura
Ver todos os projetos
Uso de servo motor
O braço de um pequeno servo motor gira para três posições em sequência: o início, o meio e o fim do percurso, esperando dois segundos em cada parada. O Arduino informa ao motor em qual ângulo ficar, e

Uso de servo motor com potenciômetro
Conforme você gira o botão do potenciômetro, o braço do servo motor gira junto: uma extremidade do botão corresponde a zero grau, e a outra, a meia volta. O Arduino lê continuamente a posição do botão

Controle de servos com joystick
Controle dois motores com um joystick, como ao girar uma câmera de segurança. Empurre a alavanca para os lados e o servo motor inferior gira lentamente; mova para cima ou para baixo e o servo superior

Servo motor de 360 graus com motor de passo
Ensine um motor de passo comum a ir até qualquer ângulo que você quiser, ao longo de uma volta completa. O Arduino calcula quantos passos correspondem a cada ângulo; o motor vai para 0, 90, 45, 180, 1

Servo motor com ESP32 (controle por potenciômetro)
Neste projeto, controlamos um servo motor SG90 com um potenciômetro. Ajustamos o ângulo do servo mapeando o valor analógico lido do potenciômetro para a faixa de 0 a 180 graus. A biblioteca ESP32Servo gera sinais para o servo nos GPIOs do ESP32 adequados e capazes de operar como saída; este projeto usa o GPIO 18. Esse é um método básico de controle para braços robóticos, estabilizadores de câmera e mecanismos de portas automáticas.

Fechadura RFID com ESP32 (RC522 + servo + OLED + buzzer + LED)
Vamos montar uma fechadura inteligente com ESP32, módulo RFID RC522, servo motor SG90, display OLED SSD1306, buzzer ativo e 2 LEDs. Ao ler um cartão, seu UID é comparado à lista de cartões autorizados definida no código. Se estiver autorizado, o servo motor gira para abrir a fechadura (LED verde + 2 bipes curtos), que trava novamente após 5 segundos. Com um cartão não autorizado, o LED vermelho acende, 3 bipes rápidos soam e o UID lido aparece no OLED.

Coreografia em círculo: animações com 32 servos
Um projeto de animação visual com 32 servo motores dispostos em círculo e controlados por um Arduino Mega. Os servos são gerenciados em um único array e conectados aos pinos 22–53 do Mega. Eles executam quatro sequências de movimento: uma vibração caótica em que todos vão para ângulos aleatórios, uma varredura sincronizada em que todos se movem ao mesmo tempo, uma onda que gira suavemente pelo círculo e, por fim, uma agulha de bússola que oscila de um lado para o outro.
Mais artigos
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

