Acasă / Știri / Știri din industrie / Motor BLDC cu Arduino: Ghid de cablare, cod și control
Știri din industrie
Amprenta noastră se întinde pe tot globul.
Oferim clienților produse și servicii de calitate din toată lumea.

Motor BLDC cu Arduino: Ghid de cablare, cod și control

Cum un ESC permite Arduino să controleze un motor BLDC

Un Arduino nu poate conduce direct cele trei faze ale unui motor BLDC - nu are capacitatea curentă sau logica de comutație încorporată. Acea sarcină revine ESC (Electronic Speed Controller), care se află între Arduino și motor, transformând un semnal PWM simplu în comutarea trifazată temporizată care învârte de fapt rotorul.

Din perspectiva lui Arduino, un ESC arată exact ca un servo RC standard. Se așteaptă un impuls între aproximativ 1000 și 2000 de microsecunde, repetat la fiecare 20 de milisecunde, unde lățimea pulsului este asociată cu poziția clapetei de accelerație. De aceea la fel Biblioteca servo folosit pentru servo-urile hobby funcționează pentru controlul ESC - Arduino nu vorbește deloc cu motorul, ci vorbește cu microcontrolerul de la bord al ESC, care se ocupă de comutația reală.

Conectarea unui Arduino la un motor BLDC prin ESC

Cele trei fire de motor de grosime mare se conectează de la motorul BLDC direct la ieșirile trifazate ale ESC - ordinea conectorilor nu contează pentru direcție în această etapă, deoarece schimbarea oricăror două fire doar inversează rotația. Puterea motorului (de obicei o baterie LiPo potrivită cu tensiunea nominală a motorului) se conectează la cablurile de intrare ale ESC, nu la Arduino.

Partea semnalului este mai simplă: un singur fir PWM de la un pin digital Arduino la intrarea de semnal a ESC, plus o masă comună între Arduino și ESC. Majoritatea ESC-urilor includ un BEC (Battery Eliminator Circuit) pe acel conector de semnal, care furnizează un 5V reglat înapoi la Arduino - ceea ce înseamnă că o sursă de alimentare separată pentru placă de obicei nu este necesară atâta timp cât ieșirea BEC a ESC-ului este evaluată pentru consumul de curent al Arduino.

Cod Arduino pentru controlul vitezei de bază

Cu cablajul în loc, codul în sine este scurt. Biblioteca Servo tratează ESC ca pe un servomotor și hărți de viteză pe același interval 0-180 pe care biblioteca îl folosește pentru unghi:

  • Atașați pinul de semnal ESC folosind ESC.attach(9, 1000, 2000) , setând în mod explicit intervalul de lățime a impulsului
  • Citiți un potențiometru pe un pin analog pentru controlul manual al vitezei
  • Mapați citirea analogică 0-1023 până la intervalul 0-180 la care se așteaptă ESC
  • Scrieți acea valoare mapată cu ESC.scriere (viteză) în interiorul buclei principale

Acest model funcționează deoarece formatul de semnal de bază este identic cu cel al unui servo hobby, așa cum este documentat în Referință la biblioteca Arduino Servo , care explică temporizarea pulsului și restricțiile de pin pe care se bazează biblioteca.

Armarea și calibrarea ESC-ului

Majoritatea ESC-urilor nu vor învârti motorul imediat după pornire - se așteaptă mai întâi o secvență de armare, de obicei declanșată prin menținerea semnalului de accelerație la minim timp de o secundă sau două după pornire. Omiterea acestui pas este cel mai frecvent motiv pentru care un motor pare să pornească pentru scurt timp la pornire și apoi să se oprească: ESC-ul așteaptă un semnal valid de accelerație scăzută înainte de a accepta comenzi.

Calibrarea stabilește înțelegerea de către ESC a lățimii minime și maxime a impulsului pentru a se potrivi cu ceea ce trimite de fapt Arduino. Porniți ESC-ul cu semnalul de accelerație deja la maxim, așteptați bipurile de confirmare, apoi coborâți la minim și așteptați din nou - acest lucru învață ESC-ul care sunt punctele finale exacte pe care le produce codul dvs., mai degrabă decât să se bazeze pe setările implicite din fabrică care ar putea să nu se potrivească cu domeniul mapat al potențiometrului.

BLDC cu senzori vs fără senzori: de ce vă schimbă configurația Arduino

Totul de mai sus presupune un motor BLDC fără senzori, asociat cu un ESC disponibil – cea mai comună configurație pentru hobby și motivul pentru care majoritatea tutorialelor o folosesc implicit. ESC detectează poziția rotorului din spatele EMF generat în faza nealimentată, ceea ce funcționează bine odată ce motorul se rotește, dar înseamnă că motorul are nevoie de o scurtă rampă de pornire în buclă deschisă înainte ca ESC să se poată bloca pe sincronizarea BEMF.

Un motor BLDC cu senzori adaugă trei senzori cu efect Hall care raportează direct poziția rotorului, chiar și la zero RPM. Acest lucru elimină rampa de pornire și oferă un control mai fluid la viteză mică, dar înseamnă, de asemenea, că ESC-ul sau controlerul trebuie să aibă intrări pentru senzori Hall - un ESC simplu fără senzori nu are cablaje pentru ele. Dacă un proiect are nevoie de un cuplu precis la viteză mică sau de porniri și opriri frecvente, aprovizionarea cu un motor cu senzori și un controler compatibil Hall de la început evită reelaborarea ulterioară a configurației de control.

R5 Fast response Brushless DC Motor Controller

De la prototipul Arduino la controlul motorului la nivel de producție

Un ESC bazat pe PWM este instrumentul potrivit pentru a demonstra un concept - este ieftin, bine documentat și nu necesită software de configurare. Dar are, de asemenea, limite reale: lipsa feedback-ului curent la Arduino, logica de protecție minimă și o rezoluție de control legată de o fereastră de impuls de 1000-2000 de microsecunde care nu se scalează bine odată ce controlul cuplului, reglarea vitezei în buclă închisă sau raportarea defecțiunilor devin cerințe.

Când un proiect trece dincolo de prototiparea către un produs în câmp, următorul pas obișnuit este un controler care comunică printr-o magistrală digitală, mai degrabă decât printr-o singură linie PWM. o interfață de depanare UART-TTL utilizată pentru a configura controlere de motor de producție joacă aici un rol similar cu monitorul serial Arduino - vă permite să citiți parametrii și să reglați comportamentul direct, mai degrabă decât să ghiciți numai din lățimile impulsurilor.

Pentru echipele care depășesc ESC-urile hobby, un punct de intrare în controlerele de motor BLDC programabile cu magistrala CAN ale APT oferă tipul de limitare a curentului configurabil și diagnosticare pe care un ESC de bază pur și simplu nu le expune. Aplicațiile care necesită un răspuns mai strict - brațe robotice, mecanisme acționate, orice cu o sarcină care se schimbă rapid - sunt mai bine deservite de un controler BLDC cu răspuns rapid, construit pentru aplicații în buclă închisă în timp real mai degrabă decât un ESC hobby în buclă deschisă.

Deoarece specificațiile controlerului și ale motorului trebuie să se alinieze la tensiune, curent și compatibilitatea senzorului Hall, merită revizuit Ghid de împerechere a controlerului și a motorului pentru potrivirea electronicii de antrenare la specificațiile motorului înainte de a vă angaja hardware pentru o execuție de producție. De asemenea, merită înțeles modul în care straturile software remodelează controlul motor modern , deoarece reglarea la nivel de firmware este tot mai mult ceea ce separă un controler de producție bun de unul pur și simplu adecvat.



Sunteți interesat de cooperare sau aveți întrebări?
  • Trimiteți cererea {$config.cms_name}