Como controlar o ângulo do servo motor com um microcontrolador: um guia passo a passo completo_Gear Motor_Industry Insights_Kpower
Lar > Informações do setor >Motor de engrenagem
SUPORTE TÉCNICO

Suporte ao produto

Como controlar o ângulo do servo motor com um microcontrolador: um guia passo a passo completo

Publicado 2026-04-17

01Como controlarservoÂngulo do motor com microcontrolador: um guia passo a passo completo

Este guia fornece uma explicação clara e prática de como exatamente um microcontrolador controla o ângulo de rotação de um padrão.servomotor. Você aprenderá o princípio de funcionamento básico, o sinal elétrico preciso necessário e o método passo a passo completo para gerar esse sinal usando qualquer microcontrolador comum. Não são mencionados nomes de marcas ou produtos específicos da empresa – apenas são usados ​​princípios genéricos e amplamente aplicáveis ​​e exemplos do mundo real.

1. Princípio Básico: Modulação por Largura de Pulso (PWM) Determina Diretamente o Ângulo

Um padrãoservomotor faznãogire continuamente como um motor DC normal. Em vez disso, ele se move para uma posição angular específica (por exemplo, 0°, 90° ou 180°) e mantém essa posição. O ângulo é controlado inteiramente pela largura de um pulso elétrico enviado a cada 20 milissegundos (ms).

A relação direta é:

Largura de pulso entre 1,0 ms e 2,0 msÂngulo entre 0° e 180°(para servos mais comuns)

Um pulso de 1,0 ms → 0° (totalmente no sentido anti-horário)

Um pulso de 1,5 ms → 90° (posição central)

Um pulso de 2,0 ms → 180° (totalmente no sentido horário)

> Exemplo do mundo real:Em um braço robótico amador, para fechar completamente a garra (0°), o microcontrolador envia um pulso repetido de 1,0 ms. Para abrir totalmente a garra (180°), ela envia um pulso de 2,0 ms. Para uma posição semiaberta (90°), envia um pulso de 1,5 ms.

Este sinal é chamadoModulação por largura de pulso (PWM)– um método onde o microcontrolador emite um sinal digital que alterna entre ON (5V ou 3,3V) e OFF (0V) muito rapidamente, e a duração do pulso ON é o que o servo lê.

2. Passo a passo: como o microcontrolador gera o pulso correto

Siga exatamente estas etapas para controlar qualquer servo padrão com qualquer microcontrolador:

Etapa 1: Identifique os requisitos de sinal do servo

A maioria dos servos padrão opera com:

Tensão:4,8 V – 6,0 V (fonte de alimentação,nãodos pinos do microcontrolador)

Tensão do sinal de controle:3,3 V ou 5 V (corresponde ao nível lógico do microcontrolador)

Período de repetição de pulso:20 ms (frequência de 50 Hz)

Faixa de largura de pulso:1,0 ms a 2,0 ms (para 0° a 180°)

Importante:Verifique a folha de dados do seu servo para obter a faixa exata de largura de pulso. Alguns servos usam 0,5 ms a 2,5 ms para 0°–180°, ou 1,0 ms a 2,0 ms para 0°–90°. O princípio permanece idêntico.

Etapa 2: Conecte o Servo ao Microcontrolador Corretamente

Um servo padrão possui três fios:

Cor do fio (típico) Função Conexão
Marrom ou Preto Terra (GND) Microcontrolador GND
Vermelho Potência (VCC, 5V) Fonte de alimentação externa de 5V (não use o pino de 5V do microcontrolador para mais de um servo pequeno)
Laranja ou Amarelo Sinal (PWM) Pino digital do microcontrolador compatível com PWM

Nota crítica de segurança:Nunca alimente um servo diretamente do pino de 5V de um microcontrolador. Um servo pode consumir 200–1000 mA, o que excede a maioria das classificações de pinos do microcontrolador. Use uma fonte de alimentação separada de 5 V com aterramento comum.

Etapa 3: Configurar o hardware PWM do microcontrolador

Cada microcontrolador possui temporizadores PWM integrados. A configuração requer a definição de dois parâmetros:

Frequência = 50Hz(período = 20 ms)

Resolução(normalmente de 8 a 16 bits, dependendo do microcontrolador)

Exemplo de cálculo genérico (para qualquer microcontrolador):

Se a sua resolução PWM for de 8 bits (0 a 255) e o período total for de 20 ms (20.000 µs):

Pulso de 1,0 ms → ciclo de trabalho = (1,0 ms / 20 ms) × 255 = 12,75 → uso 13

Pulso de 1,5 ms → ciclo de trabalho = (1,5 ms / 20 ms) × 255 = 19,125 → uso 19

Pulso de 2,0 ms → ciclo de trabalho = (2,0 ms / 20 ms) × 255 = 25,5 → uso 26

Caso do mundo real:Um microcontrolador comum de 8 bits configurado para PWM de 50 Hz escreverá um valor de 13 no registro de comparação PWM para atingir 0°, 19 para 90° e 26 para 180°.

Etapa 4: Escreva o código do microcontrolador para definir o ângulo desejado

A lógica do código é sempre a mesma em todos os microcontroladores:

1. Inicialize o hardware PWM com frequência de 50 Hz.

2. Calcule a largura de pulso necessária em microssegundos para o ângulo alvo usando a fórmula linear:

Largura de pulso (µs) = 1000 + (ângulo/180) × 1000(para intervalo de 1,0–2,0 ms)

Ângulo 0° → 1000 µs

Ângulo 90° → 1500 µs

Ângulo 180° → 2.000 µs

3. Converta a largura do pulso no valor do registro do ciclo de trabalho do microcontrolador.

4. Escreva esse valor no pino de saída PWM.

Pseudocódigo genérico (adaptar-se a qualquer microcontrolador):

// Suponha que o temporizador PWM já esteja configurado para 50 Hz, resolução de 8 bits int targetAngle = 90; // graus int pulseWidth_us = 1000 + (targetAngle1000/180); int dutyCycleValue = (pulseWidth_us255)/20.000; setPWMDutyCycle(PWM_PIN, dutyCycleValue);

Passo 5: Verifique com medições do mundo real

Após carregar o código, use um osciloscópio ou analisador lógico para verificar o sinal:

A frequência deve ser 50 Hz(período = 20 ms)

A largura do pulso deve corresponder ao valor calculado(por exemplo, 1,5 ms para 90°)

Problema comum do mundo real:Se o servo tremer ou não se mover, a largura do pulso provavelmente está incorreta. Meça diretamente no pino de sinal. Um erro de 0,05 ms pode causar um desvio de 5°–10°.

3. Exemplo Completo: Controlando um Servo de 0° a 180° e Voltar

Aqui está um exemplo completo e genérico que funciona em qualquer microcontrolador após uma pequena adaptação de sintaxe. A lógica é o que importa.

Cenário:Uma plataforma simples de câmera panorâmica. O servo deve varrer de 0° a 180° e voltar continuamente.

Lógica de implementação passo a passo:

1. Defina a frequência PWM para 50 Hz.

2. Defina uma funçãodefinirAngle(ângulo)que:

Ângulo de fixação entre 0° e 180°

Calcula a largura do pulso = 1000 + (ângulo × 1000/180) microssegundos

Converte para o valor do registro do ciclo de trabalho

Grava no pino PWM

3. No loop principal:

Incremente o ângulo de 0° a 180° em passos de 1°

ChamardefinirAngle(ângulo)para cada etapa

Aguarde 15 ms (permite que o servo se mova fisicamente)

Em seguida, diminua o ângulo de volta para 0°

Resultado esperado:O servo gira suavemente de uma extremidade à outra, parando precisamente em cada ângulo calculado.

4. Tabela de Verificação Crítica: Largura de Pulso versus Ângulo

Use esta tabela para verificação rápida sem cálculos:

Ângulo desejado Largura de pulso necessária (µs) Ciclo de trabalho a 50 Hz, 8 bits (0–255)
1000 13
45° 1250 16
90° 1500 19
135° 1750 22
180° 2000 26

Observação:Se o seu servo não atingir exatamente 0° ou 180°, ajuste ligeiramente as larguras de pulso mínima e máxima (por exemplo, 950 µs para 0°, 2050 µs para 180°). Isto é normal devido às tolerâncias de fabricação.

5. Por que este método é universal e confiável

O método de controle de largura de pulso é uma interface servo analógica padrão da indústria usada há décadas. Cada servo padrão – independentemente do fabricante – responde à mesma faixa de pulso de 1,0–2,0 ms. Isso significa:

Você pode controlar qualquer servo padrão com qualquer microcontrolador que produza 50 Hz PWM.

A mesma lógica de código funciona para microcontroladores de 8 a 32 bits.

Não são necessárias bibliotecas proprietárias ou funções específicas da marca.

6. Problemas comuns do mundo real e suas soluções

Problema Causa mais provável Solução
Servo não se move Sem energia para o servo ou conexão de aterramento incorreta Conecte a alimentação do servo à fonte externa de 5 V e ao aterramento comum com o microcontrolador
Servo vibra ou treme A largura do pulso é instável ou a frequência não é exatamente 50 Hz Verifique a configuração do PWM; use PWM de hardware em vez de loops de atraso de software
O servo se move apenas para 0° e 180°, não para ângulos intermediários O código está enviando apenas larguras de pulso mínimas e máximas Verifique a fórmula de cálculo; medir a largura do pulso com osciloscópio
Servo fica muito quente A frequência de pulso é muito alta (por exemplo, 300 Hz em vez de 50 Hz) Reconfigure o PWM para exatamente 50 Hz (período de 20 ms)
A posição do servo muda com o tempo A tensão da fonte de alimentação está instável Adicione um capacitor grande (1000 µF) nas linhas de energia do servo

7. Conclusão prática: suas próximas etapas exatas

Princípio fundamental a ser lembrado:

> O ângulo do servo édiretamente proporcionalà largura de pulso entre 1,0 ms e 2,0 ms, repetida a cada 20 ms. Mude a largura do pulso e você mudará o ângulo – nada mais importa.

Plano de ação imediato a implementar hoje:

1. Verifique a faixa de pulso do seu servo– Verifique sua folha de dados para larguras de pulso mín/centro/máx. A maioria usa 1,0/1,5/2,0 ms para 0/90/180°.

2. Configure o PWM do seu microcontrolador– Configure um pino PWM para frequência de 50 Hz. Use PWM de hardware, e não bit-banging de software, para pulsos estáveis.

3. Escreva a fórmula de conversão de ângulo para pulso- Usar:pulso_us = 1000 + (ângulo_grau × 1000/180).

4. Teste com três ângulos conhecidos– Comando 0°, 90° e 180°. Meça a posição real do eixo. Ajuste as larguras de pulso mín/máx, se necessário.

5. Adicione uma rotina de calibração– Armazene as larguras de pulso mínima e máxima exatas do seu servo em código. Isso garante uma faixa perfeita de 0° a 180°, apesar das variações de fabricação.

Validação final:Depois de seguir este guia, você será capaz de comandar qualquer ângulo de 0° a 180° com precisão de ±1°. O mesmo método funciona para servos de rotação contínua (onde a largura de pulso controla velocidade e direção) e para servos com diferentes faixas de ângulo (por exemplo, 0°–90° ou 0°–270°) – basta ajustar a faixa de largura de pulso de acordo.

Repita a verdade central:Um microcontrolador controla o ângulo de um servo emitindo um sinal PWM de 50 Hz onde o tempo ON (largura de pulso) varia de 1,0 ms (0°) a 2,0 ms (180°). Domine essa relação pulso-ângulo e você poderá controlar qualquer servo com qualquer microcontrolador.

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