- Необхідні матеріали
- Розуміння BLDC Motors
- Чому безпілотники та інші мультикоптери використовують двигуни BLDC?
- Навіщо нам ESC і яка його функція?
- Деякі загальні терміни з BLDC та ESC:
- Схема керування двигуном Arduino BLDC
- Програма для контролю швидкості BLDC за допомогою Arduino
- Управління двигуном Arduino BLDC
Будувати речі та змушувати їх працювати так, як ми хочемо, завжди було чистою розвагою. Хоча це було узгоджено, будівельний матеріал, який міг би літати, зухвало накачав би трохи більше тривоги серед любителів та майстрів, що займаються технікою. Так! Я маю на увазі планери, вертольоти, літаки та переважно багатокоптери. Сьогодні створити його самостійно стало дуже легко завдяки підтримці громади, доступній в Інтернеті. Одна спільна річ з усіма речами, які літають, полягає в тому, що вони використовують двигун BLDC, то що це за двигун BLDC? Навіщо нам це потрібно, щоб літати? Що в цьому особливого? Як придбати правильний двигун та зв’язати його з контролером? Що таке ESC і чому ми його використовуємо? Якщо у вас є такі запитання, тоді цей підручник - ваше єдине рішення.
Отже, в основному в цьому посібнику ми будемо керувати безщітковим двигуном за допомогою Arduino. Тут двигун випередження BLDC без датчика A2212 / 13T використовується з електронним контролером швидкості 20A (ESC). Цей двигун зазвичай використовується для побудови безпілотників.
Необхідні матеріали
- A2212 / 13T BLDC двигун
- ESC (20A)
- Джерело живлення (12 В 20 А)
- Ардуїно
- Потенціометр
Розуміння BLDC Motors
BLDC Motor розшифровується як двигун постійного струму без щіток, він зазвичай використовується в стельових вентиляторах та електромобілях завдяки безперебійній роботі. Попередньо докладно пояснено використання двигунів BLDC в електромобілях. На відміну від інших двигунів, двигуни BLDC мають три дроти, що виходять з них, і кожен провід утворює свою власну фазу, що дає нам трифазний двигун. Чекати, що!!??
Так, хоча двигуни BLDC вважаються двигунами постійного струму, вони працюють за допомогою імпульсних хвиль. Контролер Електронного регулятора швидкості (ESC), перетворює напругу постійного струму від батареї, щоб імпульси і видає його на 3 -х дроти двигуна. У будь-який момент часу буде працювати лише дві фази двигуна, так що струм надходить через одну фазу, а виходить через іншу. Під час цього процесу котушка всередині двигуна отримує напругу, а отже, магніти на роторі вирівнюються до котушки під напругою. Потім наступні два дроти отримують живлення від ESC, цей процес продовжується, щоб двигун обертався. Швидкість двигуна залежить від того, наскільки швидко подається котушка, а напрямок двигуна залежить від того, в якому порядку котушки живляться. Докладніше про ESC ми дізнаємось далі в цій статті.
Доступно багато типів двигунів BLDC, давайте розглянемо найпоширеніші класифікації.
Двигун BLDC, що працює в бігу та поза бігом: Двигуни BLDC у бігуні працюють як будь-який інший двигун. Тобто вал всередині двигуна обертається, а корпус залишається нерухомим. У той час як двигуни BLDC, що працюють поза напрямком , прямо протилежні, зовнішній кожух двигуна обертається разом із валом, а котушка всередині залишається нерухомою. Мотоциклетні двигуни - це великі переваги в електричних велосипедах, оскільки сам зовнішній кожух (той, що обертається) сам перетворюється на обод для шин і, отже, уникає механізму зчеплення. Крім того, вихідні двигуни бігунів, як правило, видають більше крутного моменту, ніж у бігових типів, отже, він стає ідеальним вибором для електромобілів та безпілотників. Той, який ми використовуємо тут, також є бігуном типу.
Примітка: Існує ще один тип двигуна, який називається безсерцевим BLDC-двигуном, який також використовується для кишенькових безпілотників, у них інший принцип роботи, але поки що пропустимо його заради цього підручника.
Датчик і безсенсорний двигун BLDC: для обертання двигуна BLDC без будь-якого ривка потрібна зворотний зв'язок. Тобто ESC повинен знати положення та полюс магнітів у роторі, щоб відповідно подати живлення на статор. Цю інформацію можна отримати двома способами; одна - розміщення датчика Холла всередині двигуна. Датчик Холла виявить магніт і надішле інформацію в ESC. Цей тип двигуна називається двигуном Sensord BLDC і використовується в електромобілях. Другий метод полягає у використанні зворотного ЕРС, генерованого котушками, коли магніти перетинають їх, для цього не потрібно додаткове обладнання або дроти сам фазний провід використовується як зворотний зв'язок для перевірки зворотного ЕРС. Цей метод використовується в нашому двигуні і є загальним для безпілотників та інших літаючих проектів.
Чому безпілотники та інші мультикоптери використовують двигуни BLDC?
Існує багато типів крутих безпілотників, починаючи від вертольота Quad і закінчуючи вертольотами та планерами, і все має одне спільне обладнання. Це двигуни BLDC, але чому? Чому вони використовують двигун BLDC, який трохи дорожчий у порівнянні з двигунами постійного струму?
Цьому є досить багато вагомих причин, одна з головних причин - крутний момент, який забезпечують ці двигуни, дуже високий, що дуже важливо для швидкого набору / послаблення тяги, щоб зняти або посадити безпілотник. Крім того, ці двигуни доступні як бігунки, що знову збільшує тягу двигунів. Ще однією причиною вибору двигуна BLDC є його плавна робота без вібрацій, що дуже ідеально підходить для нашого безпілотника, стабільного в повітрі.
Співвідношення потужності та ваги двигуна BLDC дуже велике. Це дуже важливо, оскільки двигуни, що використовуються на безпілотниках, повинні мати велику потужність (велику швидкість і великий крутний момент), але також повинні мати меншу вагу. Двигун постійного струму, який може забезпечити той самий крутний момент і швидкість, що і двигун BLDC, буде вдвічі важчим, ніж двигун BLDC.
Навіщо нам ESC і яка його функція?
Як ми знаємо, кожному двигуну BLDC потрібен якийсь контролер для перетворення постійної напруги від акумулятора в імпульси для живлення фазних проводів двигуна. Цей контролер називається ESC, що означає електронний контролер швидкості. Основна відповідальність контролера полягає в подачі живлення фазних проводів двигунів BLDC в порядку, щоб двигун обертався. Це робиться шляхом зондування задньої ЕРС з кожного дроту та подачі напруги на котушку точно, коли магніт перетинає котушку. Отже, всередині ESC є багато апаратного блиску, що виходить за рамки цього посібника. Але, щоб згадати кілька, він має контролер швидкості та схему елімінатора батареї.
Регулювання швидкості на основі ШІМ: ESC може контролювати швидкість двигуна BLDC, зчитуючи сигнал ШІМ, поданий на помаранчевому проводі. Він працює дуже схоже на сервомотори, наданий ШІМ-сигнал повинен мати період 20 мс, а робочий цикл можна змінювати, щоб змінювати швидкість двигуна BLDC. Оскільки така ж логіка застосовується і до серводвигунів для управління положенням, ми можемо використовувати ту саму бібліотеку сервоприводів у нашій програмі Arduino. Навчіться використовувати Servo з Arduino тут.
Схема елімінатора акумулятора (BEC): Майже всі ESC постачаються з ланцюгом елімінатора акумулятора. Як випливає з назви, ця схема усуває потребу в окремій батареї для мікроконтролера, у цьому випадку нам не потрібен окремий блок живлення для живлення нашого Arduino; сам ESC забезпечить регульований + 5 В, який можна використовувати для живлення нашого Arduino. Є багато типів ланцюгів, які регулюють цю напругу, як правило, це лінійне регулювання на дешевих ESC, але ви також можете знайти такі з комутаційними схемами.
Прошивка: Кожен ESC має програму вбудованого програмного забезпечення, записану виробником. Ця прошивка в значній мірі визначає реакцію вашого ESC; деякі популярні прошивки традиційні, Simon-K та BL-Heli. Ця прошивка також програмується користувачем, але ми не будемо вдаватися до більшої частини цього в цьому посібнику.
Деякі загальні терміни з BLDC та ESC:
Якщо ви тільки почали працювати з двигунами BLDC, то, можливо, ви натрапили на такі терміни, як гальмування, плавний пуск, напрямок двигуна, низька напруга, час відгуку та аванс. Давайте подивимось, що означають ці терміни.
Гальмування: Гальмування - це здатність вашого BLDC-двигуна зупинити обертання, як тільки буде знято дросель. Ця здатність дуже важлива для багатокоптерів, оскільки їм доводиться частіше міняти обороти, щоб маневрувати в повітрі.
Плавний пуск: плавний пуск - це важлива функція, яку слід враховувати, коли ваш двигун BLDC пов’язаний із шестернею. Коли двигун увімкнув плавний пуск, він не почне раптово обертатися дуже швидко, він завжди буде поступово збільшувати швидкість, незалежно від того, як швидко був поданий газ. Це допоможе нам зменшити знос передач, приєднаних до двигунів (якщо такі є).
Напрямок двигуна: Напрямок двигуна в двигунах BLDC зазвичай не змінюється під час роботи. Але при складанні користувачеві може знадобитися змінити напрямок обертання двигуна. Найпростіший спосіб змінити напрямок двигуна - це просто поміняти будь-які два дроти двигуна.
Зупинка низької напруги: Після калібрування нам завжди буде потрібно, щоб наші двигуни BLDC працювали з однаковою швидкістю для певного значення дросельної заслінки. Але цього важко досягти, оскільки двигуни, як правило, зменшують свою швидкість для того самого значення дросельної заслінки, оскільки напруга акумулятора зменшується. Щоб уникнути цього, ми зазвичай програмуємо ESC припинити роботу, коли напруга акумулятора досягла нижче порогового значення, ця функція називається зупинкою низької напруги і корисна для безпілотників.
Час відгуку: Здатність двигуна швидко змінювати швидкість на основі зміни дроселя називається часом відгуку. Чим менший час відгуку, тим кращим буде контроль.
Попередження: Попередження - це проблема або більше схожа на помилку з двигунами BLDC. Всі двигуни BLDC мають трохи прогресу в собі. Тобто, коли котушки статора під напругою, ротор притягується до нього через постійний магніт, який знаходиться на них. Після притягання ротор має тенденцію рухатися трохи вперед у тому самому напрямку, перш ніж котушка деенергізується, а потім - наступна котушка. Цей рух називається «Попередження», і він створюватиме такі проблеми, як тремтіння, нагрівання, шум тощо. Отже, цього слід добре уникати ESC самостійно.
Гаразд, досить теорії, давайте почнемо з апаратного забезпечення, підключивши двигун до Arduino.
Схема керування двигуном Arduino BLDC
Нижче наведена принципова схема управління безщітковим двигуном за допомогою Arduino:
З'єднання для взаємодії двигуна BLDC з Arduino досить пряме. ESC потребує джерела живлення приблизно 12 В і 5 А мінімум. У цьому посібнику я використав свій RPS як джерело живлення, але ви також можете використовувати Li-Po акумулятор для живлення ESC. Трифазні дроти ESC повинні бути підключені до трифазних проводів двигунів, немає жодного замовлення на підключення цих проводів, їх можна підключити в будь-якому порядку.
Попередження: Деякі ESC не матимуть на собі роз’ємів, у цьому випадку переконайтеся, що ваше з’єднання надійне, і захистіть відкриті дроти за допомогою ізоляційної стрічки. Оскільки через фази буде проходити сильний струм, будь-яке коротке замикання призведе до постійних пошкоджень ESC та двигуна.
BEC (Eliminator ланцюга батареї) в самій ESC регулюватиме + 5V, який може бути використаний для включення живлення на Arduino ради. Нарешті, для встановлення швидкості двигуна BLDC ми також використовуємо потенціометр, підключений до виводу A0 Arduino
Програма для контролю швидкості BLDC за допомогою Arduino
Ми повинні створити ШІМ-сигнал із змінним робочим циклом від 0% до 100% з частотою 50 Гц. Робочий цикл слід контролювати за допомогою потенціометра, щоб ми могли контролювати швидкість двигуна. Код для цього схожий на управління сервомоторами, оскільки їм також потрібен ШІМ-сигнал із частотою 50 Гц; отже, ми використовуємо ту саму сервотеку з Arduino. Повний код можна знайти в нижній частині цієї сторінки, нижче я поясню код в невеликих фрагментах. І якщо ви новачок в Arduino або ШІМ, спершу перейдіть за допомогою ШІМ з Arduino та керуйте сервосистемою за допомогою Arduino.
Сигнал ШІМ може генеруватися лише на висновках, які апаратно підтримують ШІМ, ці висновки зазвичай згадуються символом ~. На Arduino UNO штифт 9 може генерувати ШІМ-сигнал, тому ми підключаємо сигнальний штифт ESC (помаранчевий провід) до виводу 9, ми також згадуємо той самий код готелю, використовуючи наступний рядок
ESC.attach (9);
Ми повинні генерувати ШІМ-сигнал із різним робочим циклом від 0% до 100%. Для 0% робочого циклу POT виводить 0 В (0), а для 100% робочого циклу POT виводить 5 В (1023). Тут бачок підключений до виводу A0, тому ми повинні зчитувати аналогову напругу з POT, використовуючи функцію аналогового зчитування, як показано нижче
int throttle = analogRead (A0);
Потім ми повинні перетворити значення з 0 на 1023 до 0 на 180, оскільки значення 0 генерує 0% ШІМ, а значення 180 - 100% робочого циклу. Будь-які значення вище 180 не матимуть сенсу. Тож ми призначаємо значення 0-180 за допомогою функції map, як показано нижче.
throttle = карта (throttle, 0, 1023, 0, 180);
Нарешті, ми маємо надіслати це значення сервофункції, щоб вона могла генерувати ШІМ-сигнал на цьому штифті. Оскільки ми назвали сервооб'єкт як ESC, код буде виглядати так нижче, де змінна дросельна заслінка містить значення від 0-180 для управління робочим циклом сигналу ШІМ.
ESC.write (дросель);
Управління двигуном Arduino BLDC
Встановіть з'єднання відповідно до принципової схеми та завантажте код в Arduino та включіть ESC. Переконайтеся, що ви встановили двигун BLDC на щось, оскільки він обертається навколо при обертанні. Після ввімкнення налаштування ваш ESC видасть привітальний сигнал і продовжить подавати звуковий сигнал, доки сигнал дросельної заслінки не буде в межах порогових меж, просто збільшуйте POT з 0 В поступово, а звуковий сигнал припиниться, це означає, що ми зараз надаємо ШІМ сигнал вище нижнього порогового значення, і при подальшому збільшенні ваш двигун почне повільно обертатися. Чим більше напруги ви надаєте, тим більшу швидкість набирає двигун, нарешті, коли напруга досягне вище верхньої межі, двигун зупиниться. Потім можна повторити процес.
Повну роботу цього контролера Arduino BLDC також можна знайти за посиланням на відео нижче. Якщо ви зіткнулися з будь-якою проблемою, щоб змусити це працювати, сміливо використовуйте розділ коментарів або використовуйте форуми для отримання додаткової технічної допомоги.