Як керувати безщітковим мотором з Arduino?


28

Чи можна керувати безщітковим мотором безпосередньо Arduino? Або я повинен повернутися до управління безщітковим мотором ESC з імпульсами ШІМ?


1
Можливо, ви можете отримати чіп драйвера зі старого програвача DVD / CD.
Ларс

Відповіді:


10

Ви обов'язково повинні використовувати ESC. Безщіткові двигуни найкраще спрацьовують при синусоїді (або як можна ближче до синусоїди). Вони також вимагають досить точного і складного набору сигналів. Створювати належні форми хвилі та час від ардуїно було б складно, і, якщо вам це справді не потрібно, напевно, не варто. Ви завжди можете домовитись про управління ESC від свого ардуїно, що дасть вам програмний контроль плюс ефективність та потужність ESC.


nitpick: За даними Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ), двигуни BLDC оптимізовані для найкращої роботи при керуванні постійним струмом: повний позитивний, нерівномірний і повний негативний. Двигуни змінного струму постійного магніту оптимізовані для найкращої роботи при русі синусоїди; це єдина суттєва різниця між ними. Я погоджуюся з вашим висновком: напевно, варто використовувати позаштатний ESC, а не розробляти його самостійно.
davidcary

4
Контролер на BLCD міг би дуже добре використовувати ту саму атмегу, що і ардуїно; тому перевага полягає в тому, щоб вирішити проблему деталізації комусь іншому для вирішення; і передача комутаційного завдання низького рівня, щоб залишити амегу ардуїно вільною для завдань вищого рівня.
Кріс Страттон

Двигуни BLDC використовують по суті квадратний хвильовий привід до котушок. На стороні користувача контролера (ESC) вони використовують подачу живлення постійного струму плюс всі необхідні контрольні сигнали, які вимагає ESC. Синусоїди не мають особливості.
Рассел Макмахон

13

Насправді іноді вам просто ОБОВ'ЯЗКОВО зробити власний ESC. ESC, що продаються на maket, "комерціалізовані" і мають власні контрольні коди для речей RC, таких як літаки, геліс, машини ...

Наприклад, іноді потрібно мати подвійне бокове регенеративне гальмо. Ззаду до зупинки і від вперед до зупинки. НЕ є RC ESC, який має цю особливість. Вони або мають лише одне відновлювальне гальмо від прямої до зупинки, або його немає. Або вам може знадобитися сенсорне управління BLDC, але на ринку є лише кілька сенсованих ESC, і вони мають вбудовані (те саме, що і для звичайних без сенсорних ESC) функцій, які вам не потрібні і не мають тих, які вам абсолютно потрібні. !

Створення власного ESC - це ідеальний вибір і набагато дешевше, ніж найдешевший $ 10 з величезною потужністю.

Це правда, що контрольний код та обладнання можуть бути болючими, але після деякого читання це просто іграшка.

Тут є хороший підручник про те, як зробити контролер BLDC з ардуїно, використовуючи 6 мошефетів та деякі інші речі, які ви можете легко знайти на сайті Jameco (дуже приємно). Тут я купую свої речі за дешеві, але spurkfun може стати гарною альтернативою, якщо ви не знайдете таких датчиків, як гіроскопи тощо.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

дуже приємний і простий в дотриманні керівництва. Ви можете зробити будь-яку потужність від низьких до надвисоких ESC, використовуючи це керівництво та майже будь-яку комбінацію регеневого гальма, використовуючи опір, обмотки двигуна або зарядний пристрій ...

Використання мосфетів - це просто іграшка, ви можете робити майже все, що завгодно.

Проблема полягає в тому, що ви не можете керувати цим MOSFET дуже ефективно з MCU, як ардуйо-плата, яка видає лише 5 В, я думаю, і напруга MOSFET для середніх напруг набагато вище в діапазоні 16-30 В легко. Тож для посилення напруги ардуїно потрібно використовувати інший танзисор.

Удачі.


6

Я ходив на цю тему вже 30 хвилин. Я думаю, ви, мабуть, хочете використовувати ESC, якщо ви просто не робите це як досвід навчання. Для правильного керування мотором ви зможете залучити більше ресурсів у вашого ардуїно, ніж я можу собі уявити, виправдовуючи. Крім того, ви обмежите чутливість двигуна до додаткового опитування. Я б не думав використовувати ESC як ревертування, так це і слід зробити.


4

Оскільки ніхто інший цього не сказав - ви не зможете практично керувати мотором безпосередньо від ардуїно просто тому, що чіп AVR не виведе достатньо струму для подачі будь-якої корисної кількості енергії.

Тож, принаймні, ви б дивились на створення трифазного пристрою Н-мосту (читайте: три 'половини Н-моста') для керування необхідними струмами, для управління приводними транзисторами потрібно шість цифрових ліній.

Якщо припустити, що ви вирішили цю проблему з можливостями накопичувача, і це не банально, тоді вам доведеться потрапити в контрольний код. Ці двигуни мають постійні магнітні ротори, тому ви не можете просто сліпо крутити поле статора і отримувати корисний крутний момент. Ви повинні знати орієнтацію ротора для того, щоб кути електричної фази були відрегульовані так, щоб отримати рівномірний крутний момент.

Так, як казали інші, якщо ви не хочете конкретного досвіду навчання, немає сумніву в тому, щоб купувати ESC.


3

Я думаю, це було б чудовим навчанням, але ЕРС використовують ЕРС назад для виявлення обертання, хоча для цього можна використовувати оптичні або магнітні датчики. В основному вам потрібно створити 3 фази змінного струму та активувати / дезактивувати їх у потрібний момент.

Швидкість обертання магнітного поля потрібно адаптувати до мотора, тобто якщо ви хочете прискорити, поле має працювати трохи раніше та швидше. Ви також можете зламати, роблячи навпаки.

Для детального пояснення: http://www.embedded.com/column/technicinsights/196701832?_requestid=137540

Для практичної роботи придбайте ESC.


Я вперше подумав, що прискорення і уповільнення здійснюються так, як ви описуєте, проводячи та відстаючи від поля. але потім я прочитав, що прискорення визначається в основному напругою (хоча я не бачу, як це може сповільнитись). я відчуваю себе трохи розгубленим. чи працює один із підходів для прискорення? якась причина віддати перевагу одній над іншою чи змішати їх? Спасибі!
некроман

2

Ви можете керувати ним безпосередньо Arduino, якщо за кермом ви не маєте на увазі буквально подачі струму для обмоток - будь-який MCU був би занадто слабким для цього. Крім того, Arduino може потонути, але не джерело струму, але вам знадобиться як для безщіткового двигуна.

Однак, якщо ви крім Arduino використовуєте дуже простий драйвер H-мосту, ви можете реалізувати майже кожну функцію ESC. Насправді, залежно від програми, можливо, вам навіть не знадобиться E * SC *, що означає, що вам може не знадобитися контроль швидкості закритого циклу - якщо навантаження не надто велика, ви, можливо, зможете просто піти, просто довірившись мотору відповідати синхронно з підсиленням обмотки, і швидкість зміни струму обмотки буде надходити від Arduino. Перевірте цю дуже просту схему управління безмоторним двигуном (BLDC) та ескіз Arduino, який ви, можливо, зможете адаптувати до керування мотором. Цей базується на IC754410NE квадратичному H-мосту ІС, який максимумується на 750mA, якщо використовується пам'ять.

Код не надто тривіальний і використовує ШІМ для плавного обертання, але не дуже складно проаналізувати або адаптуватись до вашої програми. Тут представлений фактичний ескіз Arduino для двигуна BLDC .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.