Lar > Informações do setor >Motor de engrenagem
SUPORTE TÉCNICO

Suporte ao produto

Os botões STM32 controlam a direção para frente e para trás do servo e ensinam como obter um ajuste preciso do ângulo.

Publicado 2026-03-27

Você já se deparou com esta situação: você deseja controlar manualmente a direção da direção doservo, mas você não sabe como usar os botões mais simples para conseguir isso? Hoje falaremos sobre como o STM32 controla a rotação direta e reversa doservoatravés de botões, para que você possa atender facilmente a esse requisito.

Por que usar botões para controlar oservo?

A maior vantagem de usar botões para controlar o servo é que ele é intuitivo e conveniente. Imagine que você fez uma lata de lixo inteligente. A tampa abre quando você pressiona o botão e fecha quando você pressiona o botão novamente. Esta experiência interativa é natural? O controle de botão não requer um computador ou interface complicada. Ele responde quando pressionado. É especialmente adequado para protótipos de produtos ou equipamentos de pequenos lotes. Além disso, o GPIO do STM32 é muito simples de ler o status do botão. Isso pode ser alcançado com apenas algumas linhas de código e o limite de desenvolvimento é particularmente baixo.

Para aqueles que precisam de aplicativos de direção, o controle de botão é simplesmente "boas notícias para pessoas preguiçosas". Por exemplo, se quiser fazer um comedouro automático, pressione para entregar a comida e pressione para parar; ou faça um modelo de carro com controle remoto e use botões para controlar o ângulo de direção. Este método de controle não é apenas de baixo custo, mas também altamente confiável. Se o botão estiver quebrado, é barato substituí-lo. O segredo é que o custo de aprendizado do usuário é quase zero e qualquer pessoa pode apertar o botão.

O que você deve prestar atenção ao selecionar uma caixa de direção?

Existem vários servos no mercado, como escolher o certo? Primeiro, observe seu cenário de uso. Se você apenas controla a direção e não precisa de muito esforço, um servo pequeno de 9g é suficiente, é barato e comum. Se você precisar dirigir algo mais pesado, como um braço robótico de metal, deverá usar este servo de alto torque. Preste atenção à tensão de trabalho do servo. 5V é comum, mas alguns são 7,4V. Deve corresponder à fonte de alimentação do STM32.

Existe também a compatibilidade dos sinais de controle. A maioria dos servos são controlados por sinais PWM com período de 20ms e tempo de alto nível de 0,5ms a 2,5ms correspondendo a 0 a 180 graus. Portanto, ao escolher um servo, certifique-se de confirmar se é um controle PWM padrão, caso contrário o código terá que ser alterado significativamente. Além disso, lembre-se de comprar um sobressalente extra no momento da compra. O servo é fácil de queimar quando está bloqueado, então ter um sobressalente faz você se sentir à vontade.

Como fazer a conexão de hardware mais estável

Os botões e servo estão conectados ao STM32. A fiação é o primeiro passo e o problema mais provável. O botão geralmente é conectado a uma porta GPIO e GND, e o resistor pull-up é ligado internamente, de modo que quando o botão é liberado, ele está em nível alto e, quando pressionado, está em nível baixo. Observe que é melhor conectar um capacitor de 0,1uF em ambas as extremidades do botão para eliminar a interferência de jitter. O servo está conectado à fonte de alimentação de 5V e GND, e a linha de sinal está conectada a outra porta GPIO. As fontes de alimentação devem ser separadas. A corrente inicial do servo é grande e compartilhar a fonte de alimentação com o STM32 pode facilmente causar um reset.

Aqui vai uma dica: alimente o servo separadamente, e a porta 5V do STM32 é usada apenas para botões e chips. Se a fonte de alimentação precisar ser compartilhada, a tensão será reduzida quando o servo for iniciado, fazendo com que o microcontrolador reinicie. Outra coisa é conectar todos os GNDs para garantir que o potencial de referência do sinal seja consistente. É melhor desenhar um diagrama simples antes de fazer a fiação e confirmar se está correto antes de ligar a energia para evitar queimar a placa.

Como escrever lógica de código para que fique claro

stm32控制舵机正反转_stm32按键控制舵机正反转_pwm控制舵机反转

A parte do código na verdade não é complicada. O núcleo é pesquisar o status do botão e alterar o ciclo de trabalho PWM do servo. Inicialize o temporizador para emitir PWM com período de 20ms. Primeiro, forneça um valor intermediário, como 1,5 ms de nível alto, para parar o servo em 90 graus. Então o loop principal detecta o botão. Se o botão avançar for pressionado, o ciclo de trabalho será aumentado para aumentar o ângulo do servo; se o botão reverso for pressionado, o ciclo de trabalho será reduzido. Lembre-se de adicionar um atraso para eliminar o jitter, caso contrário ele saltará vários quadros assim que você pressioná-lo.

Para evitar que o servo ultrapasse o ângulo limite, restrições devem ser feitas no código. Por exemplo, depois de girado 180 graus, não aumentará quando pressionado novamente; não diminuirá quando for revertido para 0 graus. Há outro pequeno detalhe: leva tempo para o servo girar. Pressioná-lo contínua e rapidamente pode facilmente fazer com que o servo não consiga acompanhar. Você pode atualizar o PWM no momento em que o botão é liberado ou atrasar 200 ms após cada pressionamento do botão para permitir a próxima ação. Isso vai se sentir muito melhor.

O que fazer se você encontrar problemas durante a depuração

Você definitivamente encontrará problemas ao fazer isso pela primeira vez. O mais comum é que o servo não se mova. Não se preocupe, use um multímetro para verificar se a fonte de alimentação tem 5V e se há forma de onda na linha de sinal. Se você não possui um osciloscópio, pode escrever um programa simples para alterar os níveis alto e baixo do pino PWM e observá-lo com um LED. Se o LED piscar, significa que o temporizador está configurado corretamente. Olhe para o servo para ver se há um som de “chiado”. Se houver som, significa que ela está recebendo força, mas não se move, ou seja, a máquina está presa.

A instabilidade da tecla também é um problema comum, com um toque parecendo vários toques. A solução é adicionar software anti-bounce: após detectar que o botão está pressionado, atrasar 20ms e ler novamente. Se ainda estiver pressionado, execute a ação novamente. Além disso, se houver um grande número de chaves, você poderá usar o método de interrupção em vez de verificar o tempo todo no loop principal, o que economiza recursos e é sensível. Existem códigos prontos para esses problemas online, que podem ser usados ​​com pequenas modificações.

Onde ele pode ser usado em aplicações práticas?

Esta solução pode ser expandida para muitas coisas interessantes. Por exemplo, faça uma cortina inteligente controlada manualmente, pressione a direção para frente para abrir a cortina e inverta a direção para fechar; ou faça uma plataforma giratória, pressione o botão para girar 30 graus para tirar fotos. Existem também ferramentas simples que podem ser fabricadas na indústria, com botões para controle de fixação e afrouxamento, que são muito mais baratos que os pneumáticos. Para quem fabrica produtos, os servos controlados por botão são uma das soluções de interação homem-computador de menor custo.

Se você estiver trabalhando em uma casa inteligente ou em um projeto DIY, esse recurso certamente será útil. Pense nisso, usar o STM32 e adicionar alguns botões e servos pode atender a muitas necessidades de controle manual e é estável e confiável. A chave é que o código e o hardware são simples, os parâmetros podem ser alterados para se adaptarem a diferentes projetos e a capacidade de reutilização é particularmente forte. Muitos produtos pequenos usam esse método para verificar rapidamente suas funções e, em seguida, otimizá-los e atualizá-los.

Que novos truques você acha que pode usar com o servo e os botões em seu projeto? Bem-vindo a compartilhar suas ideias na área de comentários ou pesquisar diretamente em nosso site oficial para ver mais casos práticos do STM32. Curta e salve este artigo para não se perder na próxima vez que usá-lo!

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