[Керування підводним двигуном] Як використовувати STM32 для керування ESC через ШІМ?
Опубліковано Fengyukun
Багато студентів, які хочуть використовувати мікроконтролери для керування роботою двигуна, знайшли багато інформації в Інтернеті, але виявили, що багато з них не дуже зрозумілі, як вирішити проблему.
Я сподіваюся, що кожен зможе поділитися своїм досвідом у коментарях і допомогти більшій кількості людей.
ESC, які ви купуєте, можуть відрізнятися, але загальна ідея керування однакова, тому я вірю, що ви зможете досягти своїх цілей, прочитавши цю статтю.
Сигнал ШІМ:
(1) Управління хвилею ШІМ (загалом, ESC керуються хвилею ШІМ 50 Гц, що становить 20 мс);
(2) Проміжна пауза (тут, як правило, стосується високого рівня робочого циклу) 1,5 мс Фактично, інтервал між 1,475 мс і 1,525 мс вважається проміжною паузою;
(3) Діапазон керування становить від 1 мс до 2 мс;
(4) Обертання вперед від 1,5 мс до 2 мс, обертання назад від 1,5 мс до 1 мс.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/IMG_6938_1024x1024.jpg?v=1680446118)
Ось проста довідка на основі Arduino:
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/1_d837e8fc-af7c-4f78-b045-b78eaac26984_1024x1024.png?v=1700404633)
Примітка: ESC потрібно розблокувати, перш ніж ним можна буде користуватися! ESC видасть 3 звукові сигнали при підключенні до джерела живлення та 2 звукові сигнали після успішного розблокування ESC, загалом 5 звукових сигналів. Якщо ESC не вдалося розблокувати, його не можна використовувати для керування. Таким чином, посилаючись на наведений вище код, можна зробити висновок, що спосіб розблокування ESC полягає в тому, щоб встановити його на нейтральний сигнал після ініціалізації, і лише після отримання сигналу (два звукові сигнали) можна почати регулювання швидкості.
Контроль методів налагодження
Ми використовуємо плату розробки STM32F7 і використовуємо бібліотеку HAL для програмування та налагодження. Насправді таймер видає ШІМ-хвилі. Але є багато речей, на які варто звернути увагу, і нерозуміння багатьох деталей дійсно витрачає час і енергію. Ось кілька слів про мій досвід налагодження.
Перш за все, налаштовуючи хвилю ШІМ у таймері, будьте обережні, щоб не ініціалізувати її сигналом розблокування, не надати їй випадкове значення або просто не налаштувати її. Оскільки ESC не буде розблоковано, доки таймер і ШІМ не будуть ініціалізовані. Візьмемо для прикладу сигнал зупинки в середині 1,5 мс, тоді ви не можете налаштувати ШІМ на 1,5 мс з самого початку Після того, як ви подасте звуковий сигнал три рази, ESC видасть лише один звуковий сигнал, а потім ваші леза все одно не обертатимуться.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/2_999889c3-f8bf-49e2-b259-8b6f28c5f4d4_1024x1024.png?v=1700405813)
По-друге, зверніть увагу на використання затримки. У результаті я не використовував затримку, а потім перестав реагувати на хвилю ШІМ Я ініціалізував безпосередньо. Це вимагає, щоб ESC отримав сигнал розблокування. Однак, ви також повинні звернути увагу на цей раз, я використовував delay_us(), щоб налаштувати його, але пізніше проблему не вдалося вирішити, я змінив його на delay_ms(1000), що означає налаштування часу в 1 секунду .Тоді я налаштував час, і нарешті лунають два звукові сигнали, а потім двигун починає обертатися. Тому дуже важливо визначити час прийому цього сигналу розблокування.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/3_be4764a4-bb57-414f-9f93-924ddd6912ce_1024x1024.png?v=1700405945)
Крім того, під час використання ви також повинні звернути увагу на те, щоб навчитися користуватися осцилографом, щоб перевірити, чи немає проблем із сигналами, які ви налаштували. Нижче показана хвиля ШІМ із шпаруватістю 1,5 мс, періодом 20 мс та амплітудою 3,3 В, яку я спочатку ініціалізував.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/4_b4a49b67-d667-400c-bc59-7a2b80bb3482_1024x1024.png?v=1700406022)
Підсумовуючи кілька моментів, на які слід звернути увагу під час усього процесу:
(1) ESC, як правило, керується на частоті 50 Гц, а діапазон керування становить приблизно від 1 до 2 мс, що, звичайно, залежить від конкретної ситуації.
(2) Після підключення ESC подасть звуковий сигнал 3 рази, якщо розблокування пройшло успішно, пізніше ESC подасть звуковий сигнал 2 рази. Але якщо ESC видає лише 1 звуковий сигнал, імовірно, ESC отримав налаштований вами сигнал, але не вдалося успішно розблокувати, тому вам потрібно ретельно перевірити, чи ваш код розблокування правильний. Якщо ESC не подає звуковий сигнал, це означає, що він взагалі не отримує сигнал, ще раз перевірте проводку та код.
(3) Зверніть увагу на використання функції затримки, щоб дати ESC певний проміжок часу для отримання сигналу розблокування. Кожен ESC відрізняється, тому налаштуйте його самостійно.
(4) Зверніть увагу на заземлення. Підключіть сигнальний провід ESC до вихідного порту сигналу плати керування, а потім підключіть сигнальний провід до GND плати керування.
(5) Навчіться використовувати осцилограф для перевірки налаштованих сигналів.
(6) Не підключайте неправильні дроти!
Я сподіваюся, що кожен зможе поділитися своїм досвідом у коментарях і допомогти більшій кількості людей.
ESC, які ви купуєте, можуть відрізнятися, але загальна ідея керування однакова, тому я вірю, що ви зможете досягти своїх цілей, прочитавши цю статтю.
Сигнал ШІМ:
(1) Управління хвилею ШІМ (загалом, ESC керуються хвилею ШІМ 50 Гц, що становить 20 мс);
(2) Проміжна пауза (тут, як правило, стосується високого рівня робочого циклу) 1,5 мс Фактично, інтервал між 1,475 мс і 1,525 мс вважається проміжною паузою;
(3) Діапазон керування становить від 1 мс до 2 мс;
(4) Обертання вперед від 1,5 мс до 2 мс, обертання назад від 1,5 мс до 1 мс.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/IMG_6938_1024x1024.jpg?v=1680446118)
Ось проста довідка на основі Arduino:
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/1_d837e8fc-af7c-4f78-b045-b78eaac26984_1024x1024.png?v=1700404633)
Примітка: ESC потрібно розблокувати, перш ніж ним можна буде користуватися! ESC видасть 3 звукові сигнали при підключенні до джерела живлення та 2 звукові сигнали після успішного розблокування ESC, загалом 5 звукових сигналів. Якщо ESC не вдалося розблокувати, його не можна використовувати для керування. Таким чином, посилаючись на наведений вище код, можна зробити висновок, що спосіб розблокування ESC полягає в тому, щоб встановити його на нейтральний сигнал після ініціалізації, і лише після отримання сигналу (два звукові сигнали) можна почати регулювання швидкості.
Контроль методів налагодження
Ми використовуємо плату розробки STM32F7 і використовуємо бібліотеку HAL для програмування та налагодження. Насправді таймер видає ШІМ-хвилі. Але є багато речей, на які варто звернути увагу, і нерозуміння багатьох деталей дійсно витрачає час і енергію. Ось кілька слів про мій досвід налагодження.
Перш за все, налаштовуючи хвилю ШІМ у таймері, будьте обережні, щоб не ініціалізувати її сигналом розблокування, не надати їй випадкове значення або просто не налаштувати її. Оскільки ESC не буде розблоковано, доки таймер і ШІМ не будуть ініціалізовані. Візьмемо для прикладу сигнал зупинки в середині 1,5 мс, тоді ви не можете налаштувати ШІМ на 1,5 мс з самого початку Після того, як ви подасте звуковий сигнал три рази, ESC видасть лише один звуковий сигнал, а потім ваші леза все одно не обертатимуться.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/2_999889c3-f8bf-49e2-b259-8b6f28c5f4d4_1024x1024.png?v=1700405813)
По-друге, зверніть увагу на використання затримки. У результаті я не використовував затримку, а потім перестав реагувати на хвилю ШІМ Я ініціалізував безпосередньо. Це вимагає, щоб ESC отримав сигнал розблокування. Однак, ви також повинні звернути увагу на цей раз, я використовував delay_us(), щоб налаштувати його, але пізніше проблему не вдалося вирішити, я змінив його на delay_ms(1000), що означає налаштування часу в 1 секунду .Тоді я налаштував час, і нарешті лунають два звукові сигнали, а потім двигун починає обертатися. Тому дуже важливо визначити час прийому цього сигналу розблокування.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/3_be4764a4-bb57-414f-9f93-924ddd6912ce_1024x1024.png?v=1700405945)
Крім того, під час використання ви також повинні звернути увагу на те, щоб навчитися користуватися осцилографом, щоб перевірити, чи немає проблем із сигналами, які ви налаштували. Нижче показана хвиля ШІМ із шпаруватістю 1,5 мс, періодом 20 мс та амплітудою 3,3 В, яку я спочатку ініціалізував.
![](https://cdn.shopify.com/s/files/1/0621/5493/2452/files/4_b4a49b67-d667-400c-bc59-7a2b80bb3482_1024x1024.png?v=1700406022)
Підсумовуючи кілька моментів, на які слід звернути увагу під час усього процесу:
(1) ESC, як правило, керується на частоті 50 Гц, а діапазон керування становить приблизно від 1 до 2 мс, що, звичайно, залежить від конкретної ситуації.
(2) Після підключення ESC подасть звуковий сигнал 3 рази, якщо розблокування пройшло успішно, пізніше ESC подасть звуковий сигнал 2 рази. Але якщо ESC видає лише 1 звуковий сигнал, імовірно, ESC отримав налаштований вами сигнал, але не вдалося успішно розблокувати, тому вам потрібно ретельно перевірити, чи ваш код розблокування правильний. Якщо ESC не подає звуковий сигнал, це означає, що він взагалі не отримує сигнал, ще раз перевірте проводку та код.
(3) Зверніть увагу на використання функції затримки, щоб дати ESC певний проміжок часу для отримання сигналу розблокування. Кожен ESC відрізняється, тому налаштуйте його самостійно.
(4) Зверніть увагу на заземлення. Підключіть сигнальний провід ESC до вихідного порту сигналу плати керування, а потім підключіть сигнальний провід до GND плати керування.
(5) Навчіться використовувати осцилограф для перевірки налаштованих сигналів.
(6) Не підключайте неправильні дроти!
Поділіться цією публікацією
- 0 коментарів
- Мітка: ESC
← Старіший пост нові публікації →