- Erforderliche Materialien
- Grundlegendes zu BLDC-Motoren
- Warum verwenden Drohnen und andere Multi-Copter BLDC-Motoren?
- Warum brauchen wir einen ESC und welche Funktion hat er?
- Einige gebräuchliche Begriffe mit BLDC und ESC:
- Schaltplan der Arduino BLDC-Motorsteuerung
- Programm zur BLDC-Geschwindigkeitsregelung mit Arduino
- Arduino BLDC Motorsteuerung
Es hat immer Spaß gemacht, Dinge zu bauen und zum Laufen zu bringen, wie wir es wollen. Während dies vereinbart wurde, würde das Bauen von Sachen, die fliegen könnten, trotzig ein bisschen mehr Angst unter den Hobbyisten und Hardware-Bastlern hervorrufen. Ja! Ich spreche von Segelflugzeugen, Hubschraubern, Flugzeugen und hauptsächlich Multi-Coptern. Aufgrund der online verfügbaren Community-Unterstützung ist es heute sehr einfach geworden, eine eigene zu erstellen. Allen Flugzeugen ist gemeinsam, dass sie einen BLDC-Motor verwenden. Was ist dieser BLDC-Motor? Warum brauchen wir es, um Dinge zu fliegen? Was ist das Besondere daran? Wie kaufe ich den richtigen Motor und verbinde ihn mit deiner Steuerung? Was ist ein ESC und warum verwenden wir ihn? Wenn Sie Fragen wie diese haben, ist dieses Tutorial Ihre One-Stop-Lösung.
Im Grunde genommen werden wir in diesem Tutorial den bürstenlosen Motor mit Arduino steuern. Hier wird der sensorlose BLDC-Auslaufmotor A2212 / 13T mit einem elektronischen 20A-Drehzahlregler (ESC) verwendet. Dieser Motor wird üblicherweise zum Bau von Drohnen verwendet.
Erforderliche Materialien
- A2212 / 13T BLDC Motor
- ESC (20A)
- Stromquelle (12V 20A)
- Arduino
- Potentiometer
Grundlegendes zu BLDC-Motoren
BLDC Motor steht für Brush Less DC Motor und wird aufgrund seines reibungslosen Betriebs häufig in Deckenventilatoren und Elektrofahrzeugen verwendet. Die Verwendung von BLDC-Motoren in Elektrofahrzeugen wurde zuvor ausführlich erläutert. Im Gegensatz zu anderen Motoren haben die BLDC-Motoren drei Drähte, und jeder Draht bildet seine eigene Phase, wodurch wir einen Dreiphasenmotor erhalten. Warte was!!??
Ja, obwohl BLDC-Motoren als Gleichstrommotoren betrachtet werden, arbeiten sie mit Hilfe von gepulsten Wellen. Der elektronische Drehzahlregler (ESC) wandelt die Gleichspannung von der Batterie in Impulse um und liefert sie an die 3 Drähte des Motors. Zu jedem Zeitpunkt werden nur zwei Phasen des Motors mit Strom versorgt, so dass Strom durch eine Phase eintritt und durch eine andere austritt. Während dieses Vorgangs wird die Spule im Motor erregt und daher richten sich die Magnete am Rotor auf die unter Spannung stehende Spule aus. Dann werden die nächsten beiden Drähte vom Regler erregt. Dieser Vorgang wird fortgesetzt, um den Motor zu drehen. Die Drehzahl des Motors hängt davon ab, wie schnell die Spule erregt wird, und die Richtung des Motors hängt davon ab, in welcher Reihenfolge die Spulen erregt werden. Wir werden später in diesem Artikel mehr über ESC erfahren.
Es gibt viele Arten von BLDC-Motoren. Schauen wir uns die gängigsten Klassifizierungen an.
In-Runner- und Out-Runner-BLDC-Motor: In-Runner-BLDC-Motoren arbeiten wie jeder andere Motor. Das heißt, die Welle im Motor dreht sich, während das Gehäuse fest bleibt. Während BLDC-Motoren für Außenläufer genau das Gegenteil sind, dreht sich das äußere Gehäuse des Motors zusammen mit der Welle, während die Spule im Inneren fest bleibt. Outrunner-Motoren sind bei Elektrofahrrädern sehr vorteilhaft, da das äußere Gehäuse (das sich dreht) selbst zu einer Felge für die Reifen gemacht wird und somit ein Kupplungsmechanismus vermieden wird. Auch die Outrunner-Motoren neigen dazu, mehr Drehmoment zu liefern als bei Runner-Typen, weshalb sie bei EV und Drohnen eine ideale Wahl sind. Der hier verwendete ist ebenfalls ein Outrunner-Typ.
Hinweis: Es gibt einen anderen Motortyp, die als kernlose BLDC-Motoren bezeichnet wird und auch für Pocket-Drohnen verwendet wird. Sie haben ein anderes Funktionsprinzip, aber lassen Sie es uns vorerst für dieses Tutorial überspringen.
Sensor und sensorloser BLDC-Motor: Damit sich ein BLDC-Motor ruckfrei dreht, ist eine Rückmeldung erforderlich. Das heißt, der Regler muss die Position und den Pol der Magnete im Rotor kennen, um den Stator entsprechend zu erregen. Diese Informationen können auf zwei Arten erfasst werden. Zum einen wird der Hallsensor im Motor platziert. Der Hallsensor erkennt den Magneten und sendet die Informationen an ESC. Dieser Motortyp wird als Sensord BLDC-Motor bezeichnet und in Elektrofahrzeugen verwendet. Die zweite Methode besteht darin, die von den Spulen erzeugte Gegen-EMK zu verwenden, wenn die Magnete sie kreuzen. Dies erfordert keine zusätzliche Hardware oder Drähte. Der Phasendraht selbst wird als Rückkopplung verwendet, um die Gegen-EMK zu überprüfen. Diese Methode wird in unserem Motor verwendet und ist bei Drohnen und anderen Flugprojekten üblich.
Warum verwenden Drohnen und andere Multi-Copter BLDC-Motoren?
Es gibt viele Arten von coolen Drohnen, vom Quad-Copter über Hubschrauber bis hin zu Segelflugzeugen. Alles hat eine Hardware gemeinsam. Das sind die BLDC-Motoren, aber warum? Warum verwenden sie einen BLDC-Motor, der im Vergleich zu Gleichstrommotoren etwas teuer ist?
Dafür gibt es einige triftige Gründe. Ein Hauptgrund ist das sehr hohe Drehmoment dieser Motoren, was sehr wichtig ist, um schnell Schub zu gewinnen / zu verlieren, um eine Drohne zu starten oder zu landen. Auch diese Motoren sind als Außenläufer erhältlich , was wiederum den Schub der Motoren erhöht. Ein weiterer Grund für den ausgewählten BLDC-Motor ist der reibungslose Betrieb ohne Vibrationen. Dies ist ideal für unsere Drohne, die in der Luft stabil ist.
Das Leistungsgewicht eines BLDC-Motors ist sehr hoch. Dies ist sehr wichtig, da die bei Drohnen verwendeten Motoren eine hohe Leistung (hohe Drehzahl und hohes Drehmoment), aber auch ein geringeres Gewicht aufweisen sollten. Ein Gleichstrommotor, der das gleiche Drehmoment und die gleiche Drehzahl wie ein BLDC-Motor liefern kann, ist doppelt so schwer wie der BLDC-Motor.
Warum brauchen wir einen ESC und welche Funktion hat er?
Wie wir wissen, benötigt jeder BLDC-Motor eine Art Controller, um die Gleichspannung von der Batterie in Impulse umzuwandeln und die Phasendrähte des Motors mit Strom zu versorgen. Dieser Regler wird als ESC bezeichnet und steht für Electronic Speed Controller. Die Hauptverantwortung der Steuerung besteht darin, die Phasendrähte der BLDC-Motoren in einer Reihenfolge zu erregen, in der sich der Motor dreht. Dies erfolgt durch Erfassen der Gegen-EMK von jedem Draht und Erregen der Spule genau dann, wenn der Magnet die Spule kreuzt. Es gibt also eine Menge Hardware-Brillanz im ESC, die außerhalb des Rahmens dieses Tutorials liegt. Um nur einige zu nennen: Es verfügt über einen Drehzahlregler und eine Batterieentfernungsschaltung.
PWM-basierte Drehzahlregelung: Der Regler kann die Drehzahl des BLDC-Motors durch Lesen des auf dem orangefarbenen Kabel bereitgestellten PWM-Signals steuern. Es funktioniert sehr ähnlich wie Servomotoren, das bereitgestellte PWM-Signal sollte eine Dauer von 20 ms haben und das Tastverhältnis kann variiert werden, um die Drehzahl des BLDC-Motors zu variieren. Da dieselbe Logik auch für die Servomotoren zur Steuerung der Position gilt, können wir dieselbe Servobibliothek in unserem Arduino-Programm verwenden. Erfahren Sie hier, wie Sie Servo mit Arduino verwenden.
Battery Eliminator Circuit (BEC): Fast alle Regler sind mit einem Battery Eliminator Circuit ausgestattet. Wie der Name schon sagt, ist für diese Schaltung keine separate Batterie für den Mikrocontroller erforderlich. In diesem Fall benötigen wir keine separate Stromversorgung, um unser Arduino mit Strom zu versorgen. Der Regler selbst liefert eine geregelte + 5V, die für unser Arduino verwendet werden kann. Es gibt viele Arten von Schaltkreisen, die diese Spannung normalerweise regeln. Bei billigen Reglern handelt es sich um lineare Regelungen. Sie können jedoch auch Schaltkreise mit Schaltkreisen finden.
Firmware: In jeden ESC ist ein Firmware-Programm geschrieben, das von den Herstellern geschrieben wurde. Diese Firmware bestimmt maßgeblich, wie Ihr ESC reagiert. Einige der beliebtesten Firmware sind Traditional, Simon-K und BL-Heli. Diese Firmware ist ebenfalls vom Benutzer programmierbar, aber wir werden in diesem Tutorial nicht viel darauf eingehen.
Einige gebräuchliche Begriffe mit BLDC und ESC:
Wenn Sie gerade erst angefangen haben, mit BLDC-Motoren zu arbeiten, sind Sie möglicherweise auf Begriffe wie Bremsen, Sanftanlauf, Motorrichtung, Niederspannung, Reaktionszeit und Fortschritt gestoßen. Lassen Sie uns einen Blick darauf werfen, was diese Begriffe bedeuten.
Bremsen: Beim Bremsen kann Ihr BLDC-Motor aufhören, sich zu drehen, sobald der Gashebel entfernt wird. Diese Fähigkeit ist für Multi-Copter sehr wichtig, da sie ihre Drehzahl häufiger ändern müssen, um in der Luft zu manövrieren.
Sanftanlauf: Der Sanftanlauf ist eine wichtige Funktion, die zu berücksichtigen ist, wenn Ihr BLDC-Motor einem Getriebe zugeordnet ist. Wenn ein Motor einen sanften Start aktiviert hat, dreht er sich nicht plötzlich sehr schnell, sondern erhöht die Geschwindigkeit immer allmählich, unabhängig davon, wie schnell der Gashebel gegeben wurde. Dies hilft uns, den Verschleiß der mit den Motoren verbundenen Zahnräder (falls vorhanden) zu verringern.
Motorrichtung: Die Motorrichtung in BLDC-Motoren wird normalerweise während des Betriebs nicht geändert. Bei der Montage muss der Benutzer möglicherweise die Drehrichtung des Motors ändern. Der einfachste Weg, die Richtung des Motors zu ändern, besteht darin, einfach zwei beliebige Drähte des Motors auszutauschen.
Niederspannungsstopp: Nach der Kalibrierung müssen unsere BLDC-Motoren immer mit der gleichen Drehzahl für einen bestimmten Drosselklappenwert laufen. Dies ist jedoch schwer zu erreichen, da die Motoren dazu neigen, ihre Drehzahl bei gleichem Drosselklappenwert zu verringern, wenn die Batteriespannung abnimmt. Um dies zu vermeiden, programmieren wir den Regler normalerweise so, dass er nicht mehr funktioniert, wenn die Batteriespannung den Schwellenwert unterschritten hat. Diese Funktion wird als Niederspannungsstopp bezeichnet und ist bei Drohnen nützlich.
Reaktionszeit: Die Fähigkeit des Motors, seine Drehzahl basierend auf der Änderung der Drosselklappe schnell zu ändern, wird als Reaktionszeit bezeichnet. Je kürzer die Reaktionszeit ist, desto besser ist die Steuerung.
Fortschritt: Fortschritt ist ein Problem oder eher ein Fehler bei BLDC-Motoren. Alle BLDC-Motoren haben einen kleinen Fortschritt. Das heißt, wenn die Statorspulen erregt werden, wird der Rotor aufgrund des auf ihnen vorhandenen Permanentmagneten zu ihm hingezogen. Nach dem Anziehen neigt der Rotor dazu, sich in derselben Richtung etwas weiter vorwärts zu bewegen, bevor die Spule abgeschaltet wird und dann die nächste Spule erregt wird. Diese Bewegung wird als „Vorwärtsbewegung“ bezeichnet und führt zu Problemen wie Zittern, Aufheizen, Geräuschentwicklung usw. Dies ist also etwas, das ein guter Regler von sich aus vermeiden sollte.
Okay, genug Theorie, lassen Sie uns jetzt mit der Hardware beginnen, indem wir den Motor mit dem Arduino verbinden.
Schaltplan der Arduino BLDC-Motorsteuerung
Unten ist der Schaltplan zur Steuerung des bürstenlosen Motors mit Arduino:
Die Verbindung für die Verbindung des BLDC-Motors mit Arduino ist ziemlich einfach. Der Regler benötigt eine Stromquelle von mindestens 12 V und 5 A. In diesem Tutorial habe ich meinen RPS als Stromquelle verwendet, aber Sie können auch einen Li-Po-Akku verwenden, um den Regler mit Strom zu versorgen. Die dreiphasigen Drähte des Reglers sollten mit den dreiphasigen Drähten der Motoren verbunden werden. Es gibt keine Reihenfolge, um diese Drähte anzuschließen. Sie können sie in beliebiger Reihenfolge anschließen.
Warnung: Einige Regler haben keine Anschlüsse. Stellen Sie in diesem Fall sicher, dass Ihre Verbindung fest ist, und schützen Sie die freiliegenden Drähte mit Isolierband. Da durch die Phasen ein hoher Strom fließt, würde jeder Kurzschluss zu einer dauerhaften Beschädigung des Reglers und des Motors führen.
Der BEC (Battery Eliminator Circuit) im ESC selbst regelt +5 V, mit denen das Arduino Board eingeschaltet werden kann. Zum Einstellen der Drehzahl des BLDC-Motors verwenden wir schließlich auch ein Potentiometer, das an den A0-Pin des Arduino angeschlossen ist
Programm zur BLDC-Geschwindigkeitsregelung mit Arduino
Wir müssen ein PWM-Signal mit einem variierenden Arbeitszyklus von 0% bis 100% mit einer Frequenz von 50 Hz erzeugen. Der Arbeitszyklus sollte mit einem Potentiometer gesteuert werden, damit wir die Drehzahl des Motors steuern können. Der Code hierfür ähnelt der Steuerung der Servomotoren, da sie auch ein PWM-Signal mit einer Frequenz von 50 Hz benötigen. Daher verwenden wir dieselbe Servobibliothek von Arduino. Den vollständigen Code finden Sie unten auf dieser Seite. Ich erkläre den Code in kleinen Ausschnitten. Und wenn Sie Arduino oder PWM noch nicht kennen, verwenden Sie zuerst PWM mit Arduino und steuern Sie das Servo mit Arduino.
Das PWM-Signal kann nur an den Pins erzeugt werden, die PWM durch Hardware unterstützen. Diese Pins werden normalerweise mit einem ~ -Symbol gekennzeichnet. Bei Arduino UNO kann Pin 9 ein PWM-Signal erzeugen, sodass wir den ESC-Signal-Pin (orangefarbener Draht) mit Pin 9 verbinden. Wir erwähnen denselben Inn-Code auch in der folgenden Zeile
ESC.attach (9);
Wir müssen ein PWM-Signal mit einem variablen Arbeitszyklus von 0% bis 100% erzeugen. Bei einem Tastverhältnis von 0% gibt der POT 0 V (0) aus und bei einem Tastverhältnis von 100% gibt der POT 5 V (1023) aus. Hier ist der Poti mit Pin A0 verbunden, daher müssen wir die analoge Spannung vom POT mit der unten gezeigten analogen Lesefunktion ablesen
int throttle = analogRead (A0);
Dann müssen wir den Wert von 0 auf 1023 auf 0 auf 180 umwandeln, da der Wert 0 0% PWM und der Wert 180 100% Arbeitszyklus erzeugt. Werte über 180 sind nicht sinnvoll. Daher ordnen wir den Wert 0-180 zu, indem wir die unten gezeigte Kartenfunktion verwenden.
Gas = Karte (Gas, 0, 1023, 0, 180);
Schließlich müssen wir diesen Wert an die Servofunktion senden, damit sie das PWM-Signal an diesem Pin erzeugen kann. Da wir das Servoobjekt als ESC bezeichnet haben, sieht der Code wie folgt aus, wobei die variable Drossel den Wert von 0 bis 180 enthält, um das Tastverhältnis des PWM-Signals zu steuern
ESC.write (Gas);
Arduino BLDC Motorsteuerung
Stellen Sie die Verbindungen gemäß dem Schaltplan her, laden Sie den Code auf Arduino hoch und schalten Sie den Regler ein. Stellen Sie sicher, dass Sie den BLDC-Motor an etwas montiert haben, da der Motor beim Drehen ringsum springt. Sobald das Setup eingeschaltet ist, gibt Ihr Regler einen Willkommenston aus und piept weiter, bis das Drosselsignal innerhalb der Schwellenwerte liegt. Erhöhen Sie einfach den POT schrittweise von 0 V und der Piepton hört auf. Dies bedeutet, dass wir jetzt PWM bereitstellen Signal über dem unteren Schwellenwert und wenn Sie weiter ansteigen, beginnt sich Ihr Motor langsam zu drehen. Je mehr Spannung Sie bereitstellen, desto mehr Drehzahl nimmt der Motor auf. Wenn die Spannung den oberen Schwellenwert überschreitet, stoppt der Motor. Sie können den Vorgang dann wiederholen.
Die vollständige Funktionsweise dieses Arduino BLDC-Controllers finden Sie auch unter dem folgenden Videolink. Wenn Sie Probleme hatten, dies zum Laufen zu bringen, können Sie den Kommentarbereich oder die Foren für weitere technische Hilfe verwenden.