Hjem / Nyheter / Bransjenyheter / BLDC-motor med Arduino: veiledning for kabling, kode og kontroll
Bransjenyheter
Vårt fotavtrykk spenner over hele verden.
Vi leverer kvalitetsprodukter og tjenester til kunder fra hele verden.

BLDC-motor med Arduino: veiledning for kabling, kode og kontroll

Hvordan en ESC lar Arduino kontrollere en BLDC-motor

En Arduino kan ikke drive en BLDC-motors tre faser direkte — den har ikke gjeldende kapasitet eller kommuteringslogikken innebygd. Den jobben tilfaller ESC (Electronic Speed Controller), som sitter mellom Arduinoen og motoren, og konverterer et enkelt PWM-signal til den tidsstyrte trefasesvitsjen som faktisk snurrer rotoren.

Fra Arduinos perspektiv ser en ESC ut akkurat som en standard RC-servo. Den forventer en puls mellom omtrent 1000 og 2000 mikrosekunder, gjentatt hvert 20. millisekund, der pulsbredden kartlegges til gassposisjon. Det er derfor det samme Servo bibliotek brukt til hobbyservoer fungerer for ESC-kontroll — Arduinoen snakker ikke til motoren i det hele tatt, den snakker med ESCs innebygde mikrokontroller, som håndterer selve kommuteringen.

Koble en Arduino til en BLDC-motor via ESC

De tre tunge motorledningene kobles fra BLDC-motoren rett til ESCs trefaseutganger - koblingsrekkefølgen spiller ingen rolle for retning på dette stadiet, siden bytte av to ledninger bare reverserer rotasjonen. Motorkraft (vanligvis et LiPo-batteri tilpasset motorens spenningsklassifisering) kobles til ESCs inngangsledninger, ikke til Arduino.

Signalsiden er enklere: en enkelt PWM-ledning fra en Arduino digital pin til ESCs signalinngang, pluss en delt jording mellom Arduino og ESC. De fleste ESC-er inkluderer en BEC (Battery Eliminator Circuit) på den signalkontakten, som leverer en regulert 5V tilbake til Arduino - noe som betyr at en separat strømforsyning for brettet vanligvis ikke er nødvendig så lenge ESCs BEC-utgang er vurdert for Arduinos strømtrekk.

Arduino-kode for grunnleggende hastighetskontroll

Med ledninger på plass er selve koden kort. Servo-biblioteket behandler ESC som en servomotor, og hastighetskart til det samme området 0-180 som biblioteket bruker for vinkel:

  • Fest ESC-signalpinnen ved hjelp av ESC.attach(9, 1000, 2000) , angi pulsbreddeområdet eksplisitt
  • Les et potensiometer på en analog pinne for manuell hastighetskontroll
  • Kartlegg den analoge avlesningen 0-1023 ned til 0-180-området ESC forventer
  • Skriv den kartlagte verdien med ESC.write(speed) inne i hovedsløyfen

Dette mønsteret fungerer fordi det underliggende signalformatet er identisk med en hobbyservo, som dokumentert i Arduino Servo bibliotekreferanse , som forklarer pulstiming og pin-begrensninger biblioteket er avhengig av.

Tilkobling og kalibrering av ESC

De fleste ESC-er vil ikke snurre motoren umiddelbart etter oppstart - de forventer en tilkoblingssekvens først, vanligvis utløst ved å holde gasssignalet på minimum i et sekund eller to etter oppstart. Å hoppe over dette trinnet er den vanligste årsaken til at en motor ser ut til å starte kort ved oppstart og deretter stoppe: ESC venter på et gyldig lavgasssignal før den godtar kommandoer.

Kalibrering setter ESCs forståelse av minimum og maksimum pulsbredde for å matche det Arduino faktisk sender. Slå på ESC med gasssignalet allerede på maksimum, vent på bekreftelsespipene, slipp deretter til minimum og vent igjen - dette lærer ESC de eksakte endepunktene koden din produserer, i stedet for å stole på fabrikkinnstillinger som kanskje ikke samsvarer med potensiometerets kartlagte rekkevidde.

Sensored vs Sensorless BLDC: Hvorfor det endrer Arduino-oppsettet ditt

Alt ovenfor forutsetter en sensorløs BLDC-motor sammen med en hyllevare ESC - det vanligste hobbyoppsettet, og grunnen til at de fleste opplæringsprogrammer ikke bruker det. ESC oppdager rotorposisjon fra bak-EMF generert i den ikke-drevne fasen, noe som fungerer bra når motoren snurrer, men betyr at motoren trenger en kort åpen oppstartsrampe før ESC kan låse seg på BEMF-timing.

En sensorert BLDC-motor legger til tre Hall-effektsensorer som rapporterer rotorposisjon direkte, selv ved null RPM. Det eliminerer oppstartsrampen og gir jevnere lavhastighetskontroll, men det betyr også at ESC eller kontrolleren må ha Hall-sensorinnganger - en vanlig sensorløs ESC har ingen ledninger for dem i det hele tatt. Hvis et prosjekt trenger presist dreiemoment med lav hastighet eller hyppige starter og stopp, unngår du å omarbeide kontrolloppsettet senere ved å kjøpe en sensormotor og Hall-kompatibel kontroller fra begynnelsen.

R5 Fast response Brushless DC Motor Controller

Fra Arduino-prototype til produksjonsklasse motorkontroll

En PWM-drevet ESC er det riktige verktøyet for å bevise et konsept – det er billig, godt dokumentert og trenger ingen konfigurasjonsprogramvare. Men den har også reelle grenser: ingen nåværende tilbakemelding til Arduino, minimal beskyttelseslogikk og en kontrolloppløsning knyttet til et 1000-2000 mikrosekunders pulsvindu som ikke skalerer godt når momentkontroll, lukket sløyfehastighetsregulering eller feilrapportering blir krav.

Når et prosjekt går forbi prototyping mot et feltprodukt, er det vanlige neste trinnet en kontroller som kommuniserer over en digital buss i stedet for en enkelt PWM-linje. et UART-TTL-feilsøkingsgrensesnitt som brukes til å konfigurere produksjonsmotorkontrollere spiller en rolle her som ligner på Arduino seriell monitor - den lar deg lese parametere og justere oppførsel direkte i stedet for å gjette fra pulsbredder alene.

For team som vokser ut av hobby-ESC-er, et inngangspunkt til APTs CAN-buss-programmerbare BLDC-motorkontrollere tilbyr den typen konfigurerbar strømbegrensning og diagnostikk som en grunnleggende ESC rett og slett ikke avslører. Applikasjoner som trenger strammere respons – robotarmer, aktiverte mekanismer, alt med en raskt skiftende last – er bedre tjent med en hurtigrespons BLDC-kontroller bygget for sanntids lukkede sløyfeapplikasjoner heller enn en åpen sløyfe hobby ESC.

Siden kontroller- og motorspesifikasjoner må justeres etter spenning, strøm og Hall-sensorkompatibilitet, er det verdt å vurdere kontroller og motorparingsveiledning for å matche drivelektronikken til motorspesifikasjonene før du forplikter deg til maskinvare for en produksjonskjøring. Det er også verdt å forstå hvordan programvarelag omformer moderne motorkontroll , siden tuning på fastvarenivå i økende grad er det som skiller en god produksjonskontroller fra en bare adekvat.



Interessert i samarbeid eller har spørsmål?