Wie fahre ich mit Arduino einen bürstenlosen Motor?

28

Ist es möglich, einen bürstenlosen Motor direkt mit Arduino anzutreiben? Oder sollte ich auf die Steuerung eines bürstenlosen Motors ESC mit PWM-Impulsen zurückgreifen?

Tuupola
quelle
1
Sie könnten vielleicht einen Treiber-Chip von einem alten DVD / CD-ROM-Player bekommen.
Lars

Antworten:

10

Sie sollten auf jeden Fall den ESC verwenden. Bürstenlose Motoren funktionieren am besten, wenn sie mit einer Sinuswelle (oder so nah wie möglich an einer Sinuswelle) betrieben werden. Sie erfordern auch einen ziemlich genauen und komplizierten Satz von Signalen. Das Erzeugen der richtigen Wellenformen und des richtigen Timings von einem Arduino aus wäre schwierig, und es lohnt sich wahrscheinlich nicht, wenn Sie es nicht wirklich brauchen. Sie können jederzeit die Steuerung des ESC von Ihrem Arduino aus veranlassen, wodurch Sie die programmgesteuerte Steuerung sowie die Effizienz und Leistung des ESC erhalten.

jkopel
quelle
Nitpick: Laut Wikipedia ( en.wikipedia.org/wiki/brushless_DC_electric_motor ) funktionieren BLDC-Motoren am besten, wenn sie mit geschaltetem Gleichstrom betrieben werden: voll positiv, nicht angetrieben und voll negativ. Permanentmagnet-Wechselstrommotoren sind so optimiert, dass sie am besten funktionieren, wenn sie von einer Sinuswelle angetrieben werden. das ist der einzige signifikante Unterschied zwischen ihnen. Ich stimme Ihrer Schlussfolgerung zu: Es lohnt sich wahrscheinlich, einen Standard-ESC zu verwenden, anstatt selbst einen zu entwickeln.
Davidcary
4
Der Controller auf einer BLCD könnte sehr gut dieselbe Atmosphäre wie ein Arduino verwenden. Der Vorteil ist also, dass Sie das Detailproblem an eine andere Person weitergeben, um es zu lösen. und Übergabe der Kommutierungsaufgabe auf niedriger Ebene, um die Atmosphäre des Arduino für Aufgaben auf höherer Ebene freizugeben.
Chris Stratton
BLDC-Motoren verwenden im Wesentlichen einen Rechteckwellenantrieb für die Spulen. Auf der Anwenderseite des Controllers (ESC) wird die Gleichstromversorgung plus die vom ESC benötigten Steuersignale verwendet. Sinuswellen treten nicht auf.
Russell McMahon
13

Tatsächlich MUSS man manchmal einfach einen eigenen ESC machen. Auf dem Markt erhältliche Regler sind "kommerzialisiert" und haben ihre eigenen Steuercodes für RC-Geräte wie Flugzeuge, Helis, Autos ...

Zum Beispiel müssen Sie manchmal eine zweiseitige regenerative Bremse haben. Von hinten nach vorne und von hinten nach hinten. Es gibt KEIN RC ESC mit dieser Funktion. Sie haben entweder nur eine regenerative Bremse von vorne bis hinten oder keine. Oder Sie benötigen möglicherweise eine Sensorsteuerung BLDC, aber es gibt nur wenige sensorgesteuerte Regler auf dem Markt, und sie haben nur Funktionen eingebaut, die Sie nicht benötigen, und einige, die Sie unbedingt benötigen !

Das Entwerfen eines eigenen ESC ist eine perfekte Wahl und sogar viel billiger als der billigste ESC für 10 US-Dollar mit RIESIGER Leistung.

Es ist wahr, dass der Steuercode und die Hardware ein Schmerz sein können, aber nach einigem Lesen ist es nur ein Spielzeug.

Es gibt hier ein gutes Tutorial, wie man einen BLDC-Controller mit einem Arduino aus 6 Mosfets und ein paar anderen Dingen herstellt, die man leicht bei Jameco finden kann (sehr schön) Es gibt keine Sensoren wie Gyros usw.

http://www.instructables.com/id/BLDC-Motor-Control-with-Arduino-salvaged-HD-motor/

Sehr nette und leicht zu befolgende Anleitung. Mit dieser Anleitung und nahezu jeder Kombination von Bremsen mit Bremswiderstand, Motorwicklungen oder Batterieladegerät können Sie JEDEN Strom von niedrigen bis zu ultrahohen ESCs erzeugen ...

Mosfets zu benutzen ist nur ein Spielzeug, man kann fast alles machen.

Das Problem ist, dass Sie dieses Mosfet mit einer MCU wie einer Arduio-Platine, die meiner Meinung nach nur 5 V ausgibt, nicht sehr effizient steuern können und die Gate-Spannung des Mosfet für mittlere Spannungen im Bereich von 16-30 V ziemlich viel höher ist. Sie müssen also einen anderen Tansisor verwenden, um die Spannung von Arduino zu erhöhen.

Viel Glück.

Stevenvh
quelle
6

Ich bin ungefähr 30 Minuten lang hin und her gegangen. Ich denke, Sie möchten wahrscheinlich einen ESC verwenden, es sei denn, Sie machen es nur als Lernerfahrung. Eine ordnungsgemäße Steuerung des Motors würde mehr Ressourcen von Ihrem Arduino binden, als ich mir vorstellen kann. Außerdem würden Sie das Ansprechverhalten des Motors auf das der ADC-Abfrage beschränken. Ich würde nicht denken, dass ein ESC zurückgesetzt wird, so soll es gemacht werden.

Scott Murphy
quelle
4

Da es sonst niemand gesagt hat, könnten Sie einen Motor praktisch nicht direkt von einem Arduino aus antreiben, nur weil der AVR-Chip nicht genug Strom liefert, um nützliche Strommengen zu liefern.

Zumindest sollten Sie also eine dreiphasige H-Brücken-Anordnung (sprich: drei „halbe H-Brücken“) erstellen, um die benötigten Ströme zu treiben. Sie benötigen sechs digitale Leitungen, um die Ansteuertransistoren zu betreiben.

Angenommen, Sie hätten dieses Problem mit der Laufwerksfähigkeit gelöst, und das ist nicht trivial, dann müssten Sie den Steuercode eingeben. Diese Motoren haben Permanentmagnetrotoren, sodass Sie das Statorfeld nicht einfach blind drehen und ein nützliches Drehmoment erhalten können. Sie müssen die Ausrichtung des Rotors kennen, um die elektrischen Phasenwinkel so einzustellen, dass Sie ein gleichmäßiges Drehmoment erhalten.

Wie andere bereits gesagt haben, ist es keine Schande, nur einen ESC zu kaufen, es sei denn, Sie möchten die spezifische Lernerfahrung.

JustJeff
quelle
3

Ich denke, es wäre eine großartige Lernübung, aber ESCs verwenden EMF zur Erkennung der Rotation, obwohl Sie dafür optische oder magnetische Sensoren verwenden können. Grundsätzlich müssen 3 Wechselstromphasen erzeugt und im richtigen Moment aktiviert / deaktiviert werden.

Die Drehzahl des Magnetfeldes muss dem Motor angepasst sein, dh wenn Sie beschleunigen möchten, muss das Feld etwas früher und schneller laufen. Sie können auch brechen und das Gegenteil tun.

Eine ausführliche Erklärung finden Sie unter http://www.embedded.com/columns/technicalinsights/196701832?_requestid=137540

Holen Sie sich für einen praktischen Job einen ESC.

ppvi
quelle
Ich dachte zuerst, dass Beschleunigung und Verzögerung so erreicht wurden, wie Sie es beschrieben haben, indem ich das Feld anführte und zurückblieb. aber dann habe ich gelesen, dass die beschleunigung hauptsächlich durch die spannung bestimmt wird (obwohl ich nicht sehen kann, wie sich das verlangsamen könnte). Ich fühle mich ein bisschen verwirrt. funktionieren beide Ansätze für die Beschleunigung? Gibt es einen Grund, den anderen vorzuziehen oder sie zu mischen? Vielen Dank!
Nekromant
2

Sie können es direkt mit Arduino fahren, wenn Sie mit Fahren nicht wörtlich Strom für die Wicklungen liefern wollen - jede MCU wäre dafür viel zu schwach. Außerdem kann Arduino Strom abgeben, aber keinen Strom liefern, obwohl Sie beides für einen bürstenlosen Motor benötigen.

Wenn Sie jedoch zusätzlich zum Arduino einen sehr einfachen H-Bridge-Treiber-IC verwenden, können Sie so ziemlich jede Funktion des ESC implementieren. In der Tat benötigen Sie je nach Anwendung möglicherweise nicht einmal einen E * SC *, was bedeutet, dass Sie möglicherweise keine Drehzahlregelung benötigen. Wenn die Last nicht zu groß ist, können Sie möglicherweise einfach dem Motor vertrauen synchron mit der Erregung der Wicklung zu reagieren, und die Rate der Wicklungsstromänderungen würde vom Arduino kommen. Schauen Sie sich dieses sehr einfache BLDC-Motorsteuerungsschema und die Arduino-Skizze an, die Sie möglicherweise anpassen können, um Ihren Motor anzutreiben. Dieser basiert auf dem Vierfach-H-Brücken-IC SN754410NE, der bei Speicherbelegung bei 750 mA maximal ist.

Der Code ist nicht allzu trivial und nutzt PWM für eine reibungslose Rotation, aber es ist auch nicht zu schwierig, ihn zu analysieren, um ihn an Ihre Anwendung anzupassen. Die aktuelle Arduino-Skizze für den BLDC-Motor finden Sie hier .

ElectroNick
quelle