Publicado 2026-03-03
Não entendo a relação entre PWM eservoângulo? Vendo oservosem virar ou virar aleatoriamente, fiquei ansioso. Não se preocupe, vamos decompô-lo e explicá-lo claramente hoje, para que você não apenas saiba como ajustá-lo, mas também entenda os princípios por trás dele.
Muitos amigos se depararam com esta situação quando brincaram com servos pela primeira vez: depois que os fios foram conectados e o programa foi gravado, os servos simplesmente não se moveram. Geralmente isso ocorre porque você não entende o que é o sinal PWM. Simplificando, há um pequeno motor na caixa de direção e um conjunto de circuitos de controle. Ele não analisa a tensão ou a corrente, mas apenas reconhece um sinal de pulso especial, que é o PWM.
Este sinal é como um comandante estrito, enviando um comando ao leme a cada 20 milissegundos (ou seja, uma frequência de 50Hz). A largura deste comando, ou seja, a duração do nível alto, determina diretamente o quanto o servo gira. Seu sinal tem frequência errada ou largura de pulso errada. O servo não consegue entender isso e irá naturalmente ignorar você.
Precisamos esclarecer claramente essa relação central. A largura de pulso de um sinal de servocontrole padrão está geralmente entre 0,5 milissegundos e 2,5 milissegundos. Você pode pensar nisso como uma escala de tempo. Quando o nível alto dura 1,5 milissegundos, o eixo de saída do servo irá parar na posição intermediária, que é 90 graus.
Se o tempo de alto nível for reduzido para 0,5 milissegundos, o servo girará para a esquerda, geralmente 0 graus. Pelo contrário, se for estendido para 2,5 milissegundos, ele girará para a extrema direita, que é 180 graus. Portanto, controlar o ângulo da caixa de direção é essencialmente controlar com precisão a duração desse alto nível, que é o que costumamos chamar de “ciclo de trabalho”.
Depois de compreender a relação entre a largura e o ângulo do pulso, temos que descobrir como obter esse tempo preciso. Usamos um sinal de 50 Hz com período de 20 milissegundos. Para obter um nível alto de 1,5 milissegundos, o ciclo de trabalho é 1,5 dividido por 20, o que equivale a 7,5%. Da mesma forma, 0,5 milissegundos correspondem a um ciclo de trabalho de 2,5% e 2,5 milissegundos correspondem a um ciclo de trabalho de 12,5%.
Este cálculo é crucial durante a programação. Por exemplo, se você usá-lo, sua função gerará um valor de 0 a 255, correspondendo a um ciclo de trabalho de 0% a 100%. Você precisa converter 7,5% no valor correspondente, que é cerca de 19. Se o cálculo não for preciso, o servo não será capaz de girar para a posição precisa desejada.
Agora que a teoria está clara, vamos começar a escrevê-la. Tomando como exemplo o mais comum, não é possível utilizá-lo sozinho porque sua frequência padrão não é 50Hz. Precisamos usar a biblioteca Servo.h, que pode nos ajudar a lidar com todos os cálculos PWM complexos. Você só precisa escrever .(9), conectar a linha de sinal ao pino 9 e, em seguida, escrever .write(90) e o servo girará 90 graus.
Se você estiver usando outras placas de desenvolvimento, como a STM32, o princípio é o mesmo. A chave é encontrar a função que controla a frequência PWM e a largura do pulso. A ideia central é: configurar o temporizador, definir a frequência PWM para 50 Hz e, em seguida, alterar o valor do registro de comparação para ajustar a largura do pulso para controlar o ângulo.
A servo vibração é um problema problemático. Existem dois motivos mais comuns. Primeiro, a fonte de alimentação é insuficiente. O servo requer uma corrente relativamente grande para girar. Se a porta USB da sua placa de desenvolvimento tiver fonte de alimentação insuficiente, isso causará instabilidade de tensão, distúrbio de sinal e o servo irá tremer naturalmente. A solução é conectar uma fonte de alimentação externa separada ao servo e conectar os fios terra da placa de desenvolvimento e do servo ao mesmo aterramento.
Outro motivo é a interferência de sinal. Se as linhas de controle e as linhas de acionamento do motor estiverem emaranhadas ou se o sinal PWM em si não for estável o suficiente, isso também poderá causar instabilidade. Verifique a fiação, tente manter as linhas de sinal longe de linhas de alta corrente e certifique-se no código de que a interrupção do temporizador gerada pelo sinal PWM não seja frequentemente interrompida por outros programas.
Se você acha que o servo padrão de 180 graus não é suficiente e quer tocar algo mais legal, então você deve dar uma olhada no servo de rotação contínua de 360 graus ou usar um motor sem escova com ESC. Embora o princípio de controle ainda seja PWM, a lógica é diferente. Para um servo de 360 graus, uma largura de pulso de 1,5 ms o faz parar. Se for inferior a 1,5 ms, ele girará em uma direção. Se for maior que 1,5 ms, ele girará na direção oposta. Quanto mais a largura do pulso se desviar, mais rápido ele girará.
Isso lhe dá mais espaço criativo e você pode facilmente fazer uma roda de carro ou robô. No entanto, deve-se notar que este tipo de aparelho de direção não pode controlar com precisão o ângulo, mas apenas controlar a velocidade e a direção. Se o seu projeto exigir posicionamento preciso, como um braço robótico, você ainda precisará usar servos padrão.
Espero que o que falei hoje possa ajudá-lo a entender completamente o PWM e o controle de servo. Que outros problemas estranhos você encontrou ao ajustar a direção? Por exemplo, você já encontrou uma situação em que o servo inverte ou fica extremamente quente? Bem-vindo a compartilhar na área de comentários, vamos discutir e resolver juntos! Se você achar o artigo útil, não esqueça de curtir e compartilhar com seus amigos que também estão jogando.
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.