[Управление подводным подруливающим устройством] Как использовать STM32 для управления ESC через ШИМ?

Автор публикации: Fengyukun, дата:

Многие исследователи, желающие использовать микроконтроллеры для управления работой двигателей, нашли в Интернете много информации, но обнаружили, что многие из них написаны нечетко.APISQUEEN примерно описывает, как решить проблему.
Я надеюсь, что каждый сможет поделиться своим опытом в области комментариев и помочь большему количеству людей.
Купленные нами ESC могут быть разными, но общая идея управления одна и та же, поэтому я верю, что вы сможете достичь своих целей после прочтения этой статьи.

ШИМ-сигнал:
(1) управление волной ШИМ (обычно клавиша esc использует управление волной ШИМ 50 Гц или 20 мс);
(2) Промежуточная пауза (здесь обычно относится к рабочему циклу высокого уровня) 1,5 мс, фактически это промежуточная пауза между 1,475 мс и 1,525 мс;
(3) Диапазон управления составляет 1–2 мс;
(4) Перейдите вперед на 1,5–2 мс и вернитесь назад на 1,5–1 мс.


Вот простая ссылка на основе Arduino:


ПРИМЕЧАНИЕ: Для использования ESC необходимо разблокировать! Когда вы подключаете ESC к источнику питания, он издает 3 звуковых сигнала, затем, когда он успешно разблокирован, он издает 2 звуковых сигнала, всего 5 раз. Если вам не удалось разблокировать ESC, вы не сможете использовать его для управления. Следовательно, обращаясь к приведенному выше коду, можно сделать вывод, что способ разблокировки ESC заключается в установке нейтрального сигнала после инициализации и ожидании получения сигнала (два звуковых сигнала) перед запуском управления скоростью.


Методы контроля и отладки


Мы используем плату разработки STM32F7 и библиотеку HAL для программирования и отладки.Фактически, таймер выводит волны ШИМ. Но есть много вещей, на которые стоит обратить внимание, а неясные детали действительно отнимают время и силы.Несколько слов об опыте отладки.

Прежде всего, при настройке волны ШИМ в таймере будьте осторожны, не инициализируйте ее как сигнал разблокировки, не присваивайте ей случайное значение и не настраивайте ее. Поскольку ESC разблокируется только после инициализации таймера и ШИМ, в моем примере средний сигнал остановки в 1,5 мс является сигналом разблокировки, тогда вы не можете настроить ШИМ на 1,5 мс с самого начала, иначе ESC будет издавать звуковой сигнал только один раз после три звуковых сигнала, а весло по-прежнему не вращается.


Во-вторых, обратите внимание на использование задержки. Сначала я не использовал задержку, и в результате ESC только подавал звуковой сигнал, а затем не реагировал. Затем, когда я наблюдал волну ШИМ с помощью осциллографа, я обнаружил, что инициализированный мной ШИМ мигал напрямую, и мне нужно было дайте ESC время для получения сигнала разблокировки. Но на это время тоже стоит обратить внимание.Сначала я использовал для настройки задержку_us(), но проблему решить не удалось.Позже я изменил ее на задержку_ms(1000), что означает настроенное время 1с.Там проблема все еще есть.Потом я отрегулировал время.После двух последних звуков мотор начинает вращаться. Поэтому очень важно понять время приема этого сигнала разблокировки.


Также обратите внимание на то, как научиться пользоваться осциллографом, чтобы проверить, нет ли проблем с сигналами, которые вы настраиваете во время использования. Ниже показана волна ШИМ с рабочим циклом 1,5 мс, периодом 20 мс и амплитудой 3,3 В, которую я инициализировал вначале.


Подводя итог, в течение всего процесса следует обратить внимание на:

(1) ESC обычно управляется с частотой 50 Гц, а диапазон регулирования составляет примерно от 1 мс до 2 мс, конечно, это зависит от ситуации.
(2) После включения питания ESC подаст 3 звуковых сигнала. После успешной разблокировки ESC подаст 2 звуковых сигнала. Однако, если ESC подает только один звуковой сигнал, это может означать, что ESC получил настроенный вами сигнал, но не смог успешно разблокировать устройство, поэтому вам необходимо дважды проверить код разблокировки, чтобы увидеть, есть ли какие-либо ошибки. Если ESC не издает звука, значит, он даже не получает сигнала, дважды проверьте проводку и код.
(3) Обратите внимание на использование функции задержки, чтобы дать ESC определенное время для получения сигнала разблокировки.Каждый ESC индивидуален, поэтому вы можете настроить это самостоятельно.
(4) Обратите внимание на заземление, подключите сигнальную линию ESC к порту вывода сигнала на плате управления, а затем заземлите сигнальную линию на землю GND на плате управления.
(5) Научитесь использовать осциллограф для проверки настроенных сигналов.
Не подключайте неправильную линию!


Поделиться записью



← Более старые записи Более новые записи →


Комментариев: 0

Комментировать