Thuis / Nieuws / Industrie nieuws / BLDC-motor met Arduino: bedrading, code en bedieningsgids
Industrie nieuws
Onze voetafdruk omvat de hele wereld.
Wij leveren kwaliteitsproducten en -diensten aan klanten van over de hele wereld.

BLDC-motor met Arduino: bedrading, code en bedieningsgids

Hoe een ESC Arduino een BLDC-motor laat besturen

Een Arduino kan de drie fasen van een BLDC-motor niet rechtstreeks aansturen - hij heeft niet de huidige capaciteit of de ingebouwde commutatielogica. Die taak ligt bij de ESC (Electronic Speed Controller), die zich tussen de Arduino en de motor bevindt en een eenvoudig PWM-signaal omzet in de getimede driefasige schakeling die feitelijk de rotor laat draaien.

Vanuit het perspectief van de Arduino lijkt een ESC precies op een standaard RC-servo. Het verwacht een puls tussen ongeveer 1000 en 2000 microseconden, die elke 20 milliseconden wordt herhaald, waarbij de pulsbreedte overeenkomt met de gaskleppositie. Daarom hetzelfde Servo-bibliotheek gebruikt voor hobbyservo's werkt voor ESC-besturing - de Arduino praat helemaal niet met de motor, hij praat met de ingebouwde microcontroller van de ESC, die de daadwerkelijke commutatie afhandelt.

Een Arduino via ESC aansluiten op een BLDC-motor

De drie zware motordraden zijn vanaf de BLDC-motor rechtstreeks verbonden met de driefasige uitgangen van de ESC. De volgorde van de connectoren maakt in dit stadium niet uit voor de richting, omdat het verwisselen van twee draden de rotatie alleen maar omkeert. Motorvermogen (meestal een LiPo-batterij die is afgestemd op de spanning van de motor) wordt aangesloten op de ingangskabels van de ESC, niet op de Arduino.

De signaalzijde is eenvoudiger: een enkele PWM-draad van een digitale Arduino-pin naar de signaalingang van de ESC, plus een gedeelde aarde tussen Arduino en ESC. De meeste ESC's bevatten een BEC (Battery Eliminator Circuit) op die signaalconnector, die een gereguleerde 5V teruglevert aan de Arduino - wat betekent dat een aparte voeding voor het bord meestal niet nodig is zolang de BEC-uitgang van de ESC geschikt is voor de stroomafname van de Arduino.

Arduino-code voor basissnelheidsregeling

Als de bedrading aanwezig is, is de code zelf kort. De servobibliotheek behandelt de ESC als een servomotor en de snelheid wordt toegewezen aan hetzelfde bereik van 0-180 dat de bibliotheek gebruikt voor de hoek:

  • Bevestig de ESC-signaalpin met behulp van ESC.attach(9, 1000, 2000) , waarbij het pulsbreedtebereik expliciet wordt ingesteld
  • Lees een potentiometer op een analoge pin voor handmatige snelheidsregeling
  • Breng de analoge waarde van 0-1023 in kaart naar het bereik van 0-180 dat de ESC verwacht
  • Schrijf die toegewezen waarde met ESC.write(snelheid) binnen de hoofdlus

Dit patroon werkt omdat het onderliggende signaalformaat identiek is aan dat van een hobbyservo, zoals gedocumenteerd in de Arduino Servobibliotheekreferentie , wat de pulstiming en pinbeperkingen verklaart waarop de bibliotheek vertrouwt.

De ESC inschakelen en kalibreren

De meeste ESC's laten de motor niet onmiddellijk na het opstarten draaien - ze verwachten eerst een inschakelsequentie, meestal geactiveerd door het gaspedaalsignaal gedurende een seconde of twee na het opstarten op minimum te houden. Het overslaan van deze stap is de meest voorkomende reden dat een motor bij het opstarten even lijkt te starten en vervolgens stopt: de ESC wacht op een geldig signaal voor laag gas geven voordat hij opdrachten accepteert.

Kalibratie zorgt ervoor dat het ESC-begrip van de minimale en maximale pulsbreedte overeenkomt met wat de Arduino daadwerkelijk verzendt. Zet de ESC aan met het gaspedaal al op maximum, wacht op de bevestigingspiepjes, ga dan naar het minimum en wacht opnieuw - dit leert de ESC de exacte eindpunten die uw code produceert, in plaats van te vertrouwen op fabrieksinstellingen die mogelijk niet overeenkomen met het toegewezen bereik van uw potentiometer.

Sensored vs Sensorless BLDC: waarom het uw Arduino-installatie verandert

Alles hierboven gaat uit van een sensorloze BLDC-motor gecombineerd met een kant-en-klare ESC - de meest voorkomende hobbyistenopstelling en de reden waarom de meeste tutorials er standaard op ingaan. De ESC detecteert de rotorpositie van tegen-EMF die wordt gegenereerd in de niet-aangedreven fase, wat goed werkt zodra de motor draait, maar betekent dat de motor een korte opstarthelling met open lus nodig heeft voordat de ESC kan vergrendelen op de BEMF-timing.

Een BLDC-motor met sensor voegt drie Hall-effectsensoren toe die de rotorpositie direct rapporteren, zelfs bij nul toerental. Dat elimineert de opstarthelling en zorgt voor een soepelere regeling bij lage snelheden, maar het betekent ook dat de ESC of controller Hall-sensoringangen moet hebben - een gewone sensorloze ESC heeft helemaal geen bedrading daarvoor. Als een project een nauwkeurig koppel bij lage snelheid of veelvuldig starten en stoppen nodig heeft, voorkomt het vanaf het begin aanschaffen van een sensormotor en een Hall-compatibele controller dat de besturingsopstelling later opnieuw moet worden bewerkt.

R5 Fast response Brushless DC Motor Controller

Van Arduino-prototype tot motorbesturing op productieniveau

Een PWM-aangedreven ESC is het juiste hulpmiddel om een concept te bewijzen: het is goedkoop, goed gedocumenteerd en vereist geen configuratiesoftware. Maar het heeft ook echte beperkingen: geen stroomfeedback naar de Arduino, minimale beschermingslogica en een besturingsresolutie die is gekoppeld aan een pulsvenster van 1000-2000 microseconden dat niet goed schaalt zodra koppelregeling, snelheidsregeling met gesloten lus of foutrapportage vereisten worden.

Wanneer een project voorbij het prototypen gaat en richting een product in de praktijk gaat, is de gebruikelijke volgende stap een controller die communiceert via een digitale bus in plaats van via een enkele PWM-lijn. een UART-TTL-foutopsporingsinterface die wordt gebruikt om productiemotorcontrollers te configureren speelt hier een rol die vergelijkbaar is met de seriële monitor van Arduino: hiermee kunt u parameters lezen en gedrag rechtstreeks afstemmen in plaats van alleen op basis van pulsbreedtes te raden.

Voor teams die hobby-ESC's ontgroeien, een toegangspunt tot de CAN-bus-programmeerbare BLDC-motorcontrollers van APT biedt het soort configureerbare stroombegrenzing en diagnostiek die een standaard ESC eenvoudigweg niet blootlegt. Toepassingen die een strakkere respons vereisen – robotarmen, bediende mechanismen, alles met een snel veranderende belasting – worden beter bediend door een snel reagerende BLDC-controller gebouwd voor real-time closed-loop-toepassingen in plaats van een open-loop hobby-ESC.

Omdat de specificaties van de controller en de motor moeten worden afgestemd op de compatibiliteit van spanning, stroom en Hall-sensoren, is het de moeite waard om dit te bekijken Begeleiding bij het koppelen van controllers en motoren voor het afstemmen van de aandrijfelektronica op de motorspecificaties voordat u hardware aanschaft voor een productierun. Het is ook de moeite waard om te begrijpen hoe softwarelagen de moderne motorische controle hervormen , aangezien afstemming op firmwareniveau steeds meer het onderscheid maakt tussen een goede productiecontroller en een louter adequate.



Interesse in samenwerking of vragen?
  • Verzoek indienen {$config.cms_name}