【Controle do propulsor subaquático】 Como controlar o ESC por PWM com STM32?

Postado por Fengyukun em

Muitos pesquisadores que desejam controlar o funcionamento do propulsor com um microcontrolador para encontrar muitas informações na Internet, mas descobriram que muitas delas não estão escritas com muita clareza, APISQUEEN registra aproximadamente como resolver.
Espero que vocês possam trocar experiências na seção de comentários, possam ajudar mais pessoas.
Compramos o ESC pode ser diferente, mas a ideia geral de controle é a mesma, então acredito que você certamente poderá atingir seu objetivo depois de ler este artigo.

Sinal PWM:
(1) Controle de onda PWM (de modo geral, os ESCs são controlados pela onda PWM a 50 Hz, ou seja, 20 ms);
(2) Parada média (aqui geralmente se refere ao alto nível do ciclo de trabalho) 1,5ms, na verdade entre 1,475ms a 1,525ms estão fora da parada média;
(3) A faixa de controle é de 1ms a 2ms;
(4) 1,5 ms a 2 ms para frente, 1,5 ms para 1 ms para trás.



Aqui está um baseado em Arduino para uma breve referência:



Nota: O ESC precisa ser desbloqueado antes de poder ser usado! O ESC emitirá um bipe 3 vezes quando você o conectar à fonte de alimentação e, em seguida, emitirá um bipe 2 vezes quando for desbloqueado com sucesso, totalizando 5 vezes. Se você não desbloquear o ESC com sucesso, não poderá usá-lo para controle. Portanto, referindo-se ao código acima, podemos concluir que a forma de desbloquear o ESC é configurá-lo para o sinal neutro após a inicialização e aguardar o recebimento do sinal (dois bipes) antes de iniciar o controle de velocidade.


Método de controle e depuração


Estamos usando a placa de desenvolvimento STM32F7, usando a biblioteca HAL para programação e depuração, é na verdade uma onda PWM de saída de temporizador. Mas há muitas coisas para prestar atenção, muitos detalhes não estão claros, realmente demoram tempo e energia, deste lado da experiência de depuração, para dizer algumas palavras.

Primeiramente, ao configurar a onda PWM no temporizador, tome cuidado para não inicializá-la como seu sinal de desbloqueio, dar-lhe um valor aleatório ou não configurá-la. Como o ESC é desbloqueado somente após o temporizador e o PWM serem inicializados, tome este meu como exemplo, o sinal de parada mediano de 1,5 ms é o sinal de desbloqueio, então você não pode configurar o PWM para 1,5 ms de na largada, caso contrário o ESC tocará apenas uma vez após três bipes de inicialização e seus remos ainda não girarão.



Em segundo lugar, preste atenção ao uso do atraso. No início não usei atraso, o resultado é que o ESC apenas apitou e depois não houve resposta, e então quando observei a onda PWM com um osciloscópio, descobri que meu PWM inicializado piscou diretamente, o que precisa ser entregue ao ESC para receber o tempo do sinal de desbloqueio. Mas desta vez também é para prestar atenção, no começo eu estava usando a configuração delay_us(), o problema não pode ser resolvido, e depois mudei para delay_ms (1000), ou seja, configure o tempo de 1s, ainda há um problema, e então o tempo a ser ajustado novamente após o final ouviu dois bipes, e então o motor começou a girar. Então, como entender o tempo de recepção desse sinal de desbloqueio é muito importante.



E também tome cuidado para aprender a trabalhar com um osciloscópio para verificar se há algum problema com os sinais que você configurou durante o uso. Abaixo está uma onda PWM com ciclo de trabalho de 1,5 ms, período de 20 ms e amplitude de 3,3 V que inicializei no início.



Para resumir, todo o processo deve ser observado:

(1) O ESC é geralmente controlado a uma frequência de 50 Hz e a faixa de controle é aproximadamente entre 1ms e 2ms, dependendo das circunstâncias, é claro.
(2) Depois de conectar a alimentação, o ESC soará 3 vezes e, se você desbloqueá-lo com sucesso, o ESC soará 2 vezes depois disso. No entanto, se o ESC emitir um bipe apenas uma vez, provavelmente significa que o ESC recebeu o sinal que você configurou, mas não desbloqueou o dispositivo com sucesso, então você precisa verificar novamente o seu código de desbloqueio para ver se há algum erro. Se o ESC não soar, então ele nem recebe o sinal, verifique cuidadosamente a fiação e o código.
(3) Preste atenção ao uso da função de atraso para dar ao ESC um certo tempo para receber o sinal de desbloqueio, cada ESC é diferente, ajuste você mesmo.
(4) Preste atenção ao aterramento, a linha de sinal ESC para a porta de saída de sinal da placa de controle e, em seguida, a linha de sinal aterrada para a placa de controle GND.
(5) Aprenda a usar um osciloscópio para verificar os sinais que você configurou.
(6) Não conecte o fio errado!

Compartilhe esta postagem



← Post anterior Post seguinte →


0 comentários

Deixe um comentário