Publicado 2026-03-03
Você costuma encontrar essa situação ao brincar comservos: Você comprou o mesmo modelo, mas quando ele gira ele balança como uma peneira ou o ângulo está errado? Depois de lutar por muito tempo, descobri que o problema está no misterioso sinal de modulação por largura de pulso (PWM). Não se preocupe, hoje vamos entender isso a fundo e fazer com que seu produto se mova de forma constante e precisa.
Simplificando, o PWM é como uma lâmpada que pode ser regulada. Para oservo, controla a rotação através de pulsos de alto e baixo nível. Você pode pensar nisso como se estivesse ordenando a uma pessoa que corra: o nível alto representa "correr", o nível baixo representa "parar" e a duração da "corrida" determina a posição doservo.
Este tempo de “corrida” é denominado largura de pulso em termos técnicos. Um servo padrão geralmente recebe uma instrução a cada 20 milissegundos, e a duração do nível alto varia entre 0,5 milissegundos e 2,5 milissegundos. A duração deste tempo corresponde diretamente ao ângulo de rotação do servo de 0 graus a 180 graus.
Portanto, quando você descobrir que o servo não está obedecendo ao comando, provavelmente é porque o “tempo de execução” emitido para ele não foi calculado com precisão.
Muitos amigos usam diretamente a saída PWM da placa de desenvolvimento, mas descobrem que sempre há uma diferença quando o servo é girado em 90 graus. A razão por trás disso é bastante injusta: seu código pode escrever diretamente “1.500 microssegundos” para representar 90 graus, mas o chip de controle dentro de cada servo é um pouco diferente.
É como dar a duas pessoas a instrução de “andar rápido”. Uma pessoa interpreta isso como corrida e a outra como caminhada. O servo em si não possui mecanismo de feedback para dizer ao controlador "Estou em posição", ele apenas executa cegamente.
O primeiro passo para resolver este problema é confirmar se a sua fonte de sinal está estável. Use um osciloscópio para ver se o tempo de alto nível de saída real é exatamente igual ao que está escrito no código. Muitas vezes, apenas algumas dezenas de microssegundos podem fazer uma enorme diferença no desempenho do servo.
Não comece apenas a escrever código, faça primeiro um pequeno experimento. Conecte seu servo, comece com a largura de pulso mínima (como 500 microssegundos) e aumente gradualmente enquanto observa a posição limite de rotação do servo.
Você descobrirá que dentro de uma certa faixa o servo não se move. Este é o seu limite mecânico. Continue aumentando até começar a girar, observe este valor inicial. Em seguida, continue a aumentar até que o servo não gire mais e registre o valor final. Esta faixa é a faixa de trabalho real do seu aparelho de direção.
O valor nominal de muitos servos é de 0,5ms a 2,5ms, correspondendo a 0 a 180 graus, mas a medição real pode ser de apenas 0,6ms a 2,4ms. Use dados medidos reais para programar, para que seu servo possa atingir onde você deseja.
Além da largura do pulso, a frequência do PWM também é crítica. Para servos de hobby comuns, 50 Hz (ou seja, ciclo de 20 milissegundos) é o padrão. Mas alguns amigos usam frequências mais altas por conveniência.
À medida que a frequência aumenta, o período diminui. O comando foi enviado originalmente uma vez a cada 20 milissegundos, mas agora é enviado uma vez a cada 10 milissegundos. O circuito dentro do servo pode não ter tido tempo de responder ao último comando e o próximo comando vem novamente. O resultado é que o servo está sempre tentando recuperar o atraso, o que se manifesta como calor e instabilidade.
️ Lembre-se deste princípio: a menos que seu servo suporte claramente o controle de banda larga, mantenha-se em 50 Hz. Os servos digitais de nível industrial podem ter requisitos de taxa de atualização mais elevados, mas isso depende da folha de dados específica e não pode ser considerado garantido.
Após determinar a faixa e a frequência do pulso, o próximo passo é a programação. Não escreva a relação linear entre o ângulo e a largura do pulso e aplique-a diretamente. Porque alguns servos são particularmente sensíveis perto do ponto neutro, mas demoram a responder em ambos os lados.
Você pode introduzir uma função de mapeamento para criar uma tabela a partir dos pontos de ângulo medidos e da largura de pulso. Por exemplo, 0 graus medidos correspondem a 600 microssegundos, 45 graus correspondem a 1.200 microssegundos e 90 graus correspondem a 1.500 microssegundos. Em seguida, no código, com base no ângulo alvo, consulte a tabela e interpole para calcular a largura real do pulso.
Dessa forma, quando você quiser que o braço robótico desenhe um círculo, as pequenas rotações de cada junta serão muito suaves e não haverá sensação de avançar uma por uma. Embora o código tenha mais algumas linhas, a textura do produto é completamente diferente.
Se você fez tudo acima corretamente e o servo ainda está tremendo, então você precisa verificar a fonte de alimentação. A corrente quando o servo é iniciado é muito grande. Se a sua placa de controle e o servo compartilharem a mesma fonte de alimentação, as flutuações de tensão irão interferir na geração PWM do microcontrolador.
1. Forneça uma fonte de alimentação separada para o servo e conecte o fio terra do sinal de controle e o fio terra da fonte de alimentação juntos.
2. Conecte um capacitor grande (acima de 470uF) em paralelo a ambas as extremidades da fonte de alimentação do servo para absorver o pico de inicialização.
3. Verifique o comprimento do fio de controle PWM. Se ultrapassar 30 cm, recomenda-se a utilização de fio blindado ou adição de anel magnético para evitar interferências.
Além disso, a atualização do sinal de controle deve ser estável, e não utilizar atraso para gerar PWM no loop, que pode ser facilmente interrompido por outras interrupções, fazendo com que a largura do pulso seja longa e curta. Usar PWM de hardware é a opção mais tranquila.
Depois de ver isso, você deverá ter uma boa ideia de como usar o servo. Se você quiser fazer produtos mais legais, o segredo é ajustar cada detalhe do sinal PWM para ser dócil. Qual foi o problema mais problemático que você encontrou ao depurar o servo? Bem-vindo a deixar uma mensagem na área de comentários, e discutiremos e resolveremos juntos. Se achar útil, não esqueça de curtir e compartilhar para que mais amigos possam se despedir dos problemas dos mecanismos de direção.
Hora de atualização: 03/03/2026
Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.