【Control de propulsor submarino】 ¿Cómo controlar ESC por PWM con STM32?

Publicado por Fengyukun en

Muchos investigadores que quieren utilizar microcontroladores para controlar el funcionamiento de los propulsores han encontrado mucha información en Internet, pero descubrieron que muchos de ellos no están escritos con claridad. APISQUEEN registra aproximadamente cómo resolver el problema.
Espero que todos puedan compartir sus experiencias en el área de comentarios y ayudar a más personas.
El ESC que compramos puede ser diferente, pero la idea de control general es la misma, por lo que creo que podrás lograr tus objetivos después de leer este artículo.

Señal PWM:
(1) control de onda PWM (generalmente esc usa control de onda PWM de 50 Hz o 20 ms);
(2) Pausa intermedia (aquí generalmente se refiere al ciclo de trabajo de alto nivel) 1,5 ms, de hecho, es una pausa intermedia entre 1,475 ms y 1,525 ms;
(3) El rango de control es de 1 ms a 2 ms;
(4) Avance de 1,5 ms a 2 ms y retroceda de 1,5 ms a 1 ms.



Aquí hay una referencia simple basada en Arduino:



NOTA: ¡El ESC necesita estar desbloqueado para usarlo! Cuando conecte el ESC a la alimentación, emitirá un pitido 3 veces, luego, cuando se desbloquee correctamente, emitirá un pitido 2 veces, para un total de 5 veces. Si no desbloquea ESC con éxito, no podrá usarlo para controlar. Por lo tanto, refiriéndose al código anterior, podemos concluir que la forma de desbloquear el ESC es configurarlo en una señal neutral después de la inicialización y esperar a que se reciba la señal (dos pitidos) antes de iniciar el control de velocidad.


Métodos de control y depuración.


Estamos utilizando la placa de desarrollo STM32F7 y la biblioteca HAL para programar y depurar. De hecho, el temporizador genera ondas PWM. Pero hay muchas cosas a las que prestar atención y los detalles poco claros realmente hacen perder tiempo y energía. Aquí hay algunas palabras sobre la experiencia de depuración.

En primer lugar, al configurar la onda PWM en el temporizador, tenga cuidado de no inicializarla como una señal de desbloqueo, darle un valor aleatorio o no configurarla. Debido a que ESC solo se desbloquea después de que se inicializan el temporizador y el PWM, tomando mi ejemplo, la señal de parada mediana de 1,5 ms es su señal de desbloqueo, entonces no puede configurar el PWM a 1,5 ms desde el principio; de lo contrario, ESC solo emitirá un pitido una vez después. Tres pitidos de encendido y luego la paleta aún no gira.



En segundo lugar, preste atención al uso del retraso. Al principio, no utilicé el retraso y el resultado fue que el ESC solo emitió un pitido y luego no respondió. Luego, cuando observé la onda PWM con un osciloscopio, descubrí que el PWM que inicialicé parpadeó directamente y necesitaba dar ESC. tiempo para recibir la señal de desbloqueo. Pero también debes prestar atención en este momento. Al principio usé delay_us() para configurarlo, pero el problema no se pudo resolver. Luego lo cambié a delay_ms(1000), lo que significa que el tiempo configurado es 1s. Sigue siendo un problema. Luego ajusté el tiempo. Después de dos pitidos finales, el motor comienza a girar. Por tanto, es muy importante conocer el tiempo de recepción de esta señal de desbloqueo.



También presta atención a aprender a utilizar un osciloscopio para comprobar si hay algún problema con las señales que configuras durante su uso. A continuación se muestra la onda PWM con un ciclo de trabajo de 1,5 ms, un período de 20 ms y una amplitud de 3,3 V que inicialicé al principio.



En resumen, todo el proceso debe prestar atención a:

(1) El ESC generalmente se controla a una frecuencia de 50 Hz y el rango de control es aproximadamente entre 1 ms y 2 ms, por supuesto, depende de la situación.
(2) Después de encender la alimentación, el ESC emitirá un pitido 3 veces. Después de que el desbloqueo sea exitoso, el ESC emitirá un pitido 2 veces. Sin embargo, si el ESC solo emite un pitido, puede significar que el ESC recibió la señal que usted configuró pero no desbloqueó exitosamente el dispositivo, por lo que debe volver a verificar el código de desbloqueo para ver si hay algún error. Si el ESC no emite ningún sonido, entonces ni siquiera recibe una señal, verifique nuevamente su cableado y código.
(3) Preste atención al uso de la función de retardo para darle al ESC una cierta cantidad de tiempo para recibir la señal de desbloqueo. Cada ESC es diferente, por lo que puede ajustarlo usted mismo.
(4) Preste atención a la conexión a tierra, conecte la línea de señal ESC al puerto de salida de señal del tablero de control y luego conecte a tierra la línea de señal a la tierra GND del tablero de control.
(5) Aprenda a utilizar un osciloscopio para comprobar las señales configuradas.
¡No conectes la línea equivocada!

Compartir esta publicación



← Publicación más antigua Publicación más reciente →


0 comentarios

Dejar un comentario