Publicado 2026-05-11
Vamos falar sobre um fato no início: ao brincar com o carro do Arduino, ou brincar com o braço robótico do Arduino, ou brincar com o pequeno controle de acesso do Arduino, nove em cada dez vezes, você encontrará o micro servo 9g azul, ou o micro servo 9g transparente, que é o SG-90. Apesar de seu tamanho pequeno, ele gira o ângulo, controla a chave e balança a cabeça, tudo dependendo do sinal de largura de pulso. Mas muitas pessoas encontram dificuldades no primeiro passo: Como conectar as linhas? Por que o código treme depois de escrito? Hoje vou resolver isso em detalhes e selecionar o essencial da experiência avassaladora.
Fio marrom: GND (terra)
Fio vermelho: VCC (fonte de alimentação 5V)
Linha laranja: pino de sinal PWM (D9/D10 é opcional)
A seguir está uma situação de capotamento comum: empurre a linha vermelha para 3,3 V, mas o servo não gira; insira-o no terminal positivo da bateria, fazendo com que a unidade interna queime.
Sua zona segura é de 5 V, o que é suficiente para acionar um contando com fonte de alimentação USB. Se você estiver dirigindo mais de dois, uma bateria externa será mais estável.
Use a biblioteca Servo, não escreva você mesmo o ciclo de trabalho PWM.
#incluirServo meuServo; void setup() { meuServo.attach(9); // A linha de sinal está conectada ao pino 9 } void loop() { myServo.write(0); // atraso de 0 graus(1000); meuServo.write(90); // atraso de 90 graus(1000); meuServo.write(180); // atraso de 180 graus(1000); }
Esta seção irá girar para frente e para trás. Não pergunte por que pertence à situação de 0, 90 e 180, então seu limite físico está aqui.
Dentro dele há um potenciômetro e uma engrenagem de redução. Quando você fornece uma largura de pulso de 1 ms, ele gira 0 graus, quando você fornece uma largura de pulso de 1,5 ms, ele gira 90 graus, e quando você fornece uma largura de pulso de 2 ms, ele gira 180 graus.

A biblioteca Servo converte automaticamente o ângulo de gravação na largura de pulso correspondente.
No entanto, deve-se notar que o SG-90 produzido por diferentes fabricantes pode estar alguns graus errado, portanto o processo de calibração não pode ser omitido.
Primeiro escreva (90) para ver se a peça do braço está vertical
Caso contrário, dobre-o manualmente para a posição vertical e reinstale o braço.
Seção de perguntas/respostas
P: O servo vibra muito quando conectado, como resolver isso?
R: A fonte de alimentação está instável. A operação da fonte de alimentação de 5V é realizada exclusivamente na linha vermelha. O pino 5V do Arduino é usado apenas como referência de sinal.。
P: O que devo fazer se write(180) só puder ir até 120 graus?
R: Primeiro execute a operação de gravação (180), depois desligue a energia, depois dobre manualmente o braço até o ângulo máximo e, em seguida, ligue a energia novamente.。
P: É normal que o servo aqueça depois de girar continuamente por vários minutos?
R: Anormal. O SG-90 é um servo de posição e não deve ser usado como motor de rotação contínua.
P: O cabo de sinal está conectado corretamente e o código está correto, mas ele simplesmente não se move?

R: Verifique o terreno comum. Arduino GND e servo GND devem estar conectados.
P: Posso fornecer diretamente o sinal PWM em vez da biblioteca Servo?
R: Sim, mas não é necessário. A biblioteca encapsula o ciclo de 20 ms e é fácil gravar o servo se você mesmo o escrever.
Não pense em fazer um robô de seis pernas de uma só vez. Primeiro faça um pequeno dispositivo:
barreira feita de papelão
Acione o botão, pressione uma vez para levantar a alavanca e, em seguida, pressione a alavanca inferior
O ponto chave do código é registrar o estado atual toda vez que write(0) ou write(90) for chamado.
Você pode detectar uma situação. Quando muda de 0 para 90 rapidamente, o servo parecerá “disparar para frente”. Adicionar atraso? Não é assim, mas adicione flexibilização.
void slowMove(int from, int to, int stepDelay) { if (from = to; i--) { myServo.write(i); atraso(passoDelay); } }
Desta forma, ele se move lentamente como um braço real e as engrenagens não são propensas a entrar em colapso.
Qual é o significado? É bom levantar uma bateria AA, mas quer empurrar um livro? Deve estar preso.
No processo de confecção de um braço robótico, a parte grande do braço deve utilizar um servo dente de metal, como o MG995. No entanto, o SG-90 só é adequado para fazer pulsos ou garras.
Raciocínio analógico: SG-90 é como uma corrente de bicicleta. Se você usá-lo para puxar um carro, ele certamente quebrará.
Árvore de decisão de depuração do SG-90 ├─ Sem resposta quando conectado │ ├─ Verifique: GND está no mesmo terreno? │ └─ Verifique: fonte de alimentação de 5V é suficiente para 1A? ├─ Jitter após mover para a posição alvo │ ├─ Adicionar capacitor: eletrólise de 100uF entre o fio vermelho e GND │ └─ atraso (15) após escrever no código ├─ O ângulo está desligado │ ├─ Calibração suave: myServo.write (ângulo real + deslocamento) │ └─ Calibração rígida: remover o braço e reinstale-o └─ Não siga o código de jeito nenhum └─ Mude para um digital e verifique se alguma outra biblioteca ocupa o Timer1
1. Obtenha uma placa de ensaio, um SG-90 e três fios DuPont.
2. Grave o código para reverter o primeiro parágrafo acima.
3. Confirme as posições de 0 graus, 90 graus e 180 graus.
4. Modifique o código para que ele pare em 45 graus e permaneça por 10 segundos.
5. Se for bem-sucedido, você dominou 80% dos cenários de aplicação de pequenos servos.
Quais são os 20% restantes? Serve para conectar vários servos em série, ler o potenciômetro para obter um circuito fechado e definir o grupo de ação. Mas não vou falar sobre isso hoje, porque primeiro você precisa fazer este funcionar.
Lembre-se: todos os projetos complexos de robôs começam com um SG-90 que pode girar 30 graus de forma compatível. Experimente, não espere para ver.
Hora de atualização: 11/05/2026
Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.