BLDC Motorsteuerung mit Arduino, geborgener HD -Motor und Hallsensoren
Heim » Blog » Bldc Motorsteuerung mit Arduino, geborgener HD -Motor und Hallsensoren

BLDC Motorsteuerung mit Arduino, geborgener HD -Motor und Hallsensoren

Ansichten: 0     Autor: Site Editor Veröffentlichung Zeit: 2020-09-02 Herkunft: Website

Erkundigen

Facebook Sharing Button
Twitter Sharing -Schaltfläche
Leitungsfreigabe -Taste
Wechat Sharing -Taste
LinkedIn Sharing -Taste
Pinterest Sharing -Taste
WhatsApp Sharing -Taste
Kakao Sharing Button
Snapchat Sharing -Taste
Telegrammfreigabe -Taste
Sharethis Sharing Button

Heutzutage sind Enthusiasten sehr daran interessiert, binselosen DC (BLDC) zu kontrollieren
, verglichen mit dem herkömmlichen DC -Motor. Die Leistung des Motors hat sich verbessert, die Energieeffizienz hat sich ebenfalls verbessert, aber es ist schwieriger zu bedienen. viele Produkte außerhalb der Regal .
Zu diesem Zweck gibt es
Zum Beispiel gibt es viele kleine Bldcs -Controller, die für RC -Flugzeuge sehr gut funktionieren.
Für diejenigen, die die Kontrolle des Bldc genauer untersuchen möchten, gibt es auch viele verschiedene Mikrokontroller und andere elektronische Hardware für Industriebenutzer, die normalerweise eine sehr gute Dokumentation haben.
Bisher habe ich keine umfassende Beschreibung der Verwendung von Arduino Micro-Controller für die BLDC-Kontrolle gefunden.
Wenn Sie daran interessiert sind, regeneratives Bremsen durchzuführen oder einen Bldc für die Stromerzeugung zu verwenden, habe ich nicht viele Produkte gefunden, die für die Verwendung mit kleinen Motoren geeignet sind, noch habe ich herausgefunden, wie man 3-Phasen-Generator steuert.
Diese Struktur befand sich ursprünglich in einer Geschichte über die Realzeitberechnung
. Ich mache dies weiter, nachdem der Kurs vorbei ist.
Die Idee des Projekts ist es, ein proportionales Modell eines Hybridautos mit Schwungrad -Energiespeicherung und regenerativem Bremsen zu zeigen.
Der im Projekt verwendete Motor ist ein kleiner Bldcs, das von der beschädigten Computerfestplatte aufgeräumt wird.
In diesem Handbuch wird beschrieben, wie der Arduino-Mikrokontroller und die Hall-
Auswirkungen die Positionssensoren im Fahr- und Regenerativen Bremsmodi beeinflussen.
Bitte beachten Sie, dass der Besuch von Oscillisoft sehr hilfreich ist, wenn nicht nicht wesentlich, um dieses Projekt abzuschließen.
Wenn Sie nicht auf den Umfang zugreifen können, habe ich einige Vorschläge dafür hinzugefügt, wie es ohne den Umfang zu tun hat (Schritt 5).
Eine Sache, die dieses Projekt in keinem tatsächlichen Motorcontroller enthalten sollte, ist eine Sicherheitsfunktion, wie z. B. über den aktuellen Schutz.
Das Schlimmste ist, dass Sie den HD -Motor ausbrennen.
Die Implementierung des Überstromschutzes mit aktueller Hardware ist jedoch nicht schwierig, und vielleicht werde ich das irgendwann tun.
Wenn Sie versuchen, einen größeren Motor zu steuern, fügen Sie bitte den aktuellen Schutz 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 einige 'echte' Arbeiten kann, aber ich habe noch nicht das richtige.
Ich bemerkte, dass eBay ein 86 -W -Auto für ungefähr 40 Dollar verkauft hat.
Sieht nach einem guten Kandidaten aus.
Es gibt auch eine RC -Website namens \ 'gobrrushless \', die Kits verkauft, die ihre eigene Bldc zusammenstellen.
Diese sind nicht zu teuer und es lohnt sich, eine zu bauen.
Bitte beachten Sie, dass es auf dieser Website keinen Hall -Sensor für den Motor gibt. Puh!
Diese Struktur zu schreiben ist ein großer Job.
Ich hoffe, Sie finden es nützlich, bitte machen Sie Ihre Kommentare und Vorschläge.
Digital Multimeter (DMM)-
Wenn Ihr DMM einen Frequenzmesser-Oszilloskop aufweist (
es ist besser, mindestens 2 Kanäle zu haben)
T8 TORX-Treiber (
Sie benötigen einen von ihnen, um eine Festplatte zu öffnen).
Es gibt einen guten Baumarkt.
Maschinenworkshop und schneller Prototyp (
diese sind sehr hilfreich, aber ich denke, dieses Projekt kann ohne sie durchgeführt werden).
Material bldc motor magnetic ring from computer hard disk (
Half of the motor)
From another hard driveSeveral (3-6)
There is a second small motor in the silver disk on the hard disk (DC brushed OK)
Rubber band or (preferably)
The brushless DC motor with a handle with another motor electronic bread plate solid wire month the Arduino Duemilanove 120 k ohm resistor six to 400 ohm resistor linear or rotating Poteniometer100 K OHMST MICRO CIRICAL L6234 Drei-Phase-Motor-Treiber IC Two 100 UF-Kondensatoren Ein 10 nf Kondensator ein 220 nf Kondensator 1 UF-Kondensator Ein 100 UF-Kondensator Drei Empfangsdioden ein Empfang Dioden eins 2.
Honeywell SS411A Bipolar-5-Amp-Fuse 1 Fuse-Halte
. (
Es wird mithilfe der potentiellen Induktion kontrolliert).
Spezifikationen und Beschaffungsinformationen finden Sie in diesen beiden Links: Wenn Sie dieses Projekt durchführen möchten, empfehle ich Ihnen die Zeit, sich die Zeit zu nehmen, um genau zu verstehen, wie das BLDC funktioniert und kontrolliert.
Es gibt eine große Anzahl von Referenzen online (
siehe unten für einige Vorschläge).
Ich füge jedoch einige Diagramme und Tabellen in mein Projekt ein, die Ihnen helfen sollen, das Verständnis zu verstehen.
Here is a list of the concepts that I think are most important to understanding this project: MOSFET transistors 3-phase half-bridge 6-
3-step reduction of sentence
Pulse Width Modulation of phase motor (PWM)Hall-
Microchip AVR443: sensors-general reference DC motor Basic Principles for Digital position sensors
Control of three-phase brushless DC motor based on atmelbrusless DC motor control
Phase BLDC motor control of the Flying Star Hall Sensor, ein gutes Video über die Reinigung des Festplattenmotors, aber der Autor scheint den Motor als Trittmotor und als Trittmotor zu betreiben. Eine spezifischere Referenzwebseite für den BLDC auf dem IC L6234 Motor Drive, einschließlich Datenblättern, Anwendungshinweise und Kaufinformationen.
Kostenlose Probe für PM bürstenlosen Motorantrieb für Hybrid -Elektrofahrzeuge.
Dies ist das einzige Papier, das ich gefunden habe und das die Reihenfolge der regenerativen Bremsphasenänderung beschreibt.
Dieses Papier, regeneratives Bremsen in Elektrofahrzeugen ist nützlich. Ich habe ein paar Zahlen davon geliehen, aber ich denke, es beschreibt falsch, wie die Regeneration funktioniert.
Ich habe dieses Projekt mit einem recycelten Scheibenantriebsmotor durchgeführt, da es einfach zu bestehen war, und ich benutze gerne einen kleinen niedrigen Spannungsmotor, um das von Bldc kontrollierte Kabel zu lernen und keine Sicherheitsprobleme zu verursachen.
Darüber hinaus wird die Magnetkonfiguration des Hallsensors durch Verwendung des Magnetrings (Rotors)
aus dem zweiten dieser Motoren sehr einfach (siehe Schritt 4).
Wenn Sie nicht zu dem Aufwand der Installation und Kalibrierung des Hallsensors gehen möchten (Schritte 5-7),
weiß ich, dass es zumindest einige CD/DVD-Antriebsmotoren in einem Hall-Sensor gebaut gibt.
Um die Trägheit in den Motor zu verleihen und ihnen ein wenig Ladung zu geben, legte ich 5 Festplatten auf den Motor, sanft mit etwas starkem Kleber zusammengeklebt und an den Motor geklebt (
dies machte das Schwungrad in meinem ursprünglichen Projekt).
Wenn Sie den Motor von der Festplatte entfernen möchten, benötigen Sie eine T8 -TORX -Antrage, um das Gehäuse abzuschrauben (
normalerweise befinden sich zwei Schrauben hinter dem Stick auf der Mitte -Etikett)
und innen Schrauben, die den Motor an Ort und Stelle halten.
Sie müssen auch den Kopfleser (
Sound Circle Executive)
auf diese Weise entfernen, die Sie die Speicherplatte herausnehmen können, um den Motor zu erreichen.
Darüber hinaus benötigen Sie einen zweiten Festungsmotor, um den Rotor aus diesem Motor zu entfernen (
es gibt einen Magneten im Inneren).
Um den Motor auseinanderzunehmen, griff ich nach dem Rotor (oben)
einen Schraubstock des Motors und hob ihn auf den Stator (unten).
Die beiden Schraubendreher sind 180 Grad voneinander entfernt.
Es ist nicht einfach, den Motor ohne Verformung an einem engen Paar zu halten.
Vielleicht möchten Sie einen Holzblock bauen,
der für diesen Zweck verwendet wird.
Ich bohrte ein Loch in den Magnetring auf der Drehmaschine, damit es bequem auf den Motor passt.
Wenn Sie die Drehmaschine nicht benutzen können, können Sie den umgekehrten Rotor am Motor mit einem starken Kleber reparieren.
Die Bilder 2 und 3 unten zeigen das Innere eines der Motoren, die ich zerlegt habe.
In der ersten Hälfte dort (der Rotor) befinden sich 8 Pole (
Magnet in Kunststoff eingewickelt).
In der zweiten Hälfte (der Stator)
gibt es 12 Schläfe (Wicklungen).
Jede der drei Motorphasen hat 4 Slots in Reihe.
Einige HD -Motoren haben drei Kontakte unten, einen Kontakt pro Phase, und der andere ist der mittlere Tipp des Motors (
wobei drei Stufen treffen).
In diesem Projekt ist kein Center-Tap erforderlich, kann jedoch bei sensorfreier Kontrolle nützlich sein (
ich hoffe, dass ich eines Tages eine Notiz über die sensorfreie Steuerung veröffentlichen kann).
Wenn Ihr Motor vier Kontakte hat, können Sie die Phase mit Ohmeter identifizieren.
Der Widerstand zwischen dem Mittellader und der Phase ist die Hälfte des Widerstands zwischen zwei beliebigen Phasen.
Der größte Teil der Literatur zu Bldc-Motoren befasst sich mit denen mit einer leiter geformten potenziellen Wellenform, aber der Festplattenmotor scheint ein Rückenpotential zu haben, das wie eine Sinus aussieht (siehe unten).
Soweit ich weiß, funktioniert das Fahren eines Sinus -Wellenmotors mit einer Sinuswellen -PWM gut, obwohl die Effizienz etwas sinken kann.
Wie bei allen Bldc-Motoren besteht dieser aus einer dreiphasigen Halbtransistorbrücke
(
siehe 2. Fotos unten).
Ich benutze das von ST Micro (L6234) hergestellte IC
für die Brücke, auch als Motorfahrer bekannt.
Die elektrische Verbindung von L6234 ist in Schritt 8 dargestellt.
Das dritte Foto unten zeigt ein schematisches Diagramm des Motorfahrers und der drei Motorphasen.
Damit der Motor im Uhrzeigersinn arbeiten kann, wird der Schalter in der folgenden Reihenfolge durchgeführt (
der erste Buchstabe ist der obere Transistor und der zweite Buchstabe ist der untere Transistor)
: Schritt 1 2 3 4 5 6 Uhrzeigersinn: CB, AC, AC, BC, Ba, Ca-Gegenstände im Uhrzeigersinn: BC, Ba, Cb, AC, AC Diese
Stufe-Grad-MOTOR-GRADE ELEKTRISCHE GRADWEIS.
Daher tritt die Drehzahl jedes Motors viermal auf.
Die beiden Sequenzen scheinen gleich zu sein, aber sie sind nicht gleich, da für die 6-
Schritt-Sequenz die Stromrichtung durch die Phase eine Richtung ist und für CCW die Stromrichtung entgegengesetzt ist.
Sie können dies selbst sehen, indem Sie die Spannung der Batterie oder der Stromversorgung auf die Motorphase anwenden.
Wenn Sie die Spannung auftragen, bewegt sich der Motor ein wenig in eine Richtung und stoppt.
Wenn Sie die Spannung in der Phase in einer der oben genannten Sequenzen schnell ändern können, können Sie den Motor manuell drehen.
Transistoren und Mikrocontroller vervollständigen alle diese Schalter sehr schnell und wechseln hundertmal pro Sekunde, wenn der Motor mit hoher Geschwindigkeit läuft.
Bitte beachten Sie außerdem, dass der Motor ein wenig bewegt und dann stoppt, wenn die Spannung auf beide Phasen angewendet wird.
Dies liegt daran, dass das Drehmoment Null ist.
Sie können dies auf dem vierten Foto unten sehen, das das hintere Potenzial eines Paares von Motorphasen zeigt.
Dies ist eine Sinuswelle.
Wenn die Welle durch die X-
Welle geht, ist das durch diese Phase bereitgestellte Drehmoment Null. In der sechsschrittigen
Bldc-Phasenänderungssequenz, die nie aufgetreten ist.
Bevor das Drehmoment einer bestimmten Phase niedrig wird, wird die Leistung auf eine andere Phasenkombination umgestellt.
Größere Bldc -Motoren werden normalerweise von Hallsensoren im Motor hergestellt.
Wenn Sie einen solchen Motor haben, können Sie diesen Schritt überspringen.
Außerdem weiß ich, dass es zumindest einige CD/DVD-Antriebsmotoren in einem ohnehin Hall-Sensor enthalten.
Wenn sich der Motor dreht, werden drei Hallsensoren zur Positionsdetektion verwendet, sodass die Phasenänderung im richtigen Moment durchgeführt wird.
Mein HD -Motor beträgt bis zu 9000 U / min (150 Hz).
Da es 24 Änderungen pro Rad bei 9000 U / min gibt, wird die Maschine alle 280 Mikrosekunden geändert.
Der Arduino-Mikrokontroller arbeitet bei 16 MHz, so dass jeder Taktzyklus 0. 06 Mikrosekunden beträgt.
Ich weiß nicht, wie viele Taktzyklen erforderlich sind, um eine Verringerung des Satzes durchzuführen, aber selbst wenn 100 Taktzyklen erforderlich sind, dauert es für jede Verringerung des Satzes 5 Mikrosekunden.
HD -Motoren haben keine Hallsensoren, daher müssen sie an der Außenseite des Motors installiert werden.
Der Sensor muss in Bezug auf die Motorrotation festgelegt und einer Reihe von Polen ausgesetzt sein, die mit der Motorrotation übereinstimmen.
Meine Lösung besteht darin, den Magnetring aus demselben Motor zu entfernen und den zu steuerenden Motor verkehrt herum zu installieren.
Ich installierte dann drei Hallsensoren über diesem Magnetring, 30 Grad voneinander auf der Motorwelle (
120 Grad Elektromotordrehung).
Mein Hall -Sensorhalter besteht aus einem einfachen Halter, der aus drei von mir verarbeiteten Aluminiumteilen und drei Kunststoffteilen besteht, die auf einem schnellen Prototyp hergestellt wurden.
Wenn Sie diese Tools nicht haben, sollte es nicht schwierig sein, einen anderen Weg zu finden, um die Position anzugeben.
Das Erstellen von Klammern für Hall -Sensoren wird schwieriger sein.
Dies ist eine mögliche Möglichkeit zur Arbeit: 1.
Finden Sie ein Plastikschale mit der richtigen Größe und Sie können den Hallsensor sorgfältig epoxy epoxy. 2.
Eine Vorlage wird auf dem Papier gedruckt, das den gleichen Kreis wie der Magnetringradius hat, und die drei Punkte sind 15 Grad 3 voneinander entfernt.
Kleben Sie die Vorlage auf die Scheibe und verwenden Sie die Vorlage als Leitfaden, um das Hall -Sensor -Epoxid zu sorgfältig zu platzieren.
Nachdem Hallsensoren auf dem Motor installiert sind, verbinden Sie sie mit der unten gezeigten Schaltung und testen Sie sie mit einem DMM oder einem Oszilloskop, um sicherzustellen, dass der Ausgang höher und niedriger wird, wenn sich der Motor dreht.
Ich betreibe diese Sensoren unter 5 V unter Verwendung von Arduino 's 5 V -Ausgang.
Der Hallsensor ist hoch oder niedrig (1 oder 0).
Es hängt davon ab, ob sie die Antarktis oder die Arktis fühlen.
Da sie 15 Grad voneinander entfernt sind, drehen sich die Magnete unter ihnen und ändern die Polarität alle 45 Grad, diese drei Sensoren werden niemals gleichzeitig hoch oder niedrig sein.
Wenn sich der Motor dreht, ist der Sensorausgang 6-
das in der folgende Tabelle gezeigte Schrittmuster.
Der Sensor muss mit der Bewegung des Motors ausgerichtet sein, so dass sich einer der drei Sensoren genau an der Position der Motorphasenwechsel ändert. In diesem Fall
die steigende Kante des ersten Hallsensors (H1) mit der Öffnung der C -Kombination (hoch) und b (niedrig) übereinstimmen.
sollte
Dies entspricht dem Einschalten der Transistoren 3 und 5 im Brückenkreis.
Ich richte den Sensor mit dem Magneten mit einem Oszilloskop aus.
Dazu muss ich drei Kanäle des Umfangs verwenden.
Ich drehe den Motor, indem ich mich mit dem Gürtel des zweiten Motors anschließe und das Rückpotential zwischen den beiden Phasenkombinationen (
A und B, B, A und C) messen
. Dies ist zwei Sinus. Schauen Sie sich
wie die Wellen im Bild unten
das Signal des Hall -Sensors 2 auf Kanal 3 des Oszilloskops an.
Der Hall -Sensorhalter wird gedreht, bis die steigende Kante des Hall -Sensors vollständig mit dem Punkt ausgerichtet ist, an dem die Phasenänderung durchgeführt werden soll (siehe unten).
Mir ist jetzt klar, dass es nur zwei Kanäle gibt, die die gleiche Kalibrierung durchführen.
Wenn der BEMF der Phasenkombination B-
Verwenden von C verwendet wird, hängt die steigende Kante von H2 mit der BC-Kurve zusammen.
Der Grund, warum die Phasenänderung hier durchgeführt werden sollte, besteht darin, das Motordrehmoment immer so hoch wie möglich zu halten.
Das Rückpotential ist proportional zum Drehmoment und Sie werden feststellen, dass jede Phasenänderung auftritt, wenn das Rückpotential unter der nächsten Stadiumkurve verläuft.
Daher besteht das tatsächliche Drehmoment aus dem höchsten Teil jeder Phasenkombination.
Wenn Sie nicht auf den Umfang zugreifen können, ist hier meine Idee der Ausrichtung.
Dies ist tatsächlich eine interessante Übung für alle, die wissen möchten, wie der Bldc -Motor funktioniert.
Wenn die Motorphase A
mit der Stromversorgung (positiv) und B (negativ) angeschlossen ist und die Stromversorgung einschalten, dreht sich der Motor etwas und stoppt.
Wenn dann die negative Leistung in die C -Phase verschoben wird und die Leistung eingeschaltet wird, wird der Motor weiter und stoppt.
Der nächste Teil der Sequenz besteht darin, die positive Leitung in Phase B usw. zu bewegen.
Wenn Sie dies tun, hält der Motor immer an, wo das Drehmoment Null ist. Dies entspricht einem Ort, an dem das Diagramm durch die X-Achse im Diagramm verläuft.
Beachten Sie, dass der Nullpunkt der Kombination aus der dritten Phase der Phasenänderungsposition der ersten beiden Kombinationen entspricht. Daher
der C-Drehmomentposition von B- C-Kombination die steigende Kante von H2 positionieren.
möchten Sie in
Markieren Sie diese Position mit feinen Markierungen oder scharfen Klingen und stellen Sie den Hallsensorhalter mit DMM an, bis der Ausgang von H2 auf dieser Marke genau höher ist.
Auch wenn Sie ein wenig von Ihrem Schulplan abweichen, sollte der Motor gut funktionieren.
Die drei Motorphase erhält Strom vom Drei-Phasen-Motorfahrer L6234.
Ich fand, dass dies ein gutes Produkt ist, das den Test der Zeit bestehen kann.
Es gibt viele Möglichkeiten, Ihre Komponenten versehentlich zu braten, wenn ich keine Elektronikanstrengungen verwendet habe. Ich weiß nicht immer, was los ist.
In meinem Schulprogramm haben wir unsere eigene 3-
Phasen-Halbbrücken-Produktion von 6 MOSFET-Transistoren und 6 Dioden durchgeführt.
Wir haben dies auf dem HIP4086 des anderen Treibers Intersil verwendet, aber wir haben viele Probleme mit diesem Setup, dass
wir ein paar Transistoren und Chips verbrannt haben.
Ich leite L6234 (
so den Motor) bei 12 V.
Der L6234 verfügt über einen ungewöhnlichen Satz von Eingängen, um eine halbe Brücke von 6 Transistoren zu steuern.
Nicht jeder Transistor hat einen Eingang, sondern eine Ensable (EN)
Eingabe für jede der drei Stufen, und dann
wählt ein weiterer Eingang (in) aus, welcher Transistor in der offenen Phase (obere oder untere). Wenn Sie beispielsweise Transistor 1 (obere) und 6 (unter)
einschalten, sind hoch (
sowohl En1 als auch EN3
EN2 niedrig, um die Stufe geschlossen zu halten)
in1 hoch, in3 niedrig.
Dies macht die Phasenkombination-C.
Während die L6234 -Anwendungsnote vorschlug, dass die PWM zur Steuerung der Geschwindigkeit des Motors auf den Pin angewendet wurde, habe ich mich entschlossen, dies auf dem Pin zu tun, da zu diesem Zeitpunkt ich denke, dass es 'seltsam' wäre, das obere und untere Transistor der Phase abwechselnd einzuschalten
. .
Mit meiner Methode wird die hohe Phase mit der
PWM
-Frequenz
deaktiviert Bit klein, für größere Versionen finden Sie in der Dokumentation für L6234.
HINWEIS: Mike Anton hat die PCB für L6234 gemacht, was (glaube ich)
diese Spur ersetzen und Ihnen die Aufgabe des Zusammenbaus speichern wird.
Sehen Sie sich diese Links für Spezifikationen und Kaufinformationen an: Ich habe nicht viel über 3-
Ich werde mein Verständnis dafür beschreiben, wie es funktioniert.
Bitte beachten Sie, dass ich kein Elektroingenieur bin und wir uns über Korrekturen meiner Erklärung freuen würden.
Beim Fahren sendet das Steuerungssystem den Strom in drei Motorphasen auf eine Weise, die das Drehmoment maximiert.
Beim regenerativen Bremsen maximiert das Steuerungssystem auch das Drehmoment, aber diesmal ist es ein negatives Drehmoment, das den Motor verlangsamt, während der Strom an die Batterie zurücksendet.
Die regenerative Bremsmethode, die ich verwendete, stammte aus einem Papier des Nationalen Labors Oakridge in den Vereinigten Staaten. S. Govt.
Ein Labor, das viel nach Automobilmotoren recherchiert.
Das folgende Diagramm stammt aus einem anderen Artikel, mit dem veranschaulicht wird, wie es funktioniert (
ich denke jedoch, dass die in diesem zweite Artikel angegebene Erklärung teilweise falsch ist).
Denken Sie daran, dass beim Drehen des Motors die BEMF -Spannung in der Motorphase auf und ab schwankt.
In der Figur zeigt es den Moment, in dem BEMF in Stufe B hoch ist und in der Bühne niedrig ist.
In diesem Fall ist es möglich, dass der Strom von B nach fließt.
Low-End-Transistoren sind für regeneratives Bremsen entscheidend und schalten schnell ein und aus (
Tausende von PWM-Schalter pro Sekunde).
Wenn der High-End-Transistorschalter ausgeschaltet ist;
Wenn der niedrige Transistor eingeschaltet ist, fließt der Strom, wie im ersten Bild gezeigt.
In Bezug auf die Leistungselektronik ist die Schaltung wie ein Gerät namens Boost -Wandler, bei dem Energie in der Phase des Motors gespeichert wird (
Wikipedia hat einen guten Artikel, in dem erklärt wird, wie der Boost -Wandler funktioniert).
Diese Energie wird freigegeben, wenn der Tiefstweittransistor ausgeschaltet ist. Bei einer höheren Spannung fließt der Strom sofort durch die Diode von \ 'Anti-Anregung \' neben jedem Transistor und kehrt dann zum Batterie zurück.
Die Diode verhindert, dass der Strom von der Batterie zum Motor fließt.
Gleichzeitig interagieren der Strom in diese Richtung (
im Gegensatz zum Fahren)
mit dem Magnetenring, um ein negatives Drehmoment zu erzeugen, das den Motor verlangsamt.
Der Transistor mit niedriger Seite verwendet einen PWM-Schalter, und der Arbeitszyklus von PWM steuert die Bremsmenge.
Beim Fahren wechselt die Kommutation des Motors von einer Kombination zum nächsten, um das höchstmögliche Drehmoment aufrechtzuerhalten.
Die Kommutierung der regenerativen Bremse ist sehr ähnlich, da einiger Schaltmodus den Motor so viel negatives Drehmoment wie möglich erzeugt.
Wenn Sie sich das Video im ersten Schritt ansehen, können Sie sehen, dass die regenerative Bremse gut funktioniert, aber es funktioniert nicht gut.
Ich denke, der Hauptgrund ist, dass der Festplattenmotor, den ich benutze, ein sehr niedriger Drehmomentmotor ist, sodass er nicht viel BEMF erzeugt, außer bei höchster Geschwindigkeit.
Bei geringerer Geschwindigkeit gibt es nur sehr wenig regeneratives Bremsen (falls vorhanden).
Außerdem läuft mein System mit einer relativ niedrigen Spannung (12 V)
, da jeder Pfad durch die Anti-Erregung die Spannung um mehrere Volt reduziert, was auch die Effizienz stark verringert.
Ich verwende normale Gleichrichterdioden und kann eine bessere Leistung erzielen, wenn ich einige spezielle Dioden mit niedrigerem Spannungsabfall verwende.
Unten finden Sie eine Liste von Eingängen und Ausgängen auf Arduino.
Fügen Sie auch Diagramme und Fotos meines Boards hinzu. 2-
Digital entry-Hall 1
120 K resistance of Gnd 3
Digital entry hall 2
120 K resistance of Gnd 4
Hall 3 digital input-
120 K resistance of Gnd 5
1 Digital Output in series with 400 ohm resistor 6
2 Digital outputs in series with 400 ohm resistor 7
3 Digital outputs in series with 400 ohm resistor 9-
Digital Output of EN 1 in series with 400 ohm resistor 10-
Digital Output of EN 2 in series with 400 ohm resistor 11-
The Die digitale Ausgabe von EN 3 ist in Reihe mit einem 400 -Ohm -Widerstand, einem 100 -k -Ohm -Potentiometer, wobei 5 V und GND an beiden Enden angeschlossen sind und in der Mitte einen analogen Pin 0 angeschlossen sind.
Dieses Potentiometer wird verwendet, um die Motordrehzahl und das Bremsvolumen zu steuern.
5 V Netzteil wird auch zum Ausführen von Hallsensoren verwendet (siehe Schritt 5).
Hier ist das gesamte Programm, das ich für Ardjuino geschrieben habe, das Kommentare enthält:/* bldc_congroller 3.. 1.
1* 3 von David Glazer.
Die X-Serie ist ST L6234 3-
Phase-Motor-Treiber IC * Laufen Scheibenantriebsmotor im Uhrzeigersinn * mit regenerativem Bremsen * Motorgeschwindigkeit und Bremsbremsen, gesteuert durch ein einzelnes Potentiometer * Motorposition durch drei Hall-
Effekt-Sensor * Arduino erhält die Ausgangsausgaben von 3 Hallsensoren (Pins 2,3,4) * und konvertieren ihre Kombination
Abzügen.
mit den 1,2, 3 * 3 auf Pins 5,6, 7 (in 1,2,3)
die Simulation in 0 mit dem Potentiometer, um den PWM-Arbeitszyklus zu ändern und sich zwischen dem Fahren und Regenerativen
* Verbinden
ändern
zu
Sie Allstate1
;




​() {PinMode (2, Eingabe);
/Hall 1 PinMode (3, Eingabe);
/Hall 2 PinMode (4, Eingabe);
/L6234 Hall 3/Ausgang des PinMode -Motor -Treibers (5, Ausgang);
/In 1 PinMode (6, Ausgabe);
/In 2 PinMode (7, Ausgabe);
/In 3 PinMode (9, Ausgabe);
/EN 1 PinMode (10, Ausgabe);
/EN 2 PinMode (11, Ausgabe);
/En 3/serial. Beginnen Sie (9600);
Wenn Sie eine serielle Verbindung verwenden, können Sie diese Zeile bitte übernehmen.
Der Flush -Befehl am Ende des Programms.
/* Setzen Sie die PWM-Frequenz auf Pins 9, 10 und 11/Setzen Sie PWM auf 32 kHz für Stifte 9, 10/Ersten Sie alle drei Vor-Divider-Bits: INT Prescalerval = 0x07;
/Erstellen Sie eine Variable namens Prescalerval und setzen Sie sie auf die Binärzahl \ '00000111 \' TCCR1B & = ~ Prescaler
/und den Wert in tccr0b mit einer binären Anzahl von \ '11111000 \' /Now das entsprechende Vorkodierbit fest: int vor dem Vorab-Bit 2 = 1;
/Setzen Sie Prescalerval auf die Binärzahl \ '00000001 \' tccr1b | = Prescalerval2;
/Oder Wert in tccr0b mit einer binären Anzahl von \ '00000001 \' /Setzen Sie PWM auf 32 kHz für Pin 3,11 (
dieses Programm verwendet nur Pin 11)
/Löschen Sie zuerst alle drei Vor-Caler-Bits: TCCR2B & = ~ PRE-CALVAL;
/Und der Wert in TCCR0B mit einer binären Anzahl von \ '11111000 \'/Legen Sie jetzt das entsprechende Vorkodierbit fest: TCCR2B | = Vorkodierbit 2;
/Oder der Wert in tccr0b mit einer binären Anzahl von \ '00000001 \'/Erstens löschen Sie alle drei vorkodierten Bits:}
Die Hauptschleife des/prgrom void Loop () {
/time = millis ();
Zeit nach Beginn des Druckprogramms. println (Zeit); // seriell. drucken(\'\');
Throttle = analograd (0);
/Drosselklappenpotentiometer MSPS = MAP (
Gas, 512,1023, 0,255);
/Das Fahren wird der oberen Hälfte des Potentiometers BSPEED = MAP (
Gas, 0,511.255, 0) zugeordnet;
/Halbpartner regeneratives Bremsen am Boden des Pots/MSPs ed = 100;
/Zum Debuggen von hallstate1 = digitalread (2);
/Leseeingabewert aus Halle 1 2 = Digital Read (3);
/Lesen Sie Eingabewert aus Halle 2 3 = Digital Read (4);
Lesen Sie Eingabewert/numerische Schreiben aus Halle 3 (8, Hallstate1);
/Wenn der entsprechende Sensor in hoher Leistung ist, wird die LED
ursprünglich zum Debuggen von DigitalWrite (9, Hallstate2) eingeschaltet.
// digitalwrite (10, hallstate3); Hallval = (hallstate1)+ (2*hallstate2)+ (4*hallstate3);
/Berechnen Sie die Binärwerte von 3 Hallsensoren/* -serien. print (\ 'h 1: \');
Zum Debuggen des Serienports. println (hallstate1); Serie. print (\ 'h 2: \'); Serie. println (hallstate2); Serie. print (\ 'h 3: \'); Serie. println (hallstate3); Serie. println (\ '\');
*/// seriell. println (mSpeed); // seriell. println (hallval); // seriell. drucken(\'\');
/Überwachung Transistorausgang/Verzögerung (1000);
/* T1 = digitalread (2); // t1 = ~ t1;
T2 = digitalread (4); // t2 = ~ t2;
T3 = digitalread (5); // t3 = ~ t3; Serie. print (t1); Serie. print (\ '\ t \'); Serie. print (t2); Serie. print (\ '\ t \'); Serie. print (t3); Serie. drucken(\'\'); Serie. drucken(\'\'); Serie. print (digitalread (3)); Serie. print (\ '\ t \'); Serie. print (digitalread (9)); Serie. print (\ '\ t \'); Serie. println (digitalread (10)); Serie. drucken(\'\'); Serie. drucken(\'\'); // Verzögerung (500);
*/Fahrphasenänderung/Jede Binärzahl hat einen Fall, der den verschiedenen Transistoren entspricht, die eingeschaltet wurden/Bitmathematik verwendet, um den Wert des Ausgangs Arduino zu ändern:/Portd enthält den Ausgang des In -Pin auf dem L6234 -Treiber/der Ausgang, der verwendet wird, um zu bestimmen, ob der obere Transistor oder der untere Transistor/EN -Pin für jede Phase vom Arduino -Analog. Analog. Analog. Analog, ARDUINO -Analog
. durch Potentiometer gesteuert). if (throttle> 511) {switch (hallval) {
case 3:/portd = 1111xxx00;
/Erwartete Ausgabe von Pin 0-
7 xxx bezieht sich auf die Halleingabe und Portd & = B00011111 sollte nicht geändert werden.
Portd | = B01100000;
/Analowrite (9, mSpeed);
PWM auf einer Phase (
High-End-Transistor) -Analogwrite (10,0);
Phase -B -Verschluss (Dienst = 0) Analogwrite (11.255); // Phase C auf -duty = 100% (
Transistor mit niedrigem Ende);
Fall 1:/portd = b001xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
/Portd | = B00100000;
/Analowrite (9, mSpeed);
PWM auf einer Phase (
High-End-Transistor) -Analogwrite (10.255); // Phase B auf (
Low-End-Transistor) Analogwrite (11,0); // Phase B Off (Duty = 0) Break;
Fall 5:/portd = b101xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
/Portd | = B10100000; Analogwrite (9,0); Analogwrite (10.255); Analogwrite (11, MSpeed); brechen;
Fall 4:/portd = b100xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
Portd | = BYM000;
/Analowrite (9.255); Analogwrite (10,0); Analogwrite (11, MSpeed); brechen;
Fall 6:/portd = b110xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
Portd B11. 000 =;
/Analowrite (9.255); Analogwrite (10, MSpeed); Analogwrite (11,0); brechen;
Fall 2:/portd = b010xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
B0201700 Portd | =;
/Analowrite (9,0); Analogwrite (10, MSpeed); Analogwrite (11.255); brechen; }}
/Regenerative Bremsphasenwechsel /Portd (
Ausgabe von in PIN auf L6234)
Die Stifte sind immer niedrig, sodass während der Regeneration nur niedrige Transistoren in jeder Phase verwendet werden. Bremsen. sonst {
/portd = b000xxx00;
/Erwartete Ausgabe von Pin
0-7 Portd & = B00011111;
Portd | = BYM0000; // Switch (Hallval) {
Fall 3: Analogie Schreiben (9, BSPEED); // Analogwrite (9,0); Analogwrite (10,0); Analogwrite (11,0); brechen;
Fall 1: Analogie schreiben (9, Bspeed); Analogwrite (10,0); Analogwrite (11,0); brechen;
Fall 5: Analogie Schreiben (9,0); Analogwrite (10,0); Analogwrite (11, Bspeed); brechen;
Fall 4: Analogie schreiben (9,0); Analogwrite (10,0); Analogwrite (11, Bspeed); brechen;
Fall 6: Analogie schreiben (9,0); Analogwrite (10, Bspeed); Analogwrite (11,0); brechen;
Fall 2: Analogie schreiben (9,0); Analogwrite (10, Bspeed); Analogwrite (11,0); brechen; }}
/Time = millis ();
Zeit nach Beginn des Druckprogramms. println (Zeit); // seriell. drucken(\'\'); // seriell. spülen();
/Wenn Sie die Verwendung eines seriellen Anschlusses debuggen möchten,
können Sie bitte die Operation, die Arduino in diesem Projekt durchführt, so einfach ist, dass es wie ein Verschwendung scheint, diese Aufgabe mit einem Mikroprozessor zu erledigen.
Tatsächlich empfehlen die Anwendungsnotizen von L6234 ein einfaches programmierbares Gate -Array (
Gal16v8 aus Gitter -Halbleiter), um diesen Job zu erledigen.
Ich bin mit der Programmierung dieses Geräts nicht vertraut, aber die Kosten für IC betragen nur 2 US -Dollar. 39 bei Newark.
Andere ähnliche integrierte Schaltkreise sind ebenfalls sehr billig.
Eine weitere Option besteht darin, die diskreten Logik -Tore zusammenzusetzen.
Ich habe einige relativ einfache Logiksequenzen entwickelt, die das L6234 -IC aus der Ausgabe der drei Hallsensoren treiben könnten.
Das Diagramm für Stufe A ist unten gezeigt, und die Wahrheitstabelle für alle drei Stufen (
damit die logische Schaltung der B- und C -Phasen die 'nicht \' -Tür auf die andere Seite des \ 'oder' nicht \ 'umgestellt werden muss
. Das Problem mit diesem Ansatz ist, dass fast 20 Verbindungen in jeder Bühne erforderlich sind
.

Hoprio Group A Professioneller Hersteller von Controller und Motors wurde im Jahr 2000 gegründet. Gruppenhauptquartier in Changzhou City, Provinz Jiangsu.

Schnelle Links

Kontaktieren Sie uns

WhatsApp: +86 18921090987 
Tel: +86-18921090987 
Hinzufügen: Nr. 19 Mahang South Road, Wujin High-Tech District, Changzhou City, Provinz Jiangsu, China 213167
Eine Nachricht hinterlassen
Kontaktieren Sie uns
Copyright © 2024 Changzhou Hoprio E-Commerce Co., Ltd. Alle Rechte vorbehalten. Sitemap | Datenschutzrichtlinie