- Materiale necesare
- Înțelegerea motoarelor BLDC
- De ce Dronele și alte multi-coptere folosesc motoare BLDC?
- De ce avem nevoie de un ESC și care este funcția lui?
- Câțiva termeni comuni cu BLDC și ESC:
- Schema circuitului de control al motorului Arduino BLDC
- Program pentru BLDC Speed Control folosind Arduino
- Controlul motorului Arduino BLDC
Construirea de lucruri și punerea lor în funcțiune, așa cum ne dorim, a fost întotdeauna distractiv. În timp ce acest lucru a fost convenit, construirea unor lucruri care ar putea zbura ar fi provocat în mod sfidător un pic mai multă anxietate printre pasionați și jucători de hardware. Da! Vorbesc despre planori, elicoptere, avioane și în principal multi-coptori. Astăzi a devenit foarte ușor să construiești unul singur, datorită sprijinului comunității disponibil online. Un lucru obișnuit cu toate lucrurile care zboară este că folosesc un motor BLDC, deci ce este acest motor BLDC? De ce avem nevoie pentru a zbura lucrurile? Ce este atât de special la asta? Cum să cumpărați motorul potrivit și să îl interfațați cu controlerul dvs.? Ce este un ESC și de ce îl folosim? Dacă aveți întrebări de acest gen, atunci acest tutorial este soluția dvs. unică.
Deci, practic, în acest tutorial vom controla motorul fără perii cu Arduino. Aici motorul senzor A2212 / 13T fără senzor BLDC este utilizat cu un regulator electronic de viteză (ESC) 20A. Acest motor este utilizat în mod obișnuit pentru a construi drone.
Materiale necesare
- Motor A2212 / 13T BLDC
- ESC (20A)
- Sursa de alimentare (12V 20A)
- Arduino
- Potențiometru
Înțelegerea motoarelor BLDC
BLDC Motor reprezintă motorul Brush Less DC, este utilizat în mod obișnuit în ventilatoarele de tavan și vehiculele electrice datorită funcționării sale fluide. Utilizarea motoarelor BLDC în vehiculele electrice este explicată anterior în detaliu. Spre deosebire de alte motoare, motoarele BLDC au trei fire care ies din ele și fiecare fir își formează propria fază, astfel ne-a dat un motor trifazat. Stai ce!!??
Da, deși motoarele BLDC sunt considerate a fi motoare de curent continuu, acestea funcționează cu ajutorul undelor pulsate. Regulatorul de viteză electronic (ESC) convertește tensiunea de curent continuu de la baterie la impulsuri și oferă - l la 3 fire ale motorului. În orice moment, doar două faze ale motorului vor fi alimentate, astfel încât curentul să intre printr-o fază și să iasă prin alta. În timpul acestui proces, bobina din interiorul motorului este energizată și, prin urmare, magneții de pe rotor se aliniază la bobina energizată. Apoi, următoarele două fire sunt alimentate de ESC, acest proces este continuat pentru a face motorul să se rotească. Viteza motorului depinde de viteza cu care bobina este alimentată și direcția motorului depinde de ordinea în care bobinele sunt alimentate. Vom afla mai multe despre ESC mai târziu în acest articol.
Există multe tipuri de motoare BLDC disponibile, să aruncăm o privire la cele mai comune clasificări.
Motor BLDC în interior și în afara motorului: În motorul BLDC, motorul funcționează ca orice alt motor. Adică arborele din interiorul motorului se rotește în timp ce carcasa rămâne fixă. În timp ce motoarele BLDC de tip runner sunt exact opuse, carcasa exterioară a motorului se rotește împreună cu arborele în timp ce bobina din interior rămâne fixă. Motoarele de alergare sunt foarte avantajoase la bicicletele electrice, deoarece carcasa exterioară (cea care se rotește) este transformată într-o jantă pentru anvelope și, prin urmare, este evitat un mecanism de cuplare. De asemenea, motoarele alergătoare au tendința de a oferi un cuplu mai mare decât la tipurile de alergare, prin urmare devine o alegere ideală în vehicule electrice și drone. Cel pe care îl folosim aici este, de asemenea, un tip de alergător.
Notă: Există un alt tip de motor numit motoare BLDC fără coroană, care sunt utilizate și pentru Dronele de buzunar, au un principiu de funcționare diferit, dar deocamdată să-l omitem de dragul acestui tutorial.
Senzor și motor BLDC fără senzor: Pentru ca un motor BLDC să se rotească fără nicio lovitură, este necesar un feedback. Aceasta înseamnă că ESC trebuie să cunoască poziția și polul magneților din rotor, astfel încât să energizeze statorul în conformitate. Aceste informații pot fi dobândite în două moduri; una este prin plasarea senzorului de hol în interiorul motorului. Senzorul de hol va detecta magnetul și va trimite informațiile către ESC, acest tip de motor se numește motor Sensord BLDC și este utilizat în vehiculele electrice. Cea de-a doua metodă este folosirea EMF din spate generată de bobine atunci când magneții le traversează, acest lucru nu necesită hardware suplimentar sau cabluri. Această metodă este utilizată în motorul nostru și este obișnuită pentru drone și alte proiecte de zbor.
De ce Dronele și alte multi-coptere folosesc motoare BLDC?
Există multe tipuri de drone cool, de la Quad copter la elicoptere și planori, totul are un hardware în comun. Acesta este motorul BLDC, dar de ce? De ce folosesc un motor BLDC care este cam scump în comparație cu DC Motors?
Există destul de multe motive valabile pentru acest lucru, unul dintre motivele principale este cuplul oferit de aceste motoare sunt foarte mari, ceea ce este foarte important pentru a câștiga / slăbi forța rapidă pentru a decola sau ateriza în jos o dronă. De asemenea, aceste motoare sunt disponibile ca alergători, ceea ce mărește din nou forța motoarelor. Un alt motiv pentru selectarea motorului BLDC este funcționarea sa fără vibrații, aceasta este foarte ideală pentru drona noastră stabilă în aer.
Raportul putere / greutate al unui motor BLDC este foarte mare. Acest lucru este foarte important, deoarece motoarele utilizate pe drone ar trebui să aibă o putere mare (viteză mare și cuplu mare), dar ar trebui să aibă și o greutate mai mică. Un motor DC care ar putea oferi același cuplu și viteză ca un motor BLDC va fi de două ori mai greu decât motorul BLDC.
De ce avem nevoie de un ESC și care este funcția lui?
După cum știm, fiecare motor BLDC necesită un fel de controler pentru a converti tensiunea DC de la baterie în impulsuri pentru a alimenta firele de fază ale motorului. Acest controler se numește ESC, care înseamnă Electronic Speed Controller. Principala responsabilitate a controlerului este de a alimenta firele de fază ale motoarelor BLDC într-o ordine, astfel încât motorul să se rotească. Acest lucru se face prin detectarea EMF din spate de la fiecare fir și energizarea bobinei exact atunci când magnetul traversează bobina. Deci, există o mulțime de strălucire hardware în interiorul ESC, care nu intră în sfera acestui tutorial. Dar, pentru a menționa câteva , are controler de viteză și un circuit de eliminare a bateriei.
Controlul vitezei bazat pe PWM: ESC poate controla viteza motorului BLDC citind semnalul PWM furnizat pe firul portocaliu. Funcționează foarte asemănător cu servomotorele, semnalul PWM furnizat ar trebui să aibă o perioadă de 20 ms, iar ciclul de funcționare poate fi variat pentru a varia viteza motorului BLDC. Deoarece aceeași logică se aplică și servomotorelor pentru a controla poziția, putem folosi aceeași bibliotecă servo în programul nostru Arduino. Aflați aici folosind Servo cu Arduino.
Circuitul de eliminare a bateriei (BEC): Aproape toate ESC-urile sunt echipate cu un circuit de eliminare a bateriei. După cum sugerează și numele, acest circuit elimină necesitatea unei baterii separate pentru microcontroler, în acest caz nu avem nevoie de o sursă de alimentare separată pentru a alimenta Arduino; ESC în sine va oferi un + 5V reglementat care poate fi utilizat pentru alimentarea Arduino-ului nostru. Există multe tipuri de circuite care reglează această tensiune în mod normal, va fi o reglare liniară pe ESC-uri ieftine, dar le puteți găsi și cu circuite de comutare.
Firmware: Fiecare ESC are un program de firmware scris de producători. Acest firmware determină foarte mult modul în care răspunde ESC; unele dintre firmware-urile populare sunt Traditional, Simon-K și BL-Heli. Acest firmware este, de asemenea, programabil de către utilizator, dar nu vom intra prea mult în acest tutorial.
Câțiva termeni comuni cu BLDC și ESC:
Dacă tocmai ați început să lucrați cu motoare BLDC, probabil că ați întâlni probabil termeni precum frânare, pornire ușoară, direcția motorului, tensiune scăzută, timp de răspuns și avans. Să aruncăm o privire la ce înseamnă acești termeni.
Frânare: Frânarea este capacitatea motorului dvs. BLDC de a opri rotația de îndată ce clapeta este scoasă. Această abilitate este foarte importantă pentru multi-coptere, deoarece acestea trebuie să-și schimbe RPM mai des pentru a manevra în aer.
Pornire ușoară: Pornirea ușoară este o caracteristică importantă de luat în considerare atunci când motorul dvs. BLDC este asociat cu treapta de viteză. Când un motor are pornire ușoară activată, nu va începe să se rotească foarte repede dintr-o dată, va crește întotdeauna treptat viteza, indiferent de cât de repede a fost acordată clapeta de accelerație. Acest lucru ne va ajuta să reducem uzura angrenajelor atașate la motoare (dacă există).
Direcția motorului: direcția motorului în motoarele BLDC nu este modificată în mod normal în timpul funcționării. Dar la asamblare, utilizatorul ar putea avea nevoie să schimbe direcția în care se rotește motorul. Cel mai simplu mod de a schimba direcția motorului este prin simpla schimbare a oricăror două fire ale motorului.
Oprire de joasă tensiune: Odată calibrate, am avea nevoie întotdeauna de motoarele noastre BLDC să funcționeze la aceeași viteză specială pentru o anumită valoare a clapetei de accelerație. Dar acest lucru este greu de realizat, deoarece motoarele tind să-și reducă viteza pentru aceeași valoare a clapetei de accelerație pe măsură ce tensiunea bateriei scade. Pentru a evita acest lucru, programăm în mod normal ESC să nu mai funcționeze atunci când tensiunea bateriei a ajuns sub valoarea pragului, această funcție se numește Stop de joasă tensiune și este utilă în drone.
Timp de răspuns: Capacitatea motorului de a-și schimba rapid viteza pe baza schimbării accelerației se numește timp de răspuns. Cu cât timpul de răspuns este mai mic, cu atât controlul va fi mai bun.
Advance: Advance este o problemă sau mai mult ca o eroare cu motoarele BLDC. Toate motoarele BLDC au un pic de avans în ele. Atunci când bobinele statorului sunt energizate, rotorul este atras spre el din cauza magnetului permanent prezent pe ele. După ce a fost atras, rotorul tinde să se deplaseze puțin mai înainte în aceeași direcție înainte ca bobina să se dezactiveze și apoi să se energizeze cu bobina următoare. Această mișcare se numește „Avans” și va crea probleme precum perturbarea, încălzirea, zgomotul etc. Deci, acest lucru ar trebui evitat de un singur ESC.
Bine, teorie suficientă acum ne permite să începem cu hardware-ul prin conectarea motorului la Arduino.
Schema circuitului de control al motorului Arduino BLDC
Mai jos este schema de circuit pentru controlul motorului fără perii cu Arduino:
Conexiunea pentru interfața motorului BLDC cu Arduino este destul de simplă. ESC are nevoie de o sursă de alimentare de aproximativ 12V și minim 5A. În acest tutorial am folosit RPS-ul meu ca sursă de alimentare, dar puteți utiliza și o baterie Li-Po pentru a alimenta ESC. Cablurile trifazate ale ESC ar trebui conectate la cele trei faze ale motoarelor, nu există nicio ordine pentru conectarea acestor fire, le puteți conecta în orice ordine.
Avertisment: Unele ESC nu vor avea conectori, în acest caz asigurați-vă că conexiunea dvs. este solidă și protejați firele expuse folosind bandă izolatoare. Deoarece va exista un curent mare care trece prin faze, orice scurtcircuit ar duce la deteriorarea permanentă a ESC și a motorului.
BEC (Battery Eliminator de circuit), în CES se va reglementa un + 5V, care poate fi folosit mai ales pentru Consiliul Arduino. În cele din urmă, pentru a seta viteza motorului BLDC, folosim și un potențiometru conectat la pinul A0 al Arduino
Program pentru BLDC Speed Control folosind Arduino
Trebuie să creăm un semnal PWM cu ciclu de funcționare variabil de la 0% la 100% cu o frecvență de 50Hz. Ciclul de funcționare trebuie controlat prin utilizarea unui potențiometru, astfel încât să putem controla viteza motorului. Codul pentru a face acest lucru este similar cu controlul servomotorelor, deoarece acestea necesită și un semnal PWM cu frecvență de 50Hz; prin urmare, folosim aceeași servotecă de la Arduino. Codul complet poate fi găsit în partea de jos a acestei pagini mai jos am explicat codul în fragmente mici. Și dacă sunteți nou la Arduino sau PWM, atunci, mai întâi treceți prin utilizarea PWM cu Arduino și controlul servo folosind Arduino.
Semnalul PWM poate fi generat numai pe pinii care acceptă PWM prin hardware, acești pin sunt în mod normal menționați cu un simbol ~. Pe Arduino UNO, pinul 9 poate genera semnal PWM, deci conectăm pinul de semnal ESC (fir portocaliu) la pinul 9 menționăm, de asemenea, același cod de han folosind următoarea linie
ESC.attach (9);
Trebuie să generăm semnal PWM cu ciclu de funcționare diferit de la 0% la 100%. Pentru un ciclu de funcționare de 0%, POT va emite 0V (0) și pentru un ciclu de funcționare de 100%, POT va produce 5V (1023). Aici potul este conectat la pinul A0, deci trebuie să citim tensiunea analogică de la POT utilizând funcția de citire analogică așa cum se arată mai jos
int throttle = analogRead (A0);
Apoi, trebuie să convertim valoarea de la 0 la 1023 la 0 la 180, deoarece valoarea 0 va genera 0% PWM și valoarea 180 va genera un ciclu de funcționare de 100%. Orice valoare peste 180 nu va avea sens. Deci, mapăm valoarea la 0-180 utilizând funcția de hartă așa cum se arată mai jos.
accelerație = hartă (accelerație, 0, 1023, 0, 180);
În cele din urmă, trebuie să trimitem această valoare funcției servo, astfel încât să poată genera semnalul PWM pe acel pin. Deoarece am numit obiectul servo ca ESC, codul va arăta așa mai jos, unde clapeta variabilă conține valoarea de la 0 la 180 pentru a controla ciclul de funcționare al semnalului PWM
ESC.write (accelerație);
Controlul motorului Arduino BLDC
Realizați conexiunile conform schemei de circuit și încărcați codul pe Arduino și porniți ESC. Asigurați-vă că ați montat motorul BLDC pe ceva, deoarece motorul va sări în jur când se rotește. Odată ce setarea este pornită, ESC-ul dvs. va emite un ton de întâmpinare și va continua să semnalizeze până când semnalul clapetei de accelerație se încadrează în limitele pragului, creșteți simplu POT de la 0V treptat și tonul de semnal sonor se va opri, aceasta înseamnă că acum oferim PWM semnalul peste valoarea pragului inferior și pe măsură ce creșteți, motorul va începe să se rotească încet. Cu cât furnizați mai multă tensiune, cu atât motorul va prinde mai multă viteză, în cele din urmă, când tensiunea va depăși limita superioară a pragului, motorul se va opri. Apoi puteți repeta procesul.
Funcționarea completă a acestui controler Arduino BLDC poate fi găsită și la linkul video de mai jos. Dacă v-ați confruntat cu vreo problemă la punerea în funcțiune, nu ezitați să folosiți secțiunea de comentarii sau să folosiți forumurile pentru mai mult ajutor tehnic.