Como controlar um servo motor com Arduino: um guia passo a passo completo_Servo_Industry Insights_Kpower
Lar > Informações do setor >Servo
SUPORTE TÉCNICO

Suporte ao produto

Como controlar um servo motor com Arduino: um guia passo a passo completo

Publicado 2026-04-03

Controlando umservomotor com placa Arduino é uma das tarefas mais comuns e úteis em projetos eletrônicos. Este guia fornece um método claro, prático e verificado para conectar e programar umservousando o Arduino padrãoservobiblioteca. Você aprenderá a fiação exata, o código funcional e como solucionar problemas típicos – tudo com base em cenários do mundo real e na documentação oficial.

01O que você precisa (configuração comum)

A maioria dos servomotores amadores (por exemplo, micro servos 9g ou servos de tamanho padrão como SG90, MG90S ou MG995) funcionam com qualquer placa Arduino (Uno, Nano, Mega, etc.). Para este guia, assumimos:

Uma placa Arduino (Uno é o exemplo mais comum)

Um servo padrão de 5V (faixa de torque comum: 1,8kg/cm a 13kg/cm)

Fios jumper (macho para fêmea para conexão direta)

Uma fonte de alimentação separada de 5V-6V (opcional, mas recomendada para servos maiores – explicada na Seção 4)

Não são necessários nomes de marcas específicos– as instruções se aplicam a todos os servos analógicos padrão que operam em um sinal PWM de 50 Hz (largura de pulso de 500 µs a 2500 µs).

02Fiação – A única conexão correta

Siga esta fiação exata para evitar danos ou comportamento errático.

Cor do fio servo Função Conecte ao pino do Arduino
Marrom ou Preto Terra (GND) GND
Vermelho Potência (VCC, 5V) Pino de 5V (ou alimentação externa)
Laranja ou Amarelo Sinal (PWM) Pino digital 9 (ou qualquer pino compatível com PWM)

Regra crítica:Nunca alimente um servo diretamente do pino de 5 V do Arduino se o servo consumir mais de 200 mA durante a operação. Para a maioria dos servos 9g, o Arduino 5V direto é seguro para teste. Para servos maiores (por exemplo, MG995), use uma fonte de alimentação externa de 5V-6V e conecte o aterramento do servo ao aterramento do Arduino (terra comum).

03O código padrão – copiar e executar

A biblioteca Arduino Servo está pré-instalada no IDE oficial. Este código move o servo de 0° a 180° e vice-versa, repetidamente.

#incluirServo meuServo; //cria o objeto servo int servoPin = 9; // pino de sinal conectado ao servo void setup() { myServo.attach(servoPin); // conecta o servo no pino 9 } void loop() { myServo.write(0); // passa para 0 graus delay(1000); // espere 1 segundo myServo.write(90); // move para 90 graus (centro) delay(1000); meuServo.write(180); // passa para 180 graus delay(1000); }

Para controlar o servo em um ângulo específico(por exemplo, 45°), basta usarmeuServo.write(45);. O intervalo válido é de 0 a 180.

04Problemas e soluções comuns do mundo real (com base em casos de usuários típicos)

Caso 1: Servo treme ou não se move

Causa:Potência insuficiente. Um servo padrão 9g consome 200–300mA quando em movimento; um servo grande consome até 1A. O regulador de 5 V integrado do Arduino (máx. ~ 500 mA) não consegue lidar com isso.

Consertar:Use uma fonte de alimentação externa de 5V (por exemplo, 4 pilhas AA ou um adaptador 5V 2A). Conecte o positivo da fonte ao fio vermelho do servo, o aterramento da fonte ao Arduino GND e o aterramento do servo ao mesmo GND.

Caso 2: O servo se move apenas em uma direção

Causa:Pino de sinal não conectado corretamente ou número de pino errado.

how to control servo with arduino_how to control servo with arduino_how to control servo with arduino

Consertar:Verifique issomeuServo.attach(pino)usa um pino compatível com PWM. No Arduino Uno, os pinos 3,5,6,9,10,11 suportam PWM. Os pinos 9 e 10 são recomendados.

Caso 3: Servo esquenta rapidamente

Causa:O servo é forçado contra uma parada mecânica ou a faixa de largura de pulso está incorreta para esse modelo de servo.

Consertar:Ajuste a largura de pulso mínima/máxima usandomyServo.attach(pino,mín,máx)onde min é padronizado como 544 µs (0°) e máximo como 2400 µs (180°). Alguns servos requerem 500–2500µs. Verifique a folha de dados do seu servo.

05Controle avançado – movimento suave (sem necessidade de biblioteca)

Para um controle preciso da velocidade, você pode gerar manualmente o sinal PWM. O servo espera um sinal de 50 Hz (período de 20 ms). Um pulso de 1ms = 0°, 1,5ms = 90°, 2ms = 180°. Este código varre suavemente:

int servo Pin = 9; largura de pulso interna = 1500; // microssegundos, inicia em 90° void setup() { pinMode(servoPin, OUTPUT); } void loop() { // varre de 1000µs a 2000µs (0° a 180°) for(pulseWidth = 1000; pulseWidth = 1000; pulseWidth -= 10) { digitalWrite(servoPin, HIGH); delayMicroseconds(pulseWidth); digitalWrite(servoPin, BAIXO); atraso(20 - largura de pulso/1000); } atraso(1000); }

06Verificando sua configuração – um plano de teste rápido

1. Verificação de energia:Com apenas o servo conectado (sem código carregado), o servo deve permanecer parado e não aquecer.

2. Teste de sinal:Carregue o código padrão da Seção 3. Observe se o servo gira 0° → 90° → 180° → repita.

3. Teste de carga:Segure suavemente a buzina do servo enquanto ela se move. Deve produzir torque perceptível, mas não parar. Se parar, aumente a corrente da fonte de alimentação.

07Princípios Fundamentais a Lembrar (Repetidos para Ênfase)

Fiação corretanão é negociável: sinal para pino PWM, alimentação para fonte adequada, terra comum.

Sempre use a biblioteca Servopela simplicidade e confiabilidade. Mude para o controle de pulso manual somente quando precisar aumentar a velocidade.

Nunca exceda a classificação de tensão do servo(normalmente 5V–6V). Tensão mais alta destruirá o circuito de controle interno.

Proteja seu Arduinonunca consumindo mais de 200mA de seu pino de 5V para um servo.

08Próximas etapas acionáveis

1. Construa o circuito básicoem uma placa de ensaio usando um servo 9g e um Arduino Uno. Use o código na Seção 3 para verificar o movimento.

2. Adicione um potenciômetropara controlar o ângulo: leia o valor analógico de um potenciômetro (pino A0), mapeie-o para 0–180 e, em seguida,meuServo.write(mappedValue).

3. Incorpore em seu projeto– aplicações comuns incluem braços robóticos, gimbals de câmera, mecanismos de direção e abridores automáticos de portas.

Seguindo este guia, você agora tem um método verificado e repetível para controlar qualquer servo padrão com um Arduino. Os mesmos princípios se aplicam a todas as placas compatíveis com Arduino. Sempre consulte a folha de dados do seu servo para limites exatos de largura de pulso e requisitos atuais.

Hora de atualização: 03/04/2026

Impulsionando o Futuro

Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.

Correio para Kpower
Enviar consulta
Mensagem do WhatsApp
+86 0769 8399 3238
 
kpowerMap