Heutzutage sind Enthusiasten sehr an der Steuerung von bürstenlosem Gleichstrom (BLDC) interessiert.
Im Vergleich zum herkömmlichen Gleichstrommotor hat sich die Leistung des Motors verbessert, die Energieeffizienz hat sich ebenfalls verbessert, er ist jedoch schwieriger zu verwenden. viele handelsübliche Produkte.
Zu diesem Zweck gibt es
Es gibt beispielsweise viele kleine BLDC-Controller, die sehr gut für RC-Flugzeuge funktionieren.
Wer sich tiefer mit der Steuerung des BLDC befassen möchte, für den gibt es auch viele verschiedene Mikrocontroller und andere elektronische Hardware für Industrieanwender, die meist über eine sehr gute Dokumentation verfügen.
Bisher habe ich keine umfassende Beschreibung zur Verwendung des Arduino-Mikrocontrollers für die BLDC-Steuerung gefunden.
Wenn Sie außerdem daran interessiert sind, regeneratives Bremsen durchzuführen oder einen BLDC zur Stromerzeugung zu verwenden, habe ich nicht viele Produkte gefunden, die für den Einsatz mit kleinen Motoren geeignet sind, und ich habe auch nicht herausgefunden, wie man einen 3-Phasen-Generator steuert.
Diese Struktur war ursprünglich in einer Geschichte über
Echtzeitberechnung enthalten, ich mache damit auch nach Abschluss des Kurses weiter.
Die Idee des Projekts besteht darin, ein Proportionalmodell eines Hybridautos mit Schwungrad-Energiespeicher und regenerativem Bremsen zu zeigen.
Der im Projekt verwendete Motor ist ein kleiner BLDC, der von der beschädigten Computerfestplatte gereinigt wurde.
In diesem Handbuch wird beschrieben, wie der Arduino-Mikrocontroller und die Hall-
Affects-Positionssensoren im Fahr- und regenerativen Bremsmodus verwendet werden.
Bitte beachten Sie, dass der Besuch von oscillisoft für die Fertigstellung dieses Projekts sehr hilfreich, wenn nicht sogar unerlässlich ist.
Wenn Sie nicht auf den Bereich zugreifen können, habe ich einige Vorschläge hinzugefügt, wie Sie dies ohne den Bereich tun können (Schritt 5).
Eine Sache, die dieses Projekt in keiner tatsächlichen Motorsteuerung enthalten sollte, sind Sicherheitsfunktionen wie ein Überstromschutz.
Tatsächlich ist das Schlimmste, dass der HD-Motor durchbrennt.
Allerdings ist die Implementierung eines Überstromschutzes mit aktueller Hardware nicht schwierig, und vielleicht werde ich das irgendwann auch tun.
Wenn Sie versuchen, einen größeren Motor zu steuern, fügen Sie bitte einen Überstromschutz hinzu, um Ihren Motor und Ihre eigene Sicherheit zu schützen.
Ich möchte versuchen, diesen Controller mit einem größeren Motor zu verwenden, der „echte“ Arbeit leisten kann, aber ich habe noch nicht den richtigen.
Mir ist aufgefallen, dass eBay ein 86-W-Auto für etwa 40 US-Dollar verkauft hat.
Scheint ein guter Kandidat zu sein.
Es gibt auch eine RC-Website namens „GoBrushless“, auf der Bausätze zum Zusammenbau eines eigenen BLDC verkauft werden.
Diese sind nicht zu teuer und es lohnt sich, die Erfahrung zu machen, sie zu bauen.
Bitte beachten Sie, dass es auf dieser Website keinen Hallsensor für den Motor gibt. Puh!
Das Schreiben dieser Struktur ist eine große Aufgabe.
Ich hoffe, Sie finden es nützlich. Bitte machen Sie Ihre Kommentare und Vorschläge.
Digitalmultimeter (DMM) –
Wenn Ihr DMM über ein Frequenzmesser-Oszilloskop verfügt (
es ist besser, mindestens 2 Kanäle zu haben)
T8-Torx-Treiber (
Sie benötigen einen davon, um eine Festplatte zu öffnen).
Es gibt einen guten Baumarkt.
Maschinenwerkstatt und Rapid Prototyping (
diese sind sehr hilfreich, aber ich denke, dieses Projekt kann ohne sie durchgeführt werden).
Material Bldc-Motor-Magnetring von Computerfestplatte (
Hälfte des Motors)
Von einer anderen FestplatteMehrere (3-6)
Es gibt einen zweiten kleinen Motor in der silbernen Scheibe auf der Festplatte (Gleichstrom gebürstet OK)
Gummiband oder (vorzugsweise)
Der bürstenlose Gleichstrommotor mit einem Griff mit einem anderen Motor elektronische Brotplatte Massivdraht Monat der Arduino Duemilanove 120 kOhm Widerstand sechs bis 400 Ohm Widerstand linear oder rotierend Poteniometer100 k OhmST Mikroschaltung Dreiphasen-Motortreiber-IC L6234, zwei 100-uF-Kondensatoren, ein 10-nF-Kondensator, ein 220-nF-Kondensator, ein 1-uF-Kondensator, ein 100-uF-Kondensator, drei Empfangsdioden, eine 2.
Honeywell SS411A bipolare Hall-5-Ampere-Sicherung, 1 Sicherungshalter 3
Hinweis: Mike Anton hat ein Produkt entwickelt und verkauft, das die Leistungselektronik und Hall-Sensor-Schaltkreise ersetzt, die ich in diesem Handbuch gezeigt habe (
es wird durch Rückpotentialinduktion gesteuert).
Spezifikationen und Beschaffungsinformationen finden Sie unter diesen beiden Links: Wenn Sie dieses Projekt durchführen möchten, empfehle ich Ihnen, sich die Zeit zu nehmen, um gründlich zu verstehen, wie das BLDC funktioniert und steuert.
Es gibt eine große Anzahl von Referenzen online (
siehe unten für einige Vorschläge).
Allerdings füge ich in mein Projekt einige Diagramme und Tabellen ein, die Ihnen das Verständnis erleichtern sollen.
Hier ist eine Liste der Konzepte, die meiner Meinung nach für das Verständnis dieses Projekts am wichtigsten sind: MOSFET-Transistoren 3-Phasen-Halbbrücke 6-
3-Stufen-Reduzierung des Satzes
Pulsweitenmodulation des Phasenmotors (PWM) Hall-
Mikrochip AVR443: Sensoren – allgemeine Referenz Gleichstrommotor Grundprinzipien für digitale Positionssensoren
Steuerung eines dreiphasigen bürstenlosen Gleichstrommotors basierend auf atmelbrusloser Gleichstrommotorsteuerung
Phasen-BLDC-Motorsteuerung des Flying Star Hall-Sensors, ein gutes Video zur Bereinigung des Festplattenmotor, aber der Autor scheint den Motor als Schrittmotor und als Schrittmotor zu betreiben. Eine spezifischere Referenz-Webseite für den BLDC auf dem l6234-Motorantriebs-IC, einschließlich Datenblättern, Anwendungshinweisen und Kaufinformationen.
Kostenloses Muster für einen bürstenlosen PM-Motorantrieb für Anwendungen in Hybrid-Elektrofahrzeugen.
Dies ist der einzige Artikel, den ich gefunden habe, der die Reihenfolge der Änderung der regenerativen Bremsphase beschreibt.
Dieses Papier, regeneratives Bremsen in Elektrofahrzeugen, ist nützlich, ich habe ein paar Zahlen daraus übernommen, aber ich denke, es beschreibt falsch, wie die Rekuperation funktioniert.
Ich habe dieses Projekt mit einem recycelten Festplattenlaufwerksmotor durchgeführt, weil er leicht durchzugehen war und ich gerne einen kleinen Niederspannungsmotor verwende, um das von BLDC gesteuerte Kabel zu erlernen und keine Sicherheitsprobleme zu verursachen.
Darüber hinaus wird die Magnetkonfiguration des Hall-Sensors durch die Verwendung des Magnetrings (Rotors)
des zweiten dieser Motoren sehr einfach (siehe Schritt 4).
Wenn Sie sich nicht den ganzen Aufwand mit der Installation und Kalibrierung des Hall-Sensors machen möchten (Schritte 5–7),
weiß ich, dass zumindest einige CD/DVD-Laufwerksmotoren in den Hall-Sensor eingebaut sind.
Um dem Motor eine gewisse Drehträgheit zu verleihen und ihn ein wenig zu belasten, habe ich 5 Festplatten auf den Motor gelegt, sie vorsichtig mit etwas starkem Kleber zusammengeklebt und auf den Motor geklebt (
dadurch entstand das Schwungrad in meinem ursprünglichen Projekt).
Wenn Sie den Motor von der Festplatte entfernen möchten, benötigen Sie einen T8-Torx-Antrieb, um das Gehäuse abzuschrauben (
normalerweise sind hinter dem Stick im Centeron-Etikett zwei Schrauben versteckt)
und interne Schrauben, die den Motor an Ort und Stelle halten.
Außerdem müssen Sie den Lesekopf (
Sound Circle Executive) entfernen
. Auf diese Weise können Sie die Speicherplatte herausnehmen, um an den Motor zu gelangen.
Darüber hinaus benötigen Sie einen zweiten gleichen Festplattenmotor, um den Rotor von diesem Motor zu entfernen (
im Inneren befindet sich ein Magnet).
Um den Motor auseinanderzunehmen, schnappte ich mir den Rotor (oben).
Einen Schraubstock des Motors und hebelte ihn auf den Stator (unten).
Die beiden Schraubendreher sind um 180 Grad voneinander entfernt.
Es ist nicht einfach, den Motor ohne Verformung fest genug an einem Paar zu halten.
Vielleicht möchten Sie
zu diesem Zweck einen V-Block aus Holz bauen.
Ich habe ein Loch in den Magnetring der Drehmaschine gebohrt, damit er bequem auf die Oberseite des Motors passt.
Wenn Sie die Drehmaschine nicht verwenden können, können Sie den umgekehrten Rotor mit einem starken Kleber am Motor befestigen.
Die Bilder 2 und 3 unten zeigen das Innere eines der Motoren, die ich zerlegt habe.
In der ersten Hälfte (dem Rotor) befinden sich 8 Pole (
Magnet in Plastik eingewickelt).
In der zweiten Hälfte (dem Stator)
befinden sich 12 Nuten (Wicklungen).
Jede der drei Motorphasen verfügt über 4 Steckplätze in Reihe.
Einige HD-Motoren haben drei Kontakte an der Unterseite, einen Kontakt pro Phase, und der andere ist der Mittelabgriff des Motors (
wo sich drei Stufen treffen).
In diesem Projekt ist kein Mittelabgriff erforderlich, aber es kann bei der sensorlosen Steuerung nützlich sein (
ich hoffe, eines Tages einen Hinweis zur sensorlosen Steuerung veröffentlichen zu können).
Wenn Ihr Motor vier Kontakte hat, können Sie die Phase mit einem Ohmmeter identifizieren.
Der Widerstand zwischen dem Mittelabgriff und der Phase beträgt die Hälfte des Widerstands zwischen zwei beliebigen Phasen.
Der Großteil der Literatur zu BLDC-Motoren befasst sich mit solchen mit einer leiterförmigen Rückpotentialwellenform, aber der Festplattenmotor scheint ein Rückpotential zu haben, das wie ein Sinus aussieht (siehe unten).
Soweit ich weiß, funktioniert der Antrieb eines Sinusmotors mit einer Sinuswellen-PWM einwandfrei, obwohl der Wirkungsgrad etwas sinken kann.
Wie alle BLDC-Motoren besteht dieser aus einer dreiphasigen Halbtransistorbrücke
(
siehe zweite Fotos unten).
verwende ich den IC von ST Micro (L6234) .
Für die Brücke, auch Motortreiber genannt,
Der elektrische Anschluss von L6234 wird in Schritt 8 gezeigt.
Das dritte Foto unten zeigt ein schematisches Diagramm des Motortreibers und der drei Motorphasen.
Damit der Motor im Uhrzeigersinn läuft, erfolgt die Umschaltung in der folgenden Reihenfolge (
der erste Buchstabe ist der obere Transistor und der zweite Buchstabe ist der untere Transistor)
: Schritt 1 2 3 4 5 6 im Uhrzeigersinn: CB, AB, AC, BC, BA, CA gegen den Uhrzeigersinn: BC, BA, CA, CB, AB, AC diese 6-
Die Schrittfolge erfordert einen „elektrischen Grad“ von 360, aber nur einen physikalischen Grad von 90 für diese Motoren.
Daher beträgt die Drehzahl jedes Motors das Vierfache.
Die beiden Sequenzen scheinen gleich zu sein, sind aber nicht identisch, da bei der 6-
Schritt-Sequenz die Stromrichtung durch die Phase im Uhrzeigersinn eine Richtung hat und bei CCW die Stromrichtung entgegengesetzt ist.
Sie können dies selbst erkennen, indem Sie die Spannung der Batterie oder des Netzteils an eine der Motorphasen anlegen.
Wenn Sie die Spannung anlegen, bewegt sich der Motor ein wenig in eine Richtung und stoppt.
Wenn Sie die Spannung an der Phase in einer der oben genannten Reihenfolgen schnell ändern können, können Sie den Motor manuell drehen.
Transistoren und Mikrocontroller führen alle diese Schalter sehr schnell aus und schalten Hunderte Male pro Sekunde, wenn der Motor mit hoher Geschwindigkeit läuft.
Bitte beachten Sie außerdem, dass sich der Motor beim Anlegen der Spannung an beide Phasen ein wenig bewegt und dann stoppt.
Dies liegt daran, dass das Drehmoment Null ist.
Sie können dies im vierten Foto unten sehen, das das Rückpotential eines Motorphasenpaares zeigt.
Dies ist eine Sinuswelle.
Wenn die Welle durch x-
Welle geht, ist das von dieser Phase bereitgestellte Drehmoment Null. In der
sechsstufigen BLDC-Phasenwechselsequenz ist das nie passiert.
Bevor das Drehmoment an einer bestimmten Phase niedrig wird, wird die Leistung auf eine andere Phasenkombination umgeschaltet.
Größere BLDC-Motoren werden normalerweise durch Hall-Sensoren im Motor hergestellt.
Wenn Sie einen solchen Motor haben, können Sie diesen Schritt überspringen.
Außerdem weiß ich, dass zumindest einige CD/DVD-Laufwerksmotoren bereits mit einem Hall-Sensor ausgestattet sind.
Wenn sich der Motor dreht, werden drei Hall-Sensoren zur Positionserkennung verwendet, sodass der Phasenwechsel im richtigen Moment durchgeführt wird.
Mein HD-Motor läuft bis zu 9000 U/min (150 Hz).
Da es bei 9000 U/min pro Rad 24 Wechsel gibt, wird die Maschine alle 280 Mikrosekunden gewechselt.
Der Arduino-Mikrocontroller arbeitet mit 16 MHz, sodass jeder Taktzyklus 0,06 Mikrosekunden beträgt.
Ich weiß nicht, wie viele Taktzyklen erforderlich sind, um eine Satzreduzierung durchzuführen, aber selbst wenn 100 Taktzyklen erforderlich sind, dauert jede Satzreduzierung 5 Mikrosekunden.
HD-Motoren verfügen nicht über Hall-Sensoren, daher ist es notwendig, diese an der Außenseite des Motors zu installieren.
Der Sensor muss in Bezug auf die Motordrehung fixiert und einer Reihe von Polen ausgesetzt werden, die mit der Motordrehung übereinstimmen.
Meine Lösung besteht darin, den Magnetring vom selben Motor zu entfernen und ihn verkehrt herum am zu steuernden Motor anzubringen.
Über diesem Magnetring habe ich dann drei Hall-Sensoren im Abstand von 30 Grad zueinander auf der Motorwelle angebracht (
120 Grad Drehung des Elektromotors).
Mein Hallsensorhalter besteht aus einem einfachen Halter bestehend aus drei von mir bearbeiteten Aluminiumteilen und drei auf einem schnellen Prototyp gefertigten Kunststoffteilen.
Wenn Sie nicht über diese Tools verfügen, sollte es nicht schwierig sein, eine andere Möglichkeit zur Positionsanzeige zu finden.
Die Herstellung von Halterungen für Hall-Sensoren wird eine größere Herausforderung darstellen.
Dies ist eine mögliche Vorgehensweise: 1.
Finden Sie eine Kunststoffschale in der richtigen Größe und Sie können den Hallsensor vorsichtig mit Epoxidharz verkleben. 2.
Auf das Papier wird eine Vorlage gedruckt, die den gleichen Kreis hat wie der Magnetringradius, und die drei Markierungen sind 15 Grad 3 voneinander entfernt.
Kleben Sie die Schablone auf die Scheibe und verwenden Sie sie dann als Führung, um das Hallsensor-Epoxidharz vorsichtig anzubringen.
Nachdem nun Hall-Sensoren am Motor installiert sind, schließen Sie sie an den unten gezeigten Schaltkreis an und testen Sie sie mit einem DMM oder Oszilloskop, um sicherzustellen, dass der Ausgang mit der Drehung des Motors höher und niedriger wird.
Ich betreibe diese Sensoren unter 5 V und verwende den 5 V-Ausgang von Arduino.
Die Ausgabe des Hall-Sensors ist hoch oder niedrig (1 oder 0).
Es hängt davon ab, ob sie die Antarktis oder die Arktis spüren.
Da sie 15 Grad voneinander entfernt sind, sich die Magnete unter ihnen drehen und alle 45 Grad die Polarität ändern, werden diese drei Sensoren niemals gleichzeitig hoch oder niedrig sein.
Wenn sich der Motor dreht, beträgt der Sensorausgang 6 –
Das in der folgenden Tabelle dargestellte Schrittmuster.
Der Sensor muss auf die Bewegung des Motors ausgerichtet sein, damit einer der drei Sensoren genau an der Position des Motorphasenwechsels wechselt.
In diesem Fall sollte die ansteigende Flanke des ersten Hallsensors (H1)
mit der Öffnung der Kombination C (hoch) und B (niedrig) übereinstimmen.
Dies entspricht dem Einschalten der Transistoren 3 und 5 in der Brückenschaltung.
Ich richte den Sensor mit einem Oszilloskop auf den Magneten aus.
Dazu muss ich drei Scope-Kanäle nutzen.
Ich drehe den Motor, indem ich ihn an den Riemen des zweiten Motors anschließe, und messe das Rückpotential zwischen den beiden Phasenkombinationen (
A und B, A und C).
Das sind zwei Sinuswerte.
Wie die Wellen im Bild unten.
Schauen Sie sich dann das Signal von Hall-Sensor 2 auf Kanal 3 des Oszilloskops an.
Der Hall-Sensor-Halter wird gedreht, bis die ansteigende Flanke des Hall-Sensors vollständig mit dem Punkt ausgerichtet ist, an dem der Phasenwechsel durchgeführt werden soll (siehe unten).
Mir ist jetzt klar, dass es nur zwei Kanäle gibt, um die gleiche Kalibrierung durchzuführen.
Wenn die BEMF der Phasenkombination B-
C verwendet wird, hängt die steigende Flanke von H2 mit der BC-Kurve zusammen.
Der Grund, warum der Phasenwechsel hier durchgeführt werden sollte, besteht darin, das Motordrehmoment immer möglichst hoch zu halten.
Das Rückpotential ist proportional zum Drehmoment und Sie werden feststellen, dass jede Phasenänderung auftritt, wenn das Rückpotential unter die Kurve der nächsten Stufe fällt.
Daher besteht das tatsächliche Drehmoment aus dem höchsten Teil jeder Phasenkombination.
Wenn Sie nicht auf den Bereich zugreifen können, finden Sie hier meine Vorstellung von der Ausrichtung.
Dies ist eigentlich eine interessante Übung für jeden, der wissen möchte, wie der BLDC-Motor funktioniert.
Wenn die Motorphasen A (positiv) und B (negativ)
an die Stromversorgung angeschlossen sind und die Stromversorgung eingeschaltet wird, dreht sich der Motor ein wenig und stoppt.
Wenn dann das negative Stromkabel auf die C-Phase verschoben und die Stromversorgung eingeschaltet wird, dreht sich der Motor weiter und stoppt.
Der nächste Teil der Sequenz besteht darin, die positive Leitung in Phase B usw. zu verlegen.
Wenn Sie dies tun, stoppt der Motor immer dort, wo das Drehmoment Null ist, was einer Stelle entspricht, an der das Diagramm durch die x-Achse des Diagramms verläuft.
Beachten Sie, dass der Nullpunkt der dritten Phasenkombination der Phasenwechselposition der ersten beiden Kombinationen entspricht.
Daher ist die Nulldrehmomentposition von B-
Die C-Kombination die Stelle, an der Sie die steigende Flanke von h2 positionieren möchten.
Markieren Sie diese Position mit feinen Markierungen oder scharfen Klingen und justieren Sie dann den Hallsensorhalter mit dem DMM, bis die H2-Leistung genau über dieser Markierung liegt.
Auch wenn Sie ein wenig von Ihrem Schulplan abweichen, sollte der Motor gut funktionieren.
Die drei Motorphasen werden vom dreiphasigen Motortreiber L6234 mit Strom versorgt.
Ich habe festgestellt, dass dies ein gutes Produkt ist, das den Test der Zeit bestehen kann.
Bei der Verwendung von Leistungselektronik gibt es viele Möglichkeiten, Ihre Komponenten versehentlich zu verbrennen. Ich bin kein Elektrotechniker und weiß nicht immer, was los ist.
In meinem Schulprogramm haben wir unseren eigenen 3-
Phasen-Halbbrückenausgang mit 6 MOSFET-Transistoren und 6 Dioden erstellt.
Wir haben dies auf dem HIP4086 des anderen Treibers Intersil verwendet, aber wir haben viele Probleme mit diesem Setup.
Wir haben eine Menge Transistoren und Chips verbrannt.
Ich betreibe L6234 (
also den Motor) mit 12V.
Der L6234 verfügt über einen ungewöhnlichen Satz Eingänge zur Steuerung einer Halbbrücke aus 6 Transistoren.
Nicht jeder Transistor hat einen Eingang, sondern einen Freigabeeingang (EN)
für jede der drei Stufen und dann einen weiteren Eingang (IN)
. Wählen Sie aus, welcher Transistor sich in der offenen Phase befindet (oben oder unten).
Schalten Sie beispielsweise Transistor 1 (oben) und 6 (unten) ein.
Sowohl EN1 als auch EN3 sind hoch (
EN2 niedrig, um die Stufe geschlossen zu halten).
IN1 hoch, IN3 niedrig.
Dies ergibt die Phasenkombination-C.
Während in der L6234-Anwendungsnotiz vorgeschlagen wurde, die PWM, die zur Steuerung der Drehzahl des Motors verwendet wird, auf den IN-Pin anzuwenden, habe ich mich dafür entschieden, dies am EN-Pin zu tun, weil ich es damals „seltsam“ fand, die oberen und unteren Transistoren der Phase abwechselnd einzuschalten.
Tatsächlich scheint es nichts Falsches daran zu sein, die niedrigen Transistoren beider Phasen gleichzeitig einzuschalten, da sie das gleiche Potenzial haben und keiner von ihnen den Strom durchlässt.
Mit meiner Methode Die hohe Phase wird abwechselnd bei der PWM-Frequenz aktiviert und deaktiviert, während die niedrige Phase während des gesamten Phasenwechsels eingeschaltet bleibt.
Ich habe außerdem die Pin-Verbindung zur Arduino-Platine hinzugefügt und einen
100-uF-Kondensator zwischen der Stromversorgung und Masse gesichert, um die Welligkeit des regenerativen Stroms zu reduzieren
L6234.
Hinweis: Mike Anton hat die Platine für L6234 hergestellt, die (glaube ich)
diese Schiene ersetzen und Ihnen den Zusammenbau ersparen wird:
Ich habe nicht viel darüber gefunden,
wie sie funktioniert.
Bitte beachten Sie, dass ich kein Elektroingenieur bin und wir uns über Korrekturen an meiner Erklärung freuen würden
Die
Beim regenerativen Bremsen maximiert das Steuersystem auch das Drehmoment, aber dieses Mal ist es ein negatives Drehmoment, das dazu führt, dass der Motor langsamer wird, während der Strom zurück zur Batterie geleitet wird.
folgende Tabelle stammt aus einem
des Motors verdeutlicht Die Abbildung zeigt den
anderen Artikel, der die Funktionsweise
pro Sekunde Bei der Leistungselektronik handelt es sich um eine Art Gerät namens Aufwärtswandler, bei dem Energie in der Phase des Motors gespeichert
Moment, in dem die BEMF in Stufe B hoch und in Stufe B niedrig ist. Kritisch für das regenerative Bremsen sind Tausende von PWM-Schaltern
wird (Wikipedia hat einen guten Artikel, der erklärt, wie der Aufwärtswandler
funktioniert. Diese Energie wird freigesetzt,
sofort durch die „Anti-Erregungs“
-Diode neben jedem Transistor und
wenn der Low-End-Transistor ausgeschaltet wird , aber bei einer höheren Spannung fließt der Strom
kehrt dann zur Batterie zurück. Gleichzeitig verhindert dies, dass
der Strom in diese Richtung fließt Beim Fahren wird mit dem Magnetring interagiert, um ein negatives Drehmoment zu erzeugen, das den Motor verlangsamt
.
Beim Fahren schaltet die Kommutierung
des Motors von einer Kombination zur nächsten, um das höchstmögliche Drehmoment aufrechtzuerhalten. Wenn Sie sich das Video im ersten Schritt ansehen, können Sie sehen, dass die regenerative Bremse funktioniert Gut, aber es funktioniert nicht gut . Der Hauptgrund dafür ist, dass der
Außerdem läuft mein
V) . Da jeder Pfad
System mit einer relativ niedrigen Spannung (12
von mir verwendete Festplattenmotor nicht viel BEMF erzeugt
, außer bei der höchsten Geschwindigkeit.
durch die Antierregungsdiode die Spannung verringert, verringert sich auch der Wirkungsgrad erheblich Dioden und ich erhalte möglicherweise eine bessere Leistung, wenn ich einige spezielle Dioden mit geringerem Spannungsabfall verwende. Unten
finden Sie eine Liste der Ein- und Ausgänge auf Arduino.
Digitaler Eingang – Halle 1 – 120 K-Widerstand von Gnd 3 2 Digitalausgänge
in Reihe mit 400-Ohm-Widerstand 7 3
Außerdem sind Diagramme und Fotos meines Boards enthalten. 2 –
9- Digitalausgang von EN 1 in Reihe mit 400-Ohm-Widerstand 10- Digitalausgang von EN 2 in Reihe mit 400-Ohm-Widerstand 11- Der EN 3
Digitalausgänge in Reihe mit 400-Ohm-Widerstand
ist in Reihe mit einem
Hall -Sensoren verwendet (siehe Schritt 5
-Digitalausgang
400-Ohm-Widerstand, 100-
wird
zum Betreiben
auch
von
kOhm-Potentiometer, mit 5 V und Masse an beiden Enden verbunden und analog Pin 0 ist in der Mitte angeschlossen. Die 5-V-Stromversorgung
), einschließlich Kommentaren:/* bldc_congroller 3. 1. 1*
3
von David Glazer. Die X-Serie ist ein ST L6234 3-Phasen-Motortreiber -IC
* mit regenerativer
durch ein einzelnes Potentiometer * Motorposition durch drei Hall-Effekt-Sensoren * Arduino
Bremsung gesteuert
empfängt den Ausgang von 3 Hall-Sensoren (Pins 2,3,4) * Und wandelt
(entspricht EN 1,2
, 3*3 DO an den Pins 5,6 bzw.
deren Kombination in 6 verschiedene Phasenwechselschritte an den Pins 9, 10, 11 bei 32 kHz um * PWM-Ausgang
mit dem Potentiometer zum Ändern des PWM-Arbeitszyklus und des Wechsels * zwischen Fahren und regenerativem Bremsen * 500- 523: Fahren /Der
Binärwert aller 3 Hall-Sensoren
7 (IN 1,2,3) * Verbinden Sie die Simulation in 0
int MSPs =
0; /Speed-Level int bSpeed = 0 für Motor; /Brake-Level von Throttle Potentiometer (){pinMode(2,INPUT); /Hall 2 pinMode (4,INPUT)
; 3/output of
OUTPUT)
pinMode motor driver (5,
; /In
1 pinMode (6,OUTPUT)
;
/In 2 pinMode (7,OUTPUT); /In 3 pinMode (9,
OUTPUT); /EN 1 pinMode (10,OUTPUT);
/
EN 2 pinMode (11,OUTPUT);
/EN 3/serial. begin(9600 ); If you will be using a
serial connection, please uncomment this line. The flush Befehl am Ende des Programms. / * Stellen Sie die PWM
-Frequenz an
den Pins 9, 10 und
11 ein/stellen Sie die
PWM auf 32 kHz für die Pins 9, 10 ein/ löschen Sie zuerst alle drei Vorteilerbits: int
prescalerVal =
0x07;
/Erstellen Sie
eine Variable namens prescalerVal und setzen Sie sie auf
den Wert in TCCR0B mit einer Binärzahl von \'11111000\'/Setzen Sie jetzt das entsprechende Vorcodierungsbit
: int Vorcodierungsbit 2 = 1; /
Setzen Sie prescalerVal auf den Wert der Binärzahl \'00000001\' TCCR1B | = prescalerVal2; /Oder Wert in TCCR0B mit einer Binärzahl von \'00000001\'/Setzen Sie die PWM
32 kHz für Pin 3,11 (Dieses Programm verwendet nur Pin 11) /Löschen Sie zuerst alle drei Vorcodierungsbits: TCCR2B & = ~ Vorcodierung; /Und den Wert
auf
in TCCR0B mit einer Binärzahl von \'11111000\'/setzen Sie jetzt das entsprechende
:
Vorcodierungsbit: TCCR2B | = Vorcodierung Bit 2; /Oder der Wert in TCCR0B mit einer Binärzahl von \'0001\'/löscht zuerst alle drei vorcodierten Bits
} Gas
, 512,1023, 0,255); /Fahren wird der
oberen Hälfte des Potentiometers zugeordnet bSpeed = Karte (Gas, 0,511,255, 0); /Halbteiliges regeneratives Bremsen am Boden des Potentiometers/ MSPs
ed = 100;
/Zum Debuggen HallState1 = digitalRead (2); /
Eingabewert von Hall 1 lesen (3);
/Eingabewert von Halle 2 lesen
(4);
Eingabewert/numerisches Schreiben von Halle 3 (
8, HallState1) ;
/Wenn der entsprechende Sensor eingeschaltet ist. Ursprünglich
zum Debuggen von DigitalWrite (9
, HallState3) verwendet; /Berechnen Sie die Binärwerte von 3 hall sensors/* series. print(\'H 1: \'); For debugging serial port.
println(
HallState1); Serial. print
(
\'H 2: \');
Serial. println(HallState2); Serial. print(\'H 3: \');
Serial. println(HallState3); Serial. println(\' \'); */ //
Serial. println(mSpeed); //Serial. println(HallVal); //Serial. print(\'\'); /Monitor transistor output/delay (1000); /* T1 = digitalRead (2); //T1 = ~T1; T2 = digitalRead (4)
; //T2 = ~T2; T3 = digitalRead
(5);
//T3 = ~T3; Serial. print(T1); Serial. print(\'\t\'
);
Serial. print(T2); Serial. print(\'\t\'); Serial. print(T3); Serial. print(\'\'); Serial. print(\'\'); Serial. print(digitalRead(3)); Serial. print(\'\t\'); Serial. print(digitalRead(9)); Serial. print(\'\t\'); Serial. println(digitalRead(10)); Serial. print(\'\'); Serial. print(\'\'); //delay(500);
*/Antriebsphasenänderung/jede Binärzahl hat einen Fall, der den verschiedenen eingeschalteten Transistoren entspricht/Bit-Mathematik, die zum Ändern des Werts des Ausgangs-Arduinos verwendet wird: /PORTD enthält den Ausgang des IN-Pins am L6234-Treiber/den Ausgang, der verwendet wird, um zu bestimmen, ob der obere Transistor oder der untere Transistor/EN-Pin für jede Phase durch die Arduino-Befehlsanalogie
legen
gesteuert wird,
Sie den Arbeitszyklus von PWM fest (0
= AUS, 255 = EIN oder durch Potentiometer gesteuerter Gaswert
)
.
Phase (
High-End-Transistor)AnalogWrite(10,0);
Phase-B-Schließung (Duty = 0)AnalogWrite(11,255);
/
9,mSpeed);
Analowrite (
PWM
PORTD; B10100000
Duty
auf A-Phase (
High-End-Transistor)analogWrite(11,0); //Phase B aus (
= 0)break; /Erwartete
; analogWrite(11,mSpeed); analogWrite(11,mSpeed); Case 6: /PORTD =
Ausgabe von Pin 0-7
B00011111
; 000 =; analogWrite(11,0); /Expected output
PORTD & = B00011111;
of pin 0- 7
B0201700 PORTD | =; /Analowrite (
9,0
); analogWrite(10,mSpeed); analogWrite(11,255); break; }}
/PORTD ( Output of IN pin
/Regenerative brake phase change
else
on L6234) The pins are always low, so only low transistors on each phase are used during regen. braking.
{
/PORTD = B000xxx00;
/Expected output of pin 0-
7 PORTD & = B00011111;
PORTD | = bym0000; // switch
writing (9,bSpeed); //analogWrite(9,0); analogWrite(10,0); analogWrite(11,0); break; Case 1: analogy writing (9,
bSpeed
(HallVal){ Case 3:
analogy
)
;
analogWrite
(10,0); analogWrite(11,0); break;
Case 5: analogy writing (9,0); analogWrite(10,0); analogWrite(11
,bSpeed); break; Case 4: analogy writing (9,0); analogWrite(10,0);
analogWrite(11,bSpeed); break;
Case 6: analogy writing (9,0); analogWrite(10,bSpeed); analogWrite(11,0); break;
Case 2: analogy writing (9,0); analogWrite(10,bSpeed);
analogWrite(11,0); break; }}
/Time = millis ();
Time after the printing program starts. println(time); //Serial. print(\'\'); //Serial. flush();
/If you want to debug using a serial port, please uncomment}
I think the operation that Arduino does in this project is so simple that it seems like a waste to do this task Mit einem Mikroprozessor.
Tatsächlich wird in den Anwendungshinweisen von L6234 ein einfaches programmierbares Gate-Array (GAL16V8 aus Lattice Semiconductor) empfohlen
aber
die Kosten für den IC liegen bei nur 2,39 $.
,
Eine andere Möglichkeit besteht darin, die diskreten Logikgatter zusammenzusetzen
L6234 IC vom Ausgang der drei Hall-Sensoren
ist unten dargestellt, und die Wahrheitstabelle für alle drei Stufen (
Damit die Logikschaltung der Phasen B und C funktioniert, muss die „Nicht“-Tür auf die andere Seite der „Oder“ geschaltet werden.
Das Problem bei diesem Ansatz besteht darin, dass es auf jeder Stufe fast 20 Verbindungen gibt, sodass der Zusammenbau ziemlich viel Arbeit erfordert.
Am besten ist es, sie als programmierbares Logikgatter zu programmieren.