Publicado 2026-04-08
Se o seuservomotor conectado a um Arduino parou de girar repentinamente ou nunca mais se moveu, você está enfrentando um dos problemas mais comuns em projetos eletrônicos. Este guia fornece um processo passo a passo de diagnóstico e reparo com base em cenários do mundo real. Seguindo as verificações estruturadas abaixo, você identificará a causa exata e restaurará o normalservooperação em minutos.
Em mais de 70% dos casos notificados,servopara de girar porque não recebe corrente elétrica suficiente.
O fato crítico:Um servo pequeno típico (por exemplo, SG90 ou similar) consome 200–500 mA quando inativo e até 1,5–2 A quando inicia a rotação. O pino de 5 V da placa Arduino pode fornecer com segurança apenas cerca de 400–500 mA no total. Se você alimentar o servo diretamente do pino de 5 V do Arduino, a tensão cai, o servo para ou para e o Arduino pode reiniciar.
Solução verificada:
Use uma fonte de alimentação externa separada de 5 Vcc com classificação de pelo menos 2 A.
Conecte o fio vermelho do servo (VCC) ao terminal positivo da alimentação externa.
Conecte o fio marrom/preto do servo (GND) ao terminal negativo da fonte externaeo GND do Arduino (terra comum).
Mantenha o fio de sinal laranja/amarelo do servo conectado a um pino Arduino PWM (por exemplo, pino 9).
Exemplo de caso:Um hobbyista construiu um braço robótico com três servos. Todos os servos pararam após dois segundos de operação. A causa foi alimentar todos os servos a partir do pino de 5V do Arduino. Depois de mudar para uma fonte externa de 5V/5A, todos os servos giraram corretamente.
Um fio de sinal desconectado ou mal colocado não produz rotação. Mesmo usuários avançados ocasionalmente trocam os fios de sinal e alimentação.
Verificação passo a passo:
1. Fio de sinal (normalmente laranja, amarelo ou branco) → conecta-se a um pino digital compatível com PWM (por exemplo, 3,5,6,9,10,11 no Arduino Uno).
2. Fio de alimentação (vermelho) → fonte externa de 5V (ou Arduino 5V apenas para testar um pequeno servo sem carga).
3. Fio terra (marrom ou preto) → terra comum com Arduino.
Teste com um esboço mínimo:Carregue o exemplo padrão de varredura (Arquivo → Exemplos → Servo → Varredura) e confirme os movimentos do servo. Se isso acontecer, sua fiação está correta.
servo.attach()ou PIN erradoMuitos usuários esquecem de ligaranexar()emconfigurar(), ou usam um pino que não suporta PWM. Semanexar(), o servo não recebe nenhum sinal de controle e permanece imóvel.
Estrutura mínima de código correta:
#incluirServo meuServo; void setup() { meuServo.attach(9); // Deve corresponder ao pino de sinal real } void loop() { myServo.write(0); // 0 graus – posição mais à esquerda delay(1000); meuServo.write(90); // 90 graus – atraso central(1000); meuServo.write(180); // 180 graus – atraso da posição mais à direita(1000); }
Erro comum:Usandoescrita analógica()ouescrita digital()no pino servo – eles não geram o sinal PWM de 50 Hz necessário. Apenas a biblioteca Servo ou a modulação direta por largura de pulso funcionam.
Se o servo emitir um zumbido, mas não girar, as engrenagens internas podem estar danificadas ou um objeto externo pode bloquear a buzina.
Procedimento de diagnóstico:
Retire a buzina do servo (braço de plástico). Em seguida, execute o código de teste. Se o servo girar livremente sem a buzina, o problema é emperramento mecânico (a carga está muito pesada ou emperrada).
Se o servo ainda não girar após retirar a buzina, as engrenagens internas provavelmente estão quebradas. As servo-engrenagens (especialmente as de plástico) se desprendem sob força repentina ou quando a buzina faz uma parada brusca.
Exemplo de caso:O servo de um usuário parou de girar depois que o braço robótico atingiu a borda da mesa. A remoção da buzina revelou que o eixo do servo girava livremente – mas o trem de engrenagens estava quebrado por dentro. Substituir o servo (ou atualizar para engrenagens metálicas) resolveu o problema.
Falhas de hardware são menos comuns, mas possíveis. Teste sistematicamente:
1. Teste o servo em um pino diferente(por exemplo, passe do pino 9 para o pino 10 e atualize o código). Se funcionar, o pino original está danificado.
2. Teste um servo em bom estadono mesmo PIN e código. Se o servo bom girar, seu servo original está com defeito.
3. Teste o servo com um testador de servo simples(um dispositivo dedicado ou um gerador de sinal externo de 50 Hz). Se não girar mesmo com um testador, a placa de controle interno do servo falhou.
A biblioteca Arduino Servo usa temporizadores de hardware. No Arduino Uno, ele desativaescrita analógica()nos pinos 9 e 10. No Arduino Mega, diferentes temporizadores afetam diferentes pinos. Se o seu código usa várias bibliotecas (por exemplo,ServoeSoftwareSerialouIRremoto), eles podem entrar em conflito e interromper os sinais do servo.
Resolução:
Use apenas uma instância da biblioteca Servo.
Se você deve usarSoftwareSerial, inicialize o servo após a comunicação serial.
Considere usar um Arduino Mega para isolar temporizadores ou usar oServobibliotecadesanexar()eanexar()dinamicamente.
Quando o Arduino é ligado, o servo recebe sinais aleatórios atéanexar()é chamado. Se o seu servo estiver programado para se mover imediatamente, ele poderá receber um sinal inicial corrompido e travar.
Consertar:Adicione um atraso de 1–2 segundos antes do primeiroservo.write()comando.
void setup() { meuServo.attach(9); atraso(2000); // Permitir que a energia estabilize myServo.write(90); }
A maioria dos servos para por causa de energia insuficiente– use sempre uma fonte externa de 5V com aterramento comum.
Segundo mais comum: ausenteservo.attach()– verifique se esta linha existe e usa um pino PWM válido.
Terceiro: ligação mecânica ou engrenagens desencapadas– remova a buzina para testar a rotação livre.
Quarto: conflitos de código e problemas de temporizador– simplifique seu esboço ao mínimo.
Para resolver imediatamente um servo Arduino que não gira, siga esta ordem exata:
1. Desconecte o fio vermelho do servo do Arduinoe conecte-o a uma fonte de alimentação 5V/2A separada. Conecte o terra da fonte ao Arduino GND.
2. Carregue o exemplo de varredurasem qualquer outro código.
3. Remova a buzina do servoe execute o exemplo Sweep novamente.
4. Se ainda não houver rotação, substitua o servo por uma unidade que esteja funcionando.
Essas quatro etapas resolvem 95% de todos os casos de “servo parado de girar”. Sempre mantenha servos sobressalentes e uma fonte de alimentação dedicada em seu espaço de trabalho. Documente sua fiação e código antes de fazer alterações e teste cada componente de hardware individualmente para isolar falhas.
Hora de atualização: 08/04/2026
Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.