- Material som krävs
- Förstå BLDC Motors
- Varför använder Drones och andra multikoprar BLDC-motorer?
- Varför behöver vi ett ESC och vilken funktion har det?
- Några vanliga termer med BLDC och ESC: s:
- Arduino BLDC Motor Control Circuit Diagram
- Program för BLDC hastighetskontroll med Arduino
- Arduino BLDC Motor Control
Att bygga saker och få dem att fungera, som vi vill, har alltid varit jättekul. Medan det överenskommits skulle bygga saker som kunde flyga trotsigt pumpa lite mer ångest bland hobbyisterna och hårdvarutinkarna. ja! Jag pratar om segelflygplan, helikoptrar, flygplan och huvudsakligen multikoprar. Idag har det blivit väldigt enkelt att bygga en på egen hand på grund av gemenskapsstödet tillgängligt online. En vanlig sak med alla saker som flyger är att de använder en BLDC-motor, så vad är den här BLDC-motorn? Varför behöver vi det för att flyga saker? Vad är så speciellt med det? Hur köper jag rätt motor och gränssnitt med din controller? Vad är ett ESC och varför använder vi det? Om du har frågor som dessa är den här guiden din enda lösning.
Så i grund och botten i denna handledning kommer vi att kontrollera borstlös motor med Arduino. Här används A2212 / 13T sensorfri BLDC- outrunner-motor med en 20A Electronic Speed Controller (ESC). Denna motor används ofta för att bygga drönare.
Material som krävs
- A2212 / 13T BLDC-motor
- ESC (20A)
- Strömkälla (12V 20A)
- Arduino
- Potentiometer
Förstå BLDC Motors
BLDC Motor står för Brush Less DC-motor, den används ofta i takfläktar och elfordon på grund av dess smidiga drift. Användning av BLDC-motorer i elfordon har tidigare förklarats i detalj. Till skillnad från andra motorer har BLDC-motorerna tre ledningar som kommer ut ur dem och varje tråd bildar sin egen fas vilket ger oss en trefasmotor. Vänta, va!!??
Ja, även om BLDC-motorer anses vara likströmsmotorer, fungerar de med hjälp av pulsade vågor. Den elektroniska hastighetsregulatorn (ESC) omvandlar likspänningen från batteriet till pulser och förser den till motorns 3 ledningar. Vid varje given tidpunkt kommer endast två faser av motorn att drivas, så att strömmen kommer in genom en fas och går igenom den andra. Under denna process aktiveras spolen inuti motorn och följaktligen inriktar magneterna på rotorn sig mot den spänningssatta spolen. Sedan aktiveras de nästa två ledningarna av ESC, denna process fortsätter för att få motorn att rotera. Motorns hastighet beror på hur snabbt spolen matas och motorns riktning beror på i vilken ordning spolarna är strömförande. Vi lär oss mer om ESC senare i den här artikeln.
Det finns många typer av BLDC-motorer tillgängliga, låt oss titta på de vanligaste klassificeringarna.
In-runner och Out-Runner BLDC-motor: I runner BLDC-motorer fungerar som alla andra motorer. Det är axeln inuti motorn som roterar medan höljet förblir fast. Medan BLDC-motorerna är precis tvärtom, roterar motorns yttre hölje tillsammans med axeln medan spolen inuti förblir fast. Out-runner-motorer är mycket fördelar med elektriska cyklar eftersom det yttre höljet (det som roterar) görs till en fälg för däcken och därmed undviks en kopplingsmekanism. Även de utgående löparmotorerna tenderar att ge mer vridmoment än i löpartyper, därför blir det ett idealiskt val i EV och Drones. Den som vi använder här är också en typ av löpare.
Obs! Det finns en annan typ av motor som kallas de kärnlösa BLDC-motorerna som också används för pocket-drönare, de har en annan arbetsprincip, men låt oss nu hoppa över den för denna handledning.
Sensor och sensorlös BLDC-motor: För att en BLDC-motor ska kunna rotera utan ryck krävs återkoppling. Det vill säga ESC måste känna till magneternas position och pol i rotorn för att aktivera statorn enligt. Denna information kan förvärvas på två sätt; en är genom att placera hallsensorn inuti motorn. Hallsensorn kommer att upptäcka magneten och skicka informationen till ESC. Denna typ av motor kallas Sensord BLDC-motor och används i elektriska fordon. Den andra metoden är att använda den bakre EMF som genereras av spolarna när magneterna korsar dem, detta krävde inte ytterligare hårdvara eller kablar, själva fasledningen används som återkoppling för att kontrollera om EMF är tillbaka. Denna metod används i vår motor och är vanlig för drönare och andra flygprojekt.
Varför använder Drones och andra multikoprar BLDC-motorer?
Det finns många typer av coola drönare där ute från Quad copter till helikoptrar och segelflygplan, allt har en hårdvara gemensamt. Det är BLDC-motorerna, men varför? Varför använder de en BLDC-motor som är lite dyr jämfört med DC-motorer?
Det finns en hel del giltiga skäl till detta, en huvudorsak är att vridmomentet som tillhandahålls av dessa motorer är mycket högt, vilket är mycket viktigt att snabbt få / lösa dragkraft för att ta av eller landa ner en drönare. Dessa motorer finns också som löpare, vilket åter ökar motorernas dragkraft. En annan anledning till utvald BLDC-motor är dess smidiga vibrations mindre funktion, det här är mycket idealiskt för vår drönare som är stabil i luften.
Den effekt till viktförhållande av en BLDC motor är mycket hög. Detta är mycket viktigt eftersom motorerna som används på drönare ska ha hög effekt (hög hastighet och högt vridmoment) men också bör ha mindre vikt. En likströmsmotor som kan ge samma vridmoment och hastighet som en BLDC-motor kommer att vara dubbelt så tung som BLDC-motorn.
Varför behöver vi ett ESC och vilken funktion har det?
Som vi vet kräver varje BLDC-motor någon form av styrenhet för att omvandla likspänningen från batteriet till pulser för att driva motorns fasledningar. Denna styrenhet kallas en ESC som står för Electronic Speed Controller. Styrenhetens huvudansvar är att driva på fasledningarna till BLDC-motorerna i en ordning så att motorn roterar. Detta görs genom att känna av den bakre EMF från varje tråd och aktivera spolen exakt när magneten korsar spolen. Så det finns mycket hårdvarubriljans inuti ESC som inte omfattas av denna handledning. Men för att nämna några har den hastighetsregulator och en batterilimineringskrets.
PWM-baserad hastighetskontroll: ESC kan styra hastigheten på BLDC-motorn genom att läsa PWM-signalen som tillhandahålls på den orange ledningen. Den fungerar väldigt lika servomotorer, den medföljande PWM-signalen bör ha en period på 20 ms och arbetscykeln kan varieras för att variera hastigheten på BLDC-motorn. Eftersom samma logik också gäller servomotorerna för att styra positionen kan vi använda samma servobibliotek i vårt Arduino-program. Lär dig att använda Servo med Arduino här.
Battery Eliminator Circuit (BEC): Nästan alla ESC: er levereras med en Battery eliminator-krets. Som namnet antyder eliminerar denna krets behov av separat batteri för mikrokontroller, i det här fallet behöver vi inte en separat strömförsörjning för att driva vår Arduino; ESC själv kommer att tillhandahålla en reglerad + 5V som kan användas för att driva vår Arduino. Det finns många typer av kretsar som reglerar denna spänning normalt, det kommer att vara linjär reglering på billiga ESC: er, men du kan också hitta sådana med omkopplingskretsar.
Firmware: Varje ESC har ett firmwareprogram skrivet av tillverkarna. Denna firmware avgör i hög grad hur din ESC svarar; en del av den populära firmware är traditionell, Simon-K och BL-Heli. Denna firmware är också användarprogrammerbar men vi kommer inte att komma in på mycket av det i denna handledning.
Några vanliga termer med BLDC och ESC: s:
Om du precis har börjat arbeta med BLDC-motorer kan du förmodligen ha stött på termerna som bromsning, mjukstart, motorriktning, lågspänning, svarstid och avancering. Låt oss ta en titt på vad dessa termer betyder.
Bromsning: Bromsning är förmågan hos din BLDC-motor att sluta rotera så snart gasen har tagits bort. Denna förmåga är mycket viktig för multi-copters eftersom de måste ändra sin RPM oftare för att manövrera i luften.
Mjukstart: Mjukstart är en viktig funktion att tänka på när din BLDC-motor är kopplad till växlar. När en motor har mjukstart aktiverad kommer den inte att rotera mycket snabbt plötsligt, det kommer alltid att öka hastigheten oavsett hur snabbt gasen gavs. Detta hjälper oss att minska slitaget på kugghjulen som är anslutna till motorerna (om sådana finns).
Motorriktning: Motorriktningen i BLDC-motorer ändras normalt inte under drift. Men vid montering kan användaren behöva ändra motorns riktning. Det enklaste sättet att ändra motorriktning är att helt enkelt byta ut två ledningar i motorn.
Lågspänningsstopp: När vi väl är kalibrerade behöver vi alltid våra BLDC-motorer med samma hastighet för ett visst gasvärde. Men detta är svårt att uppnå eftersom motorerna tenderar att minska varvtalet för samma gasvärde som batterispänningen minskar. För att undvika detta programmerar vi normalt ESC att sluta fungera när batterispänningen har nått under tröskelvärdet. Denna funktion kallas Low Voltage Stop och är användbar i drönare.
Svarstid: Motorns förmåga att snabbt ändra sin hastighet baserat på gasreglaget kallas svarstid. Ju mindre svarstiden är desto bättre blir kontrollen.
Advance: Advance är ett problem eller mer som ett fel med BLDC-motorer. Alla BLDC-motorer har lite framsteg i sig. Det är när statorspolarna aktiveras rotorn dras mot den på grund av den permanenta magneten som finns på dem. Efter att ha dragits till sig tenderar rotorn att röra sig lite mer framåt i samma riktning innan spolen slås av och sedan spolar nästa. Denna rörelse kallas "Advance" och den kommer att skapa problem som skakningar, uppvärmning, buller etc. Så detta är något som en bra ESC bör undvika på egen hand.
Okej, tillräckligt med teori låt oss nu komma igång med hårdvaran genom att ansluta motorn till Arduino.
Arduino BLDC Motor Control Circuit Diagram
Nedan visas kretsschemat för att styra borstlös motor med Arduino:
Anslutningen för gränssnitt mellan BLDC-motor och Arduino är ganska rak framåt. ESC behöver en strömkälla på minst 12V och 5A. I denna handledning har jag använt min RPS som en strömkälla men du kan också använda ett Li-Po-batteri för att driva ESC. ESF: s trefasledningar ska anslutas till motorernas trefasledningar, det finns ingen ordning att ansluta dessa ledningar, du kan ansluta dem i valfri ordning.
Varning: Vissa ESC kommer inte att ha några kontakter, se till att din anslutning är solid och skydda de exponerade ledningarna med hjälp av isoleringstejp. Eftersom det kommer att vara hög ström som passerar genom faserna, kan en kortslutning leda till permanent skada på ESC och motor.
Den BEC (Batteri eliminator krets) i ESC självt kommer att reglera en + 5V, som kan användas för att driva upp Arduino Board. Slutligen för att ställa in hastigheten på BLDC-motorn använder vi också en potentiometer ansluten till A0-stift på Arduino
Program för BLDC hastighetskontroll med Arduino
Vi måste skapa en PWM-signal med varierande arbetscykel från 0% till 100% med en frekvens på 50Hz. Arbetscykeln bör kontrolleras med en potentiometer så att vi kan styra motorns hastighet. Koden för att göra detta liknar styrning av servomotorerna eftersom de också kräver en PWM-signal med 50Hz-frekvens; därför använder vi samma servobibliotek från Arduino. Den fullständiga koden finns längst ner på denna sida längre ner. Jag förklarar koden i små utdrag. Och om du är ny på Arduino eller PWM, gå först igenom att använda PWM med Arduino och kontrollera servo med Arduino.
PWM-signalen kan endast genereras på stiften som stöder PWM av hårdvara, dessa stift nämns normalt med en ~ -symbol. På Arduino UNO kan stift 9 generera PWM-signal så att vi ansluter ESC-signalstiftet (orange ledning) till stift 9, vi nämner också samma innkod genom att använda följande rad
ESC.attach (9);
Vi måste generera PWM-signal med varierande arbetscykel från 0% till 100%. För 0% arbetscykel matar POT ut 0V (0) och för 100% arbetscykel matar POT ut 5V (1023). Här är potten ansluten till stift A0, så vi måste läsa den analoga spänningen från POT med hjälp av den analoga läsfunktionen som visas nedan
introttle = analogRead (A0);
Då måste vi konvertera värdet från 0 till 1023 till 0 till 180 eftersom värdet 0 genererar 0% PWM och värdet 180 genererar 100% arbetscykel. Alla värden över 180 ger ingen mening. Så vi kartlägger värdet till 0-180 med hjälp av kartfunktionen som visas nedan.
gas = karta (gas, 0, 1023, 0, 180);
Slutligen måste vi skicka detta värde till servofunktionen så att den kan generera PWM-signalen på den stiften. Eftersom vi har nämnt servoobjekt som ESC kommer koden att se ut så här nedan, där variabel gasreglage innehåller värdet 0-180 för att styra PWM-signalens arbetscykel
ESC.write (gas);
Arduino BLDC Motor Control
Gör anslutningarna enligt kretsschemat och ladda upp koden till Arduino och slå på ESC. Se till att du har monterat BLDC-motorn på något eftersom motorn kommer att hoppa runt när den roterar. När installationen är påslagen kommer din ESC att göra en välkomstton och fortsätter att pipa tills gassignalen ligger inom tröskelvärdena, enkelt öka POT från 0V gradvis och piptonen kommer att stoppa, det betyder att vi nu tillhandahåller PWM över det lägre tröskelvärdet och när du ökar ytterligare kommer din motor att börja rotera långsamt. Ju mer spänning du ger desto högre hastighet tar motorn upp, slutligen när spänningen når över den övre tröskelvärdet stannar motorn. Du kan sedan upprepa processen.
Komplett arbete med denna Arduino BLDC-kontroller kan också hittas på videolänken nedan. Om du hade haft problem med att få detta att fungera är du välkommen att använda kommentarsektionen eller använda forumen för mer teknisk hjälp.