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

Suporte ao produto

Como o PWM controla o ângulo do servo motor – Guia completo

Publicado 2026-04-13

Modulação por largura de pulso (PWM) é o método padrão usado para controlar com precisão a posição angular de um hobby padrãoservomotor. Variando a largura do pulso elétrico enviado aoservoa cada 20 milissegundos, você pode comandar oservopara mover para um ângulo específico, normalmente entre 0 e 180 graus. Este guia fornece as especificações exatas do sinal, lógica de controle passo a passo, exemplos práticos e dicas de solução de problemas para que você possa implementar o controle servo PWM imediatamente.

01Princípio Básico: A Largura do Pulso é Mapeada Diretamente para o Ângulo

Um servo motor padrão contém um pequeno circuito de controle que lê o sinal PWM recebido. A posição do eixo de saída do servo é determinada unicamente pelalargura de pulso(duração do sinal alto) dentro de um quadro fixo de 20 ms (50 Hz). A relação é linear: uma largura de pulso específica é igual a um ângulo alvo específico.

Mapeamento pulso-ângulo padrão (para servos de 0–180°):

0 graus:Pulso de 0,5 ms (500 microssegundos)

90 graus (neutro):Pulso de 1,5 ms (1500 microssegundos)

180 graus:Pulso de 2,5 ms (2.500 microssegundos)

Esses valores são padrão da indústria. Sempre verifique a folha de dados do seu servo, mas mais de 95% dos servos padrão seguem esse mapeamento exato.

02Passo a passo: Gerando o sinal PWM correto

Para controlar o ângulo do servo, você deve gerar um sinal repetido com dois parâmetros principais:

Etapa 1: Defina o período PWM para 20 ms (50 Hz)

O servo espera um novo pulso a cada 20 milissegundos. Isso significa que a frequência PWM é 1/0,02 s = 50 Hz. Não altere esta frequência; caso contrário, o servo irá tremer ou não responder.

Passo 2: Escolha o ângulo desejado e calcule a largura do pulso

Use esta fórmula de interpolação linear:

Largura de pulso (ms) = 0,5 + (ângulo/180) 2.0

Por exemplo:

Ângulo = 45° → Pulso = 0,5 + (45/180)2,0 = 0,5 + 0,5 =1,0ms

Ângulo = 135° → Pulso = 0,5 + (135/180)2.0 = 0.5 + 1.5 = 2,0ms

Etapa 3: aplique o pulso alto pela duração calculada e depois o pulso baixo pelo restante de 20 ms

Na prática, você define um temporizador: saída HIGH para a largura do pulso (por exemplo, 1,5 ms) e, em seguida, saída LOW para o tempo restante (20 ms – 1,5 ms = 18,5 ms). Repita continuamente.

03Exemplo do mundo real: controlando um servo de 0° a 180°

Imagine que você tem um servo conectado a um braço robótico. Você deseja que ele se mova totalmente para a esquerda (0°) para totalmente para a direita (180°) em etapas.

Sequência de sinal (cada linha é um ciclo de 20 ms):

Ciclo 1: ALTO por 0,5 ms → Servo se move para 0°

Ciclo 2: ALTO por 1,0 ms → Servo se move para 45°

Ciclo 3: ALTO por 1,5 ms → Servo se move para 90°

Ciclo 4: ALTO por 2,0 ms → Servo se move para 135°

Ciclo 5: ALTO por 2,5 ms → Servo se move para 180°

Comportamento observado:O servo irá avançar para cada ângulo e manterá essa posição. Ele não oscila porque o circuito de controle recebe constantemente a largura de pulso alvo.

04Métodos comuns de implementação (sem nomes de marcas)

Você pode gerar o sinal PWM necessário usando:

Módulos de temporizador/contador microcontrolador– Configure um PWM de 50 Hz com ciclo de trabalho variável. Ciclo de trabalho = (largura de pulso / 20 ms) 100%. Para pulso de 1,5 ms, ciclo de trabalho = 7,5%.

Batida de software– Controle diretamente um pino GPIO com atrasos. Menos preciso, mas funciona para o aprendizado.

Módulos de servo-driver dedicados– Essa precisão de tempo de descarregamento, mas ainda requer a mesma faixa de pulso de 0,5–2,5 ms.

Requisito crítico de precisão:A precisão da largura de pulso deve estar dentro de ±10 µs (microssegundos). Ocorrem tremores ou ângulos errados se o tempo estiver errado em mais de 20 µs.

05Solução de problemas: Por que o servo não atinge o ângulo correto?

Sintoma Causa mais provável Consertar
O servo só se move entre 0° e 90° (não 180°) A faixa de largura de pulso é de 1,0–2,0 ms em vez de 0,5–2,5 ms Ajuste seu código para produzir 0,5 ms no mínimo e 2,5 ms no máximo
Servo vibra ou zumbe em extremos A largura do pulso está ligeiramente além dos limites mecânicos Limite o pulso a 0,5–2,5 ms; nunca envie 2,6 ms
Servo não responde nada Frequência errada (não 50 Hz) Verifique se o período PWM é exatamente 20 ms (50 Hz)
O ângulo está deslocado (por exemplo, 1,5 ms dá 95° em vez de 90°) Servo tem ponto neutro fora do padrão Meça o pulso real em 90° e recalibre seu mapeamento

Caso real:Um erro comum é usar um intervalo de 1,0–2,0 ms porque algumas bibliotecas de microcontroladores usam esse padrão. Um usuário relatou que seu servo girou apenas 90° no total. Depois de alterar a faixa de pulso para 0,5–2,5 ms, a rotação completa de 180° foi restaurada.

06Principais conclusões - repita estes princípios básicos

O PWM controla o ângulo do servo pela largura do pulso, não apenas pelo ciclo de trabalho.Para um período fixo de 20 ms, o tempo máximo absoluto (0,5 a 2,5 ms) determina a posição.

A relação é linear:largura de pulso = 0,5 ms + (ângulo/180)*2,0 ms.

Sempre use 50 Hz (período de 20 ms).Qualquer outra frequência causará comportamento errático ou nenhum movimento.

Verifique suas larguras de pulso mínima e máxima.A maioria dos problemas vem da faixa de pulso incorreta e não de falha de hardware.

07Recomendações práticas para servocontrole confiável

Siga estas etapas imediatamente para obter resultados consistentes:

1. Meça a resposta real do seu servo.Envie pulsos de 0,5 ms, 1,5 ms e 2,5 ms. Marque os ângulos físicos. Se não forem 0°, 90°, 180°, registre o mapeamento real do pulso para o ângulo.

2. Adicione uma margem de segurança de 100–200 µsem ambas as extremidades (pulso mínimo = 0,6 ms, máximo = 2,4 ms) para evitar ligação mecânica.

3. Use um hardware de timer dedicadoem vez de atrasos de software quando possível. O PWM baseado em temporizador mantém a precisão mesmo quando o código principal está ocupado.

4. Teste com um analisador lógico ou osciloscópiopara confirmar larguras de pulso. Muitas simulações de software escondem erros de temporização.

5. Para projetos multi-servo,mantenha a fonte de alimentação separada da fonte lógica. Um servo travado pode consumir 1–2A, causando quedas de tensão que corrompem os sinais PWM.

Ao aderir estritamente à faixa de largura de pulso de 0,5 a 2,5 ms dentro de um período de 20 ms, você obterá controle de ângulo preciso e repetível em qualquer servo motor padrão. Implemente primeiro a etapa de medição, depois ajuste seu código e seu servo se moverá exatamente para onde você comanda.

Hora de atualização: 13/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