Крихітний мотор, надрукований прямо на платі — інженер працює над ним уже п’ять років, і цього разу вирішив зосередитися не на самому моторі, а на тому, що ним керує. Виявилося, що контролер — це насправді половина успіху, і саме від нього залежить, чи мотор буде ледь повзти, чи розкручуватися до десятків тисяч обертів за хвилину.
Як взагалі працює такий мотор
PCB-мотор влаштований за принципом класичного безщіткового двигуна, тільки котушки тут не намотані дротом, а інтегровані прямо у тонку плату. Якщо уявити ротор як каруселі, а статор — як руку, яка цю карусель розкручує, стає зрозуміло, чому перемикання фаз так важливе. У кожен момент часу одна фаза підключена до живлення, друга — до землі, а третя залишається вільною. Така схема з шістьома кроками називається шестикроковою трапецеїдальною комутацією, і саме мікроконтролер генерує сигнали, які проходять через драйвер затворів і перемикають шість транзисторів.
Проблема в тому, що без зворотного зв’язку контролер працює, по суті, наосліп. Найменша помилка в таймінгу — і мотор втрачає синхронізацію. Тому далі постало питання: як читати швидкість обертання і коригувати її на льоту.
Перший варіант: датчик біля ротора
Найпростіше рішення — поставити магнітний сенсор поруч із ротором, який має вісім магнітів. Один-єдиний датчик дозволяє визначити обороти, а мікроконтролер потім підлаштовує таймінг для синхронізації. Для перевірки автор навіть пофарбував ротор у чорний колір і наклеїв шматочок відбивної стрічки, щоб лазерний тахометр міг коректно зчитувати швидкість.
Результат вийшов скромним — близько 3500 обертів за хвилину, причому контролер ще й помітно грівся. Цю саму схему він уже використовував у попередньому проєкті, і обмеження були відомі заздалегідь. Можна було б узяти потужніший мікроконтролер, але виникла ідея простіша — замінити дві мікросхеми однією.
Однокристальне рішення з датчиками: стрибок у швидкості
Спеціалізована мікросхема здатна самостійно генерувати шестикрокову комутацію і керувати швидкістю на основі вбудованих сенсорів, фактично виконуючи роботу двох чипів одразу. Готові плати для тестування виявилися занадто дорогими, тож довелося проєктувати власну в Altium, розмістивши статор прямо на платі, а датчик — якомога ближче до ротора.
Результат перевершив очікування: тахометр показав максимальну швидкість без навантаження у 33 900 обертів за хвилину — у десять разів більше за попередню версію. Швидкість трималася стабільно, а під навантаженням знижувалася плавно, без різких провалів. Цікаво, що мотор працював значно прохолодніше, оскільки коефіцієнт заповнення сигналу автоматично підлаштовувався під навантаження — без навантаження споживання потужності навіть падало.
Втім, без недоліків не обійшлося. Така схема не сумісна з однобанковою LiPo-батареєю, а три датчики Холла займають доволі багато місця для настільки мініатюрного мотора. Спроба інтегрувати алюмінієвий пропелер у ротор закінчилася розчаруванням — лише 6000 обертів через додатковий опір повітря, який створювали ті самі датчики, перекриваючи потік.
Безсенсорний контролер: тиждені налаштувань заради стабільності
Щоб позбутися датчиків узагалі, автор узявся проєктувати безсенсорний контролер з нуля. Принцип тут інший: коли одна з фаз залишається непідключеною, обертання ротора генерує на ній напругу — так звану зворотну електрорушійну силу. Її значення прямо пропорційне швидкості мотора, а точка перетину нуля цього сигналу дозволяє визначити правильний момент перемикання фаз.
Будь-яка затримка в коді миттєво призводить до втрати синхронізації — це одна з найскладніших частин безсенсорного керування, яка потребує справді потужного мікроконтролера.
Алгоритм починається з розгону мотора в розімкнутому циклі з мінімальним коефіцієнтом заповнення, після чого система поступово переходить на самостійне відстеження синхронізації. Високочастотний ШІМ-сигнал додавав шуму до сигналу зворотної ЕРС, тому довелося додати конденсатор для згладжування і резисторний дільник напруги для зниження сигналу до рівня мікроконтролера.
Цей конкретний мотор виявився справжнім викликом — його фазовий опір настільки високий, а зворотна ЕРС настільки слабка, що автор сам не був певен, чи спрацює задумане. На налаштування алгоритму пішли тижні: мотор вдалося розігнати до 11 000 обертів у розімкнутому циклі, але стабільної синхронізації досягти все одно не вдавалося. Згодом виявилося, що один з каналів АЦП час від часу видавав сміттєві дані — проблему вдалося виправити простим циклом очікування. Покращення з’явилося, але мотор усе ще не тримав синхронізацію стабільно.
Додавши програмну фільтрацію та усереднення сигналу, автор зіткнувся з ще однією проблемою: дві половини сигналу зворотної ЕРС виявилися несиметричними. Рішення знайшлося в тому, щоб орієнтуватися лише на одну з них, ігноруючи другу.
Коли все нарешті запрацювало, мотор розкрутився швидше за 33 000 обертів за хвилину, а на максимальній швидкості сигнал зворотної ЕРС почав насичуватися — причину цього явища автор так і не з’ясував повністю, хоча обертання залишалося стабільним і без перегріву. Колесо розкрутилося до приблизно 22 000 обертів, а пропелер — до 18 000, що сам автор назвав по-справжньому вражаючим результатом. Щоправда, з’явився й непомітний на відео, але цілком реальний дим.
Однокристальний безсенсорний варіант: компроміс заради компактності
Попри успіх, безсенсорний контролер виявився занадто великим відносно розмірів самого мотора. Логічним наступним кроком стала спроба знайти однокристальне безсенсорне рішення — такі чипи значно поширеніші, оскільки масово використовуються в маломощних вентиляторах для ноутбуків. Проблема в тому, що вони розраховані на стандартні параметри моторів, а PCB-мотор з його високим фазовим опором і слабкою зворотною ЕРС — далеко не стандартний випадок.
З трьох протестованих мікросхем запрацювала лише одна, і навіть вона вимагала додаткового налаштування. Цей чип потребував окремого виводу, підключеного до середньої точки фаз — пряме припаювання дроту до цієї точки не дало результату, а ось імітація трьома резисторами спрацювала, хоча швидкість залишалася невисокою навіть після перенесення схеми на повноцінну плату. Додатковим обмеженням виявилося те, що цей чип міг обертати ротор лише в одному напрямку.
Подальші пошуки привели до іншої мікросхеми, яка підтримувала обертання в обидва боки. Рішення проєктувати плату під чип без жодних готових девборд для тестування було своєрідною авантюрою — але результат здивував. Хоча рекорд у 33 000 обертів побити не вдалося, і колесо, і пропелер розкручувалися так само швидко, як і з повноцінним безсенсорним контролером.
Алгоритм цього чипа виявився трохи іншим — він вимикає ШІМ саме в середній точці, щоб уникнути необхідності фільтрації сигналу, що автор оцінив як доволі елегантне рішення. Цікаво, що три резистори-імітатори середньої точки виявилися взагалі необов’язковими: пряме припаювання дроту спрацювало так само добре, дозволяючи зробити контролер ще компактнішим. Єдиний серйозний недолік цього чипа — п’ятисекундна затримка блокування, яка може виявитися неприйнятною для деяких застосувань.
Куди це все веде: тяга, дрони і повільні мотори
Мідний тепловідвід на платі непогано охолоджував мотор завдяки повітрю, що проходило крізь перехідні отвори, але одночасно й блокував видув повітря пропелером. Тому автор підключив до цього мініатюрного контролера інший, не нагрівальний PCB-мотор — і отримав крихітний вентилятор, чий контролер практично нічого не важить, що особливо цінно, коли йдеться про тягу.
За попередніми розрахунками, чотири таких мотори теоретично здатні підняти лише близько 5 грамів — для повноцінного PCB-дрона цього явно замало. Втім, автор має підозру, що додаткову потужність можна видобути, перепроєктувавши пропелер і сам мотор. Раніше продуктивність обмежував перегрів, тому конструкція спеціально розраховувалася на роботу без нагріву на низьких обертах — тепер же стало очевидно, що на високих обертах температура взагалі перестає бути проблемою.
Окремо автор зазначає важливу різницю між високооборотними та низькооборотними PCB-моторами: безсенсорні контролери на низьких швидкостях просто не працюють, бо мотор не генерує достатньо зворотної ЕРС, а спеціалізовані сенсорні чипи теж не мають режиму для повільного обертання. Тому для повільного руху, схоже, доведеться повертатися до власного контролера — і замінювати прямокутний сигнал на синусоїдальний заради плавнішої роботи.
Наразі фокус зміщується на перепроєктування мотора саме під високошвидкісні застосування. Проєкт явно ще далекий від завершення, але вже зараз показує, наскільки сильно правильний вибір контролера здатен змінити результат — навіть якщо сам мотор залишається тим самим.


