- Необходими материали
- Разбиране на BLDC Motors
- Защо дроновете и другите мултикоптери използват BLDC Motors?
- Защо се нуждаем от ESC и каква е неговата функция?
- Някои често срещани термини с BLDC и ESC:
- Схема за управление на двигателя на Arduino BLDC
- Програма за BLDC контрол на скоростта с помощта на Arduino
- Arduino BLDC управление на двигателя
Да изграждаме неща и да ги караме да работят по начина, по който ние искаме, винаги е било истинско забавление. Докато това беше договорено, строителните неща, които биха могли да летят, предизвикателно биха изпомпали малко повече тревожност сред любителите и хардуерките. Да! Говоря за планери, хеликоптери, самолети и главно мултикоптери. Днес стана много лесно да го изградите сами поради подкрепата на общността, достъпна онлайн. Едно често срещано нещо при всички неща, които летят, е, че те използват BLDC мотор, така че какъв е този BLDC мотор? Защо ни е необходим, за да управляваме нещата? Какво е толкова специалното в него? Как да закупите правилния двигател и да го свържете с вашия контролер? Какво е ESC и защо го използваме? Ако имате въпроси като тези, този урок е вашето решение на едно гише.
Така че основно в този урок ще контролираме безчетков двигател с Arduino. Тук A2212 / 13T безсензорен BLDC двигател за изпреварване се използва с 20A електронен контролер на скоростта (ESC). Този мотор обикновено се използва за изграждане на дронове.
Необходими материали
- A2212 / 13T BLDC мотор
- ESC (20A)
- Източник на захранване (12V 20A)
- Arduino
- Потенциометър
Разбиране на BLDC Motors
BLDC Motor означава двигател с постоянен ток с по-малко четки, той често се използва в таванни вентилатори и електрически превозни средства поради безпроблемната му работа. Използването на BLDC двигатели в електрически превозни средства е обяснено по-подробно по-рано. За разлика от другите двигатели, BLDC двигателите имат три проводника, които излизат от тях и всеки проводник образува своя собствена фаза, като по този начин ни дава трифазен двигател. Чакаме какво!!??
Да, въпреки че BLDC двигателите се считат за DC двигатели, те работят с помощта на импулсни вълни. В контролера Electronic скорост (ESC) преобразува постоянното напрежение от акумулатора, за да импулси и да го представи на 3 проводниците на мотора. Във всеки един момент ще се захранват само две фази на двигателя, така че токът влиза през една фаза и излиза през друга. По време на този процес бобината вътре в двигателя се захранва и следователно магнитите на ротора се подравняват към захранващата бобина. След това следващите два проводника се захранват от ESC, този процес продължава, за да накара двигателя да се върти. Скоростта на двигателя зависи от това колко бързо се захранва бобината и посоката на двигателя зависи от това в кой ред бобините се захранват. Ще научим повече за ESC по-късно в тази статия.
Налични са много видове BLDC двигатели, нека разгледаме най-често срещаните класификации.
Двигател BLDC за бягане и задвижване: Двигателите BLDC за бегач работят като всеки друг двигател. Това е валът вътре в двигателя, който се върти, докато корпусът остава неподвижен. Докато моторните BLDC двигатели са точно обратното, външният корпус на двигателя се върти заедно с вала, докато бобината вътре остава неподвижна. Аутмоторните двигатели са много предимства при електрическите мотоциклети, тъй като външният корпус (този, който се върти) е направен в джанта за гумите и по този начин се избягва свързващ механизъм. Също така изходните мотоциклетни двигатели са склонни да дават повече въртящ момент, отколкото при типовете бегачи, поради което се превръща в идеален избор за EV и Drones. Този, който използваме тук, също е тип бегач.
Забележка: Има и друг тип двигатели, наречени безядрени BLDC двигатели, които също се използват за джобни дронове, те имат различен принцип на работа, но засега нека го пропуснем в името на този урок.
Сензор и безсензорен BLDC мотор: За да се върти BLDC мотор без никакво дръпване, се изисква обратна връзка. Това е, че ESC трябва да знае положението и полюса на магнитите в ротора, така че да захранва статора според него. Тази информация може да бъде получена по два начина; едната е чрез поставяне на сензор на Hall в двигателя. Сензорът на Hall ще открие магнита и ще изпрати информацията на ESC този тип двигател се нарича Sensord BLDC мотор и се използва в електрически превозни средства. Вторият метод е чрез използване на задната ЕМП, генерирана от намотките, когато магнитите ги пресичат, това не изисква допълнителен хардуер или самите проводници на фазата се използват като обратна връзка за проверка за обратна ЕМП. Този метод се използва в нашия двигател и е често срещан за безпилотни самолети и други летящи проекти.
Защо дроновете и другите мултикоптери използват BLDC Motors?
Има много видове страхотни дронове от Quad copter до хеликоптери и планери, всичко има един общ хардуер. Това е BLDC двигателите, но защо? Защо използват BLDC мотор, който е малко по-скъп в сравнение с DC Motors?
Има немалко основателни причини за това, една от основните причини е въртящият момент, осигурен от тези двигатели, са много високи, което е много важно за бързо набиране / разхлабване на тягата за излитане или кацане на дрон. Също така тези двигатели се предлагат като външни бегачи, което отново увеличава тягата на двигателите. Друга причина за избрания BLDC мотор е неговата плавна работа без вибрации, това е много идеално за нашия безпилотен самолет, стабилен във въздуха.
Съотношението мощност / тегло на BLDC мотора е много високо. Това е много важно, тъй като двигателите, използвани за безпилотни летателни апарати, трябва да са с висока мощност (висока скорост и голям въртящ момент), но също така да са с по-малко тегло. Мотор с постоянен ток, който може да осигури същия въртящ момент и скорост като този на BLDC мотор, ще бъде два пъти по-тежък от BLDC мотора.
Защо се нуждаем от ESC и каква е неговата функция?
Както знаем, всеки BLDC двигател изисква някакъв контролер за преобразуване на постояннотоковото напрежение от батерията в импулси за захранване на фазовите проводници на двигателя. Този контролер се нарича ESC, което означава „ Електронен контролер на скоростта“. Основната отговорност на контролера е да захранва фазните проводници на BLDC двигателите в ред, така че двигателят да се върти. Това се прави чрез усещане на задната ЕМП от всеки проводник и захранване на намотката точно когато магнитът пресича намотката. Така че в ESC има много хардуерен блясък, който е извън обхвата на този урок. Но за да споменем няколко, той има контролер на скоростта и верига за елиминиране на батерията.
Контрол на скоростта, базиран на PWM: ESC може да контролира скоростта на BLDC мотора, като чете PWM сигнала, предоставен на оранжевия проводник. Той работи много подобно на серво мотори, предоставеният ШИМ сигнал трябва да има период от 20 ms и работният цикъл може да варира, за да варира скоростта на BLDC мотора. Тъй като същата логика се отнася и за сервомоторите за управление на позицията, можем да използваме същата серво библиотека в нашата програма Arduino. Научете се да използвате Servo с Arduino тук.
Верига за елиминиране на батерията (BEC): Почти всички ESC се доставят с верига за елиминиране на батерията. Както подсказва името, тази схема елиминира нуждата от отделна батерия за микроконтролер, в този случай не се нуждаем от отделно захранване за захранване на нашия Arduino; самият ESC ще осигури регулиран + 5V, който може да се използва за захранване на нашия Arduino. Има много видове вериги, които регулират това напрежение нормално, това ще бъде линейно регулиране на евтините ESC, но можете да намерите и такива с превключващи вериги.
Фърмуер: Всеки ESC има програма за фърмуер, записана в него от производителите. Този фърмуер значително определя как ще реагира вашият ESC; някои от популярните фърмуери са традиционни, Simon-K и BL-Heli. Този фърмуер също е програмируем от потребителя, но няма да навлизаме в голяма част от това в този урок.
Някои често срещани термини с BLDC и ESC:
Ако току-що сте започнали да работите с BLDC двигатели, тогава може би сте се натъкнали на термините като Спиране, Мек старт, Посока на двигателя, Ниско напрежение, Време за реакция и Advance. Нека да разгледаме какво означават тези термини.
Спиране: Спирането е способността на вашия BLDC мотор да спре да се върти веднага щом дроселът бъде свален. Тази способност е много важна за мултикоптерите, тъй като те трябва да сменят оборотите си по-често, за да маневрират във въздуха.
Мек старт: Мекият старт е важна характеристика, която трябва да имате предвид, когато вашият BLDC мотор е свързан с предавка. Когато двигателят има активиран плавен старт, той изведнъж няма да започне да се върти много бързо, той винаги ще увеличава постепенно скоростта, независимо колко бързо е била подадена дроселната клапа. Това ще ни помогне за намаляване на износването на зъбни колела, прикрепени към двигателите (ако има такива).
Посока на двигателя : Посоката на двигателя в BLDC двигателите обикновено не се променя по време на работа. Но при сглобяването може да се наложи потребителят да промени посоката, в която двигателят се върти. Най-лесният начин да промените посоката на двигателя е като просто смените произволните два проводника на двигателя.
Спиране на ниско напрежение: Веднъж калибриран, винаги ще се нуждаем нашите BLDC двигатели да работят със същата определена скорост за определена стойност на дроселната клапа. Но това е трудно да се постигне, тъй като двигателите са склонни да намаляват скоростта си за същата стойност на дросела, тъй като напрежението на батерията намалява. За да избегнем това, ние обикновено програмираме ESC да спре да работи, когато напрежението на батерията достигне под праговата стойност, тази функция се нарича Спиране на ниско напрежение и е полезна за дронове.
Време за реакция: Способността на двигателя да променя бързо скоростта си въз основа на промяната в дросела се нарича време за реакция. Колкото по-малко е времето за реакция, толкова по-добър ще бъде контролът.
Advance: Advance е проблем или по-скоро като грешка с BLDC двигатели. Всички BLDC двигатели имат малко напредък в себе си. Тогава, когато статорните бобини се захранват, роторът се привлича към него поради постоянния магнит, който се намира върху тях. След като бъде привлечен, роторът има тенденция да се движи малко по-напред в същата посока, преди бобината да се обезсили и след това да се активира следващата намотка. Това движение се нарича „Advance“ и ще създаде проблеми като трептене, загряване, вдигане на шум и т.н. Така че това е нещо, което един добър ESC трябва да избягва сам.
Добре, достатъчно теория сега нека започнем с хардуера, като свържем мотора с Arduino.
Схема за управление на двигателя на Arduino BLDC
По-долу е дадена електрическата схема за управление на безчетков двигател с Arduino:
Връзката за свързване на BLDC мотор с Arduino е доста права. ESC се нуждае от източник на мощност от около 12V и 5A минимум. В този урок използвах своя RPS като източник на захранване, но можете да използвате и Li-Po батерия за захранване на ESC. Трифазните проводници на ESC трябва да бъдат свързани към трифазните проводници на двигателите, няма поръчка за свързване на тези проводници, можете да ги свържете във всякакъв ред.
Предупреждение: Някои ESC няма да имат съединители по тях, в този случай се уверете, че връзката ви е стабилна и защитете откритите проводници с помощта на изолационна лента. Тъй като ще има голям ток, преминаващ през фазите, всяко късо би довело до трайни повреди на ESC и двигателя.
В BEC (Battery Eliminator верига) в самата ИСС ще регулира на 5 V, които могат да се използват за включване на платката. И накрая, за да зададем скоростта на BLDC мотора, ние също използваме потенциометър, свързан към A0 щифт на Arduino
Програма за BLDC контрол на скоростта с помощта на Arduino
Трябва да създадем ШИМ сигнал с променлив работен цикъл от 0% до 100% с честота 50Hz. Работният цикъл трябва да се контролира с помощта на потенциометър, за да можем да контролираме скоростта на двигателя. Кодът за това е подобен на управлението на серво мотори, тъй като те също изискват ШИМ сигнал с честота 50 Hz; следователно използваме същата серво библиотека от Arduino. В пълния код може да бъде намерена на дъното на тази страница по-долу обяснявам кода на малки фрагменти. И ако сте нов в Arduino или PWM, първо преминете през използването на PWM с Arduino и контролирайте серво с Arduino.
ШИМ сигналът може да се генерира само на щифтовете, които поддържат ШИМ от хардуер, като тези пинове обикновено се споменават със символ ~. На Arduino UNO щифтът 9 може да генерира ШИМ сигнал, така че свързваме ESC сигналния щифт (оранжев проводник) към щифт 9, ние също споменаваме същия код на хана, като използваме следния ред
ESC.attach (9);
Трябва да генерираме ШИМ сигнал с различен работен цикъл от 0% до 100%. За 0% работен цикъл POT ще изведе 0V (0), а за 100% работен цикъл POT ще изведе 5V (1023). Тук потът е свързан към щифт A0, така че трябва да отчитаме аналоговото напрежение от POT, като използваме функцията за аналогово четене, както е показано по-долу
int throttle = analogRead (A0);
След това трябва да преобразуваме стойността от 0 до 1023 на 0 до 180, защото стойността 0 ще генерира 0% ШИМ и стойност 180 ще генерира 100% работен цикъл. Всякакви стойности над 180 няма смисъл. Така че ние картографираме стойността на 0-180, като използваме функцията map, както е показано по-долу.
дросел = карта (дросел, 0, 1023, 0, 180);
И накрая, трябва да изпратим тази стойност на сервофункцията, за да може тя да генерира ШИМ сигнал на този щифт. Тъй като сме посочили серво обекта като ESC, кодът ще изглежда по-долу, където променливата дроселна клапа съдържа стойността от 0-180 за управление на работния цикъл на ШИМ сигнала
ESC.write (газ);
Arduino BLDC управление на двигателя
Направете връзките според схемата на веригата и качете кода в Arduino и включете ESC. Уверете се, че сте монтирали BLDC мотора върху нещо, тъй като той ще скача наоколо, когато се върти. След като настройката бъде включена, вашият ESC ще издава звук за приветствие и ще продължава да издава звуков сигнал, докато сигналът на дроселната клапа е в праговите граници, просто увеличавайте POT от 0V постепенно и звуковият сигнал спира, това означава, че сега предоставяме PWM сигнал над долната прагова стойност и докато увеличавате допълнително двигателят ви ще започне да се върти бавно. Колкото повече напрежение осигурявате, толкова повече скорост ще набере двигателят, накрая, когато напрежението достигне над горната прагова граница, двигателят ще спре. След това можете да повторите процеса.
Пълната работа на този Arduino BLDC контролер може да бъде намерена и на видео връзката по-долу. Ако сте се сблъскали с някакъв проблем, за да накарате това да работи, използвайте раздела за коментари или използвайте форумите за повече техническа помощ.