Hem / Nyheter / Branschnyheter / BLDC-motor med Arduino: Wiring, Code & Control Guide
Branschnyheter
Vårt fotavtryck spänner över hela världen.
Vi tillhandahåller kvalitetsprodukter och tjänster till kunder från hela världen.

BLDC-motor med Arduino: Wiring, Code & Control Guide

Hur en ESC låter Arduino styra en BLDC-motor

En Arduino kan inte driva en BLDC-motors tre faser direkt — den har inte den aktuella kapaciteten eller kommuteringslogiken inbyggd. Det jobbet faller på ESC (Electronic Speed Controller), som sitter mellan Arduino och motorn och omvandlar en enkel PWM-signal till den tidsinställda trefasväxlingen som faktiskt snurrar rotorn.

Ur Arduinos perspektiv ser en ESC exakt ut som en vanlig RC-servo. Den förväntar sig en puls mellan ungefär 1 000 och 2 000 mikrosekunder, som upprepas var 20:e millisekund, där pulsbredden avbildas till gasläget. Det är därför samma sak Servo bibliotek används för hobbyservon fungerar för ESC-kontroll — Arduino pratar inte med motorn alls, den pratar med ESC:s inbyggda mikrokontroller, som hanterar själva kommuteringen.

Anslut en Arduino till en BLDC-motor via ESC

De tre tunga motortrådarna ansluter från BLDC-motorn direkt till ESC:s trefasutgångar - kontaktordningen spelar ingen roll för riktningen i detta skede, eftersom byte av två kablar bara omvänder rotationen. Motorkraft (vanligtvis ett LiPo-batteri anpassat till motorns spänningsklass) ansluts till ESC:s ingångsledningar, inte till Arduino.

Signalsidan är enklare: en enda PWM-ledning från ett Arduino digitalt stift till ESC:s signalingång, plus en delad jord mellan Arduino och ESC. De flesta ESC:er inkluderar en BEC (Battery Eliminator Circuit) på den signalkontakten, som förser en reglerad 5V tillbaka till Arduino - vilket innebär att en separat strömförsörjning för kortet vanligtvis inte är nödvändig så länge som ESC:s BEC-utgång är klassad för Arduinos strömdrag.

Arduino-kod för grundläggande hastighetskontroll

Med ledningar på plats är själva koden kort. Servobiblioteket behandlar ESC som en servomotor och hastighetskartor på samma 0-180-intervall som biblioteket använder för vinkel:

  • Fäst ESC-signalstiftet med ESC.attach(9, 1000, 2000) , ställ in pulsbreddsintervallet explicit
  • Läs av en potentiometer på en analog stift för manuell hastighetskontroll
  • Kartlägg den analoga avläsningen 0-1023 till intervallet 0-180 som ESC förväntar sig
  • Skriv det mappade värdet med ESC.write(speed) inuti huvudslingan

Detta mönster fungerar eftersom det underliggande signalformatet är identiskt med en hobbyservons, som dokumenterats i Arduino Servo biblioteksreferens , som förklarar pulstimingen och stiftbegränsningarna som biblioteket förlitar sig på.

Armering och kalibrering av ESC

De flesta ESC:er kommer inte att snurra motorn omedelbart efter uppstart - de förväntar sig en tillkopplingssekvens först, vanligtvis utlöses genom att hålla gasreglaget minst en sekund eller två efter start. Att hoppa över det här steget är den vanligaste anledningen till att en motor verkar starta kort vid start och sedan stanna: ESC väntar på en giltig låggassignal innan den accepterar kommandon.

Kalibrering ställer in ESC:s förståelse av minsta och maximala pulsbredd för att matcha vad Arduino faktiskt skickar. Slå på ESC:n med gasreglaget redan på maximalt, vänta på bekräftelsepipen, sänk sedan till minimum och vänta igen - detta lär ESC de exakta ändpunkterna din kod producerar, snarare än att förlita sig på fabriksinställningar som kanske inte matchar din potentiometers mappade räckvidd.

Sensored vs Sensorless BLDC: Varför det ändrar din Arduino-inställning

Allt ovan förutsätter en sensorlös BLDC-motor parad med en standard ESC - den vanligaste hobbyinställningen, och anledningen till att de flesta tutorials använder det som standard. ESC upptäcker rotorpositionen från bak-EMF som genereras i den strömlösa fasen, vilket fungerar bra när motorn snurrar men betyder att motorn behöver en kort startramp med öppen slinga innan ESC kan låsa på BEMF-timing.

En sensorad BLDC-motor lägger till tre Hall-effektsensorer som rapporterar rotorns position direkt, även vid noll varv/min. Det eliminerar startrampen och ger mjukare låghastighetskontroll, men det betyder också att ESC eller styrenhet måste ha Hall-sensoringångar - en vanlig sensorlös ESC har inga ledningar för dem alls. Om ett projekt behöver exakt låghastighetsvridmoment eller frekventa starter och stopp, undviker man från början att omarbeta styrinställningen senare genom att köpa en sensormotor och Hall-kompatibel styrenhet.

R5 Fast response Brushless DC Motor Controller

Från Arduino-prototyp till motorstyrning i produktionsklass

En PWM-driven ESC är det rätta verktyget för att bevisa ett koncept – det är billigt, väldokumenterat och behöver ingen konfigurationsprogramvara. Men den har också verkliga begränsningar: ingen aktuell återkoppling till Arduino, minimal skyddslogik och en kontrollupplösning kopplad till ett 1000-2000 mikrosekunders pulsfönster som inte skalar bra när vridmomentkontroll, sluten varvtalsreglering eller felrapportering blir krav.

När ett projekt går förbi prototypframställning mot en fältprodukt, är det vanliga nästa steget en styrenhet som kommunicerar över en digital buss snarare än en enda PWM-linje. ett UART-TTL-felsökningsgränssnitt som används för att konfigurera produktionsmotorstyrenheter spelar en roll här som liknar Arduinos seriella monitor — den låter dig läsa parametrar och justera beteende direkt istället för att gissa från enbart pulsbredder.

För team som växer ur hobby-ESC, en ingångspunkt till APT:s CAN-bus-programmerbara BLDC-motorstyrenheter erbjuder den typ av konfigurerbar strömbegränsning och diagnostik som en grundläggande ESC helt enkelt inte exponerar. Applikationer som kräver snävare respons – robotarmar, manövrerade mekanismer, allt med en snabbt föränderlig belastning – betjänas bättre av en snabbsvars BLDC-styrenhet byggd för applikationer med slutna kretsar i realtid snarare än en öppen hobby-ESC.

Eftersom kontroller och motorspecifikationer måste anpassas till spänning, ström och Hall-sensorkompatibilitet, är det värt att granska styrenhet och motorparningsguide för att matcha drivelektroniken till motorspecifikationerna innan du bestämmer dig för hårdvara för en produktionskörning. Det är också värt att förstå hur mjukvarulager omformar modern motorstyrning , eftersom inställning på firmwarenivå i allt högre grad är det som skiljer en bra produktionsstyrenhet från en bara adekvat.



Intresserad av samarbete eller har frågor?