Lar > Informações do setor >Servo
SUPORTE TÉCNICO

Suporte ao produto

Guia completo para controle de ângulo micro servo com microcontroladores

Publicado 2026-04-07

Este guia fornece tudo que você precisa para controlar com precisão o ângulo de rotação de um micro padrãoservousando um microcontrolador. O princípio fundamental é simples: oservoA posição do eixo de saída é determinada pela largura de um sinal de pulso. Para os micro mais comunsservos, uma largura de pulso de 1,5 milissegundos (ms) centraliza o eixo em 90°, 1,0 ms move-o para 0° e 2,0 ms move-o para 180°. No entanto, os servos do mundo real variam. Este artigo fornece métodos verificados, exemplos de código e etapas de calibração para obter um controle preciso grau por grau, sem depender de nenhuma marca específica.

01Como umMicro ServoInterpreta a largura do pulso em ângulo

UMMicro Servocontém um pequeno motor DC, um potenciômetro de feedback e um circuito de controle. O circuito compara a largura do pulso de entrada com a posição do potenciômetro. Quando a largura do pulso corresponde à posição desejada, o motor para. A relação entre a largura e o ângulo do pulso é linear dentro dos limites mecânicos do servo.

Especificações de sinal padrão:

Taxa de repetição de pulso:50 Hz (período = 20 ms)

Faixa de largura de pulso utilizável:Normalmente 1,0 ms a 2,0 ms

Faixa de ângulo correspondente:0° a 180°

Isto significa que o servo espera um pulso a cada 20 ms. Ao alterar a largura do pulso de 1,0 ms para 2,0 ms, você comanda o eixo de 0° a 180°.

Um caso comum do mundo real:

Você compra doisMicro Servos do mesmo lote. Um centraliza perfeitamente em 90° quando você envia um pulso de 1,5 ms. O outro para em 85°. Isto acontece devido às tolerâncias de fabricação no potenciômetro de realimentação e na montagem mecânica. Portanto, sempre calibre cada servo individualmente.

02Passo a passo: controlando o ângulo servo com código

A maioria das plataformas de microcontroladores fornece uma biblioteca servo integrada que gera pulsos estáveis ​​de 50 Hz. Abaixo está um exemplo de código genérico que funciona com qualquer microcontrolador que suporte saída PWM e bibliotecas de controle de servo.

Configuração de hardware:

Conecte o fio de alimentação do servo (vermelho) a uma fonte de 5 V capaz de fornecer pelo menos 500 mA.

Conecte o fio terra (marrom ou preto) ao GND do microcontrolador.

Conecte o fio de sinal (laranja, amarelo ou branco) a um pino compatível com PWM (por exemplo, pino 9).

Exemplo de estrutura de código (pseudocódigo universal):

#incluirServo meuServo; void setup() { meuServo.attach(9); // Anexa o servo no pino 9 } void loop() { myServo.write(0); // Comando 0 graus delay(1000); meuServo.write(90); // Comando 90 graus delay(1000); meuServo.write(180); // Comando 180 graus delay(1000); }

Oescrever (ângulo)A função converte automaticamente o ângulo para a largura de pulso correspondente usando o mapeamento padrão (0°→1,0 ms, 180°→2,0 ms). No entanto, este padrão pode não corresponder ao seu servo específico.

03Calibração: Encontrando os Limites Verdadeiros da Largura de Pulso

Para obter ângulos precisos, você deve determinar as larguras exatas de pulso que produzem 0° e 180° em SEU servo.

Procedimento de calibração:

1. Anexe um ponteiro ou marque a posição neutra do eixo.

arduino micro servo degree_arduino micro servo degree_arduino micro servo degree

2. Envie um pulso de 1,5 ms. O eixo deve estar próximo de 90°. Observe qualquer deslocamento.

3. Diminua a largura do pulso em passos de 10 µs até que o eixo pare de se mover. Essa é a sua verdadeira largura de pulso de 0°.

4. Aumente a largura do pulso de 1,5 ms em passos de 10 µs até que o eixo pare de se mover. Essa é a sua verdadeira largura de pulso de 180°.

Resultados medidos típicos de três servos comuns:

Amostra servo Pulso verdadeiro de 0° (µs) Pulso verdadeiro de 180° (µs) Pulso central de 90° (µs)
Amostra A 540 2420 1480
Amostra B 510 2450 1500
Amostra C 570 2380 1460

Esses valores mostram que assumir 1000 µs a 2000 µs pode causar erros de até 15°. Sempre use valores calibrados.

Aplicando calibração no código:

A maioria das bibliotecas de servo permitem definir faixas de largura de pulso personalizadas usando umanexar()sobrecarga ou uma função separada. Exemplo:

meuServo.attach(9, 540, 2420); // Pino, largura mínima de pulso (µs), largura máxima de pulso (µs)

Depois de anexar com limites calibrados,meuServo.write(90)enviará o pulso central exato (1480 µs neste caso), fornecendo 90° verdadeiros.

04Problemas e soluções comuns

Emitir Causa típica Correção verificada
Servo treme ou vibra Fonte de alimentação insuficiente ou barulhenta Use um regulador de 5V separado (por exemplo, 5V 1A) e adicione um capacitor de 100 µF na alimentação e no aterramento próximo ao servo
Servo não se move para o ângulo comandado Incompatibilidade de faixa de largura de pulso Execute o procedimento de calibração e defina larguras de pulso mín/máx personalizadas
Servo gira apenas entre 0° e 90° A largura do pulso nunca excede 1,5 ms Verifique seu código: garantaescreva(180)na verdade envia pulso >1,5 ms; usar intervalo de anexação personalizado
Servo esquenta rapidamente Taxa de repetição de pulso muito alta Verifique se a sua biblioteca servo produz 50 Hz (período de 20 ms). Algumas configurações PWM produzem frequências mais altas.

05Recomendações práticas para controle de ângulo confiável

Passo 1: Sempre calibre cada servo individualmente– Não assuma as especificações de fábrica. Gaste 5 minutos medindo as verdadeiras larguras de pulso de 0° e 180°.

Etapa 2: use uma fonte de alimentação dedicada– Não alimente micro servos diretamente do pino 5V do microcontrolador. Um consumo repentino de corrente pode reiniciar o controlador. Use um UBEC 5V 1A ou uma fonte externa regulada.

Etapa 3: armazene os valores de calibração em seu código– Após a calibração, codifique as larguras de pulso mínima e máxima. Exemplo:

#define SERVO_PIN 9 #define SERVO_0_PULSE 540 // µs medidos para 0° #define SERVO_180_PULSE 2420 // µs medidos para 180° Servo myServo; meuServo.attach(SERVO_PIN, SERVO_0_PULSE, SERVO_180_PULSE);

Etapa 4: verifique com um teste simples– Comando 0°, 45°, 90°, 135°, 180°. Use um transferidor para verificar a precisão. Se algum ângulo estiver errado em mais de 2°, repita a calibração.

Etapa 5: documente suas configurações– Anote as larguras de pulso calibradas para cada servo. Ao substituir um servo, recalibre imediatamente.

06Princípio fundamental reafirmado:

O ângulo do micro servo é controlado diretamente pela largura do pulso. O mapeamento padrão (1,0 ms = 0°, 1,5 ms = 90°, 2,0 ms = 180°) é um ponto de partida. Servos reais requerem calibração individual de larguras de pulso mínimas e máximas para alcançar uma precisão real de 0° a 180°. Sem calibração, você poderá experimentar deslocamentos de 10° a 20°.

Seguindo o procedimento de calibração e personalizando a faixa de largura de pulso em seu código, você obterá posicionamento de servo preciso e repetível para qualquer aplicação – de braços robóticos a gimbals de câmera. Sempre teste os verdadeiros limites de cada servo e ajuste seu código de acordo. Essa prática elimina suposições e garante que seu projeto funcione sempre de maneira confiável.

Hora de atualização: 07/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
+86 0769 8399 3238
 
kpowerMap