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

Suporte ao produto

Princípio e conexão do controle da engrenagem de direção 51 Tutorial do microcontrolador para iniciantes começarem rapidamente

Publicado 2026-02-24

Brincando com oservo: Desde o início até o combate real com o 51 MCU, este artigo irá ajudá-lo!

Você está pensando em adicionar uma “junta” que possa balançar com precisão ao seu produto inovador? O mecanismo de direção parece muito profissional, mas na verdade não é tão difícil quanto você pensa. Especialmente conectá-lo ao microcontrolador 51 clássico é um excelente caminho para fabricantes iniciantes. Quando muitos amigos tiveram contato com ele pela primeira vez, a maior dor de cabeça foi que eles não conseguiam descobrir como ele se movia e como eu poderia usar o código para controlá-lo. Não se preocupe, falaremos sobre isso detalhadamente hoje e garantirei que você se sinta confiante depois de lê-lo.

Qual é o princípio do controle da caixa de direção?

Para ser franco, oservoé como um "pequeno guarda rotativo" particularmente obediente. Integra um motor, redutor e um circuito de controle. Você diz para qual ângulo virar, e ele trabalhará duro para alcançar essa posição e parar de forma constante.

Este comando é transmitido através de um sinal denominado PWM (Pulse Width Modulation). Você pode pensar nisso como um pulso repetitivo de nível alto e baixo, e a largura do pulso, ou seja, a duração do nível alto, é o “sinal de ação” para o mecanismo de direção.

Comumservos, como pequenos servos como o SG90, reconhecem pulsos com período de 20 milissegundos. Entre eles, o tempo de alto nível de cerca de 1,5 milissegundos corresponde à posição intermediária (90 graus). Quando a largura do pulso muda entre 0,5 milissegundos e 2,5 milissegundos, o eixo servo girará na faixa de 0 a 180 graus. Quanto mais precisa for a largura do pulso fornecida, mais preciso ele será.

Como usar o microcontrolador 51 para gerar sinais de controle

O microcontrolador 51 em si não emitirá diretamente um sinal de largura de pulso tão preciso, mas podemos “simulá-lo” por meio de programação. Isso requer o uso do timer dentro do microcontrolador, que é um “timer” muito preciso.

Podemos configurar o cronômetro para gerar uma interrupção a cada 10 microssegundos ou 100 microssegundos. No programa de serviço de interrupção, utilizamos uma variável para contar, e de acordo com o valor deste contador, alteramos o nível da porta IO (como P1.0) conectada ao servo.

Por exemplo, para gerar um nível alto por 1,5 milissegundos, se o temporizador interromper uma vez a cada 100 microssegundos, o nível alto precisará ser mantido por 15 interrupções. Desta forma, podemos “reunir” a onda PWM que o servo pode reconhecer. Pode parecer um pouco confuso quando você começa a escrever código, mas depois de depurá-lo com sucesso, a sensação de realização é incomparável.

Qual caixa de direção é mais adequada para o microcontrolador 51?

Existem muitos tipos de servos no mercado. A escolha de um “parceiro” para o microcontrolador 51 depende principalmente de dois pontos: tensão de trabalho e requisitos de sinal. Os mais comumente usados ​​são servos analógicos como o SG90. Seus requisitos de sinal são o PWM padrão mencionado acima, o que é muito amigável.

Esses servos geralmente funcionam com tensão de 5V, que corresponde exatamente à tensão operacional padrão do microcontrolador 51. Posso usar diretamente o driver da porta IO do microcontrolador? É melhor não fazer isso, pois a corrente quando o servo está funcionando é relativamente grande, o que danificará os pinos do microcontrolador.

Uma abordagem mais segura é usar um triodo ou um chip de conversão de nível especializado para isolamento. A porta IO do microcontrolador emite um sinal de controle para o circuito de acionamento e, em seguida, o circuito de acionamento "comanda" a engrenagem de direção para girar. Desta forma, o microcontrolador é responsável apenas por emitir instruções “cerebrais”, deixando o trabalho árduo para o driver, tornando o sistema mais estável e confiável.

Qual é o motivo da rotação instável da caixa de direção?

Quando muitos amigos ligam o servo pela primeira vez, eles podem descobrir que ele treme violentamente ou responde meio batimento mais devagar. Provavelmente é um problema de fonte de alimentação. O impacto atual quando o servo é iniciado e travado não pode ser subestimado. Se a fonte de alimentação for insuficiente, a tensão será reduzida, fazendo com que o microcontrolador seja reiniciado ou o servo funcione de forma anormal.

A solução é simples: alimente o servo separadamente! Use uma fonte de alimentação de 5 V de melhor qualidade e conecte o aterramento de alimentação (GND) e o aterramento do microcontrolador para garantir que eles tenham um potencial de referência comum. Em seguida, a fonte de alimentação do microcontrolador e a fonte de alimentação do servo podem ser separadas para evitar interferências de forma eficaz.

Além disso, verifique se o período PWM está estritamente estável em 20 milissegundos. Se o programa for bloqueado devido a outras tarefas, fazendo com que o período do pulso seja impreciso, o servo também vibrará. Garantir que a prioridade de interrupção do temporizador seja alta o suficiente é a chave para gerar um sinal estável.

Como usar código para obter controle preciso de vários ângulos

Quero que o servo gire lentamente de 0 a 180 graus e vice-versa. Como devo escrever o código? Podemos definir um ângulo para a função de mapeamento de largura de pulso. Por exemplo, 0 graus corresponde a 0,5 ms de nível alto e 180 graus corresponde a 2,5 ms. Então 90 graus são 1,5 ms.

No loop principal, podemos usar um loop for para incrementar a variável angle de 0 a 180 e redefinir o valor de comparação PWM sempre que ele mudar em um grau. Observe que deve ser deixado um pouco de tempo entre cada ângulo para que o servo gire fisicamente, como um atraso de 15 a 20 milissegundos. Desta forma, a ação parece coerente e suave.

Para ser mais flexível, você pode encapsular o controle do servo em uma função, comovoid (ângulo do caractere), passe o valor do ângulo e os parâmetros PWM serão calculados e atualizados automaticamente dentro da função. Desta forma, se você quiser controlar a ação que será realizada posteriormente, como levantar o braço ou girar a câmera, basta chamar esta função, e o programa principal ficará muito refrescante.

No que você deve prestar atenção ao controlar vários servos?

Quando seu projeto requer o controle de vários servos ao mesmo tempo, como fazer um braço robótico com vários graus de liberdade, as coisas ficam um pouco mais complicadas. Como o microcontrolador 51 possui recursos limitados, é impossível equipar cada servo com um PWM de hardware independente.

Mas não se preocupe, ainda podemos usar simulação de software. A ideia central ainda é usar o conceito de “período de tempo” na interrupção do temporizador. Por exemplo, definimos um período de 10 milissegundos e, dentro desse período, cada servo emite a largura de pulso necessária por sua vez. Após processar o pulso do primeiro servo, mude imediatamente para a saída de pulso do segundo servo.

Isso requer que a função de processamento de interrupção do temporizador seja muito eficiente e não possa causar atrasos ou cálculos complexos. A abordagem usual é criar um array para armazenar a largura de pulso alvo atual de cada servo. Na interrupção, verifique a tabela para configurar a porta IO de acordo com o número de série do servo atualmente em serviço e cronometrar com precisão. Desta forma, um temporizador pode gerenciar vários servos "separadamente". Embora não possam ser movidos completamente ao mesmo tempo, o olho humano não consegue detectar esta pequena diferença de tempo.

Vendo isso, você já tem uma ideia clara de como usar o microcontrolador 51 para controlar o servo? Do princípio à seleção e à implementação do código, cada etapa é realmente muito interessante. Se acontecer de você ter uma ideia em mãos agora, é melhor ligar o computador, retirar a placa de desenvolvimento do microcontrolador e tentar conectá-la você mesmo. A sensação maravilhosa quando o servo gira com precisão sob o comando do seu código pela primeira vez é a alegria da criação.

Quero te perguntar, que tipo de gadget você mais gostaria de montar usando um servo e um microcontrolador? É um gadget que rastreia automaticamente a luz solar ou um pequeno robô que pode desenhar? Bem-vindo a deixar uma mensagem na área de comentários para compartilhar suas idéias. Vamos nos comunicar juntos e talvez possamos criar faíscas melhores! Se este artigo for útil para você, lembre-se de curtir e compartilhar com mais amigos que precisam dele.

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