Publicado 2026-04-05
Definir umservomotor para um ângulo de rotação específico é uma tarefa fundamental em robótica, automação e eletrônica DIY. Este guia fornece as etapas exatas, lógica de código e métodos de calibração para fazer qualquer padrãoservogire em qualquer ângulo que você precisar - sem depender de nenhuma marca ou produto específico. Você aprenderá o princípio universal da largura de pulso, a abordagem de programação passo a passo e como solucionar erros de ângulo comuns. No final, você será capaz de definir os ângulos do servo com precisão e repetidamente.
Todos os servos padrão usam umModulação por largura de pulso (PWM)sinal para determinar seu ângulo de rotação. O sinal de controle é uma frequência de 50 Hz (período = 20 milissegundos). Dentro de cada período de 20 ms, um pulso alto (o tempo “ligado”) informa ao servo para onde ir.
Pulso de 1,0 ms→ 0 graus (totalmente no sentido anti-horário na maioria dos servos)
Pulso de 1,5 ms→ 90 graus (posição central)
Pulso de 2,0 ms→ 180 graus (totalmente no sentido horário)
Esses valores são o padrão da indústria. No entanto, os pontos finais reais podem variar ligeiramente entre servos individuais. A tabela abaixo mostra a relação universal:
> Fato importante: A largura do pulso altera o ângulo linearmente. Para qualquer ângulo entre 0° e 180°, a largura de pulso necessária = 1,0 ms + (ângulo/180) × 1,0 ms.
Siga estas quatro etapas universais. Nenhum software ou hardware específico da marca é assumido.
Um servo padrão possui três fios:
Marrom ou Preto– Terra (conecte ao GND do seu controlador)
Vermelho– Potência (5V para a maioria dos servos; verifique a classificação de tensão do seu servo)
Laranja ou Amarelo– Sinal (conecte a um pino compatível com PWM)
> Aviso crítico: Não alimente um servo diretamente do pino de 5V de um microcontrolador quando estiver sob carga. Use uma fonte de alimentação separada de 5V capaz de fornecer pelo menos 1A por servo.
Configure seu microcontrolador ou servo driver para produzir um sinal de 50 Hz (período de 20 ms). Em seguida, defina a largura do pulso de acordo com o ângulo alvo.
Cálculo de exemplo: Para definir 45°
Largura de pulso = 1,0 + (45/180)×1,0 = 1,0 + 0,25 = 1,25 ms
Cálculo de exemplo: Para definir 135°
Largura de pulso = 1,0 + (135/180)×1,0 = 1,0 + 0,75 = 1,75 ms
A seguinte lógica funciona em qualquer plataforma (Arduino, Raspberry Pi, ESP32, etc.):
Definir frequência PWM = 50 Hz Definir resolução PWM = 1 µs (microssegundo) etapas função setAngle (angle_degrees): se angle_degrees 180: angle_degrees = 180 pulse_width_us = 1000 + (angle_degrees / 180)1000 # pulse_width_us está entre 1000 e 2000 Sinal PWM de gravação: período = 20.000 µs, high_time = pulse_width_us
Após enviar seu código, observe a buzina do servo. Se a buzina não se mover para a posição esperada, siga a calibração na Seção 4.
Considere um braço robótico simples com três articulações (ombro, cotovelo, punho). Você deseja que a articulação do cotovelo se mova de 30° a 120° durante 2 segundos.
Etapas do caso:
1. Identifique o servo do cotovelo.
2. Escreva um loop que aumente gradualmente o ângulo:
Ângulo inicial = 30° → largura de pulso = 1,0 + (30/180)×1,0 = 1,1667 ms
Ângulo final = 120° → largura de pulso = 1,0 + (120/180)×1,0 = 1,6667 ms
3. Aumente o ângulo em 1° a cada 20 milissegundos (50 passos por segundo).
![]()
4. Duração total = (120‑30) passos × 0,02 s = 1,8 segundos (aproximadamente).
Resultado: O cotovelo move-se suavemente de 30° a 120° sem solavancos. Este método é usado diariamente em milhares de robôs educacionais e amadores.
Mesmo com o intervalo correto de 1,0 a 2,0 ms, você pode descobrir que um comando para 90° resulta em 85° ou 95°. Isto é normal devido às tolerâncias de fabricação. Calibre cada servo individualmente:
1. Comande o servo para 0° (envie pulso de 1,0 ms).
2. Marque a posição real na buzina.
3. Comande o servo para 180° (envie pulso de 2,0 ms).
4. Marque a posição real.
5. Meça a faixa do ângulo real. Por exemplo, se o alcance físico for de apenas 170°:
Pulso mínimo verdadeiro = 1,0 ms (ainda funciona)
Pulso máximo verdadeiro = 2,0 ms dá 170° → para obter 180°, você precisaria de 2,058 ms.
6. Em vez de alterar o alcance padrão, mapeie o ângulo desejado para o alcance real:
ângulo_real = ângulo_desejado × (ângulo_máx_verdadeiro / 180)
Exemplo: Se o ângulo máximo verdadeiro = 170°, para obter os 90° desejados:
ângulo_real = 90 × (170/180) = 85°→ enviar pulso para 85°.
Esse mapeamento linear garante que a buzina física vá exatamente onde você deseja.
Evite estes erros para garantir o sucesso:
Alguns servos são modificados para rotação contínua. Nesse caso, a largura do pulso não define mais um ângulo absoluto. Em vez de:
1,5ms→ parar
(por exemplo, 1,3 ms) → gire em uma direção a uma velocidade proporcional à diferença
>1,5ms(por exemplo, 1,7 ms) → gire na direção oposta
Para servos de rotação contínua, “definir um ângulo” não é possível sem um sensor de feedback (encoder). Use um servo padrão (0–180°) para posicionamento em ângulo absoluto.
Princípio central repetido: O ângulo de rotação do servo é definido gerando um sinal PWM de 50 Hz com uma largura de pulso entre 1,0 ms (0°) e 2,0 ms (180°). A relação é linear.
Plano de ação imediato:
1. Conectarseu servo a uma fonte de alimentação dedicada de 5 V (não o pino de 5 V do seu microcontrolador se houver mais de um servo).
2. Gerarum sinal PWM de 50 Hz em qualquer pino GPIO usando a biblioteca servo de sua plataforma preferida ou PWM bruto.
3. Calculara largura do pulso:pulso_us = 1000 + (ângulo_desejado/180)1000.
4. Testecom 0°, 90° e 180°. Marque as posições reais.
5. Calibrarusando a fórmula de mapeamento na Seção 4 se as posições estiverem erradas em mais de 2°.
6. Mova-se gradualmenteentre ângulos alterando o ângulo em 1–2° a cada 20–50 ms para evitar estresse mecânico.
Seguindo este guia, você pode definir qualquer servo padrão para qualquer ângulo entre 0° e 180° com precisão de ±1°. Não são necessários truques específicos da marca – apenas o padrão PWM universal que todos os servos obedecem.
Hora de atualização: 05/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.