Wie steuert man Gleichstrommotoren der Größe 130 mit einem Arduino (anscheinend 20-A-Gleichstrommotoren)?

Ich bin ein wenig verwirrt über die Spezifikationen und Einschränkungen hier ...

Ich habe 3 (glaube ich, Größe 130) Gleichstrommotoren, die ich mit einem Arduino zu steuern versuche. Sie werden von einem 7,2-V-NiMH-Akkupack betrieben, der durch einige einfache Schalter geregelt wird.

Jetzt weiß ich , dass der Arduino Motoren nicht unabhängig antreiben kann. Mein nächster Gedanke ist also die Verwendung eines Transistors.

Gemäß der Anleitung, der ich folge , zieht jedoch jeder Motor (zwei Motoren?) (Dauer) 15A. Ich schaue mir die Spezifikationen von Dingen wie dem TIP-120 und sogar dem Arduino-Motorschild an, aber sie scheinen nur 0,x mA - 1A pro Kanal steuern zu können.

Dies scheint eine Menge Ampere / ein Tippfehler zu sein, aber der Leitfaden verweist ständig auf diese hohen Ströme (unter Verwendung von Schaltern mit einer Nennleistung von 10 A) - und wenn ich versuche, Gates zu recherchieren, die für so hohe Ströme ausgelegt sind, erhalte ich sehr teure, sehr Nischenkomponenten.

Verkompliziere ich die Dinge zu sehr oder verstehe ich sie falsch? Macht die Spannungserhöhung die Arbeit einfach so viel schwieriger?

Letztendlich ist es mein Ziel, dass der Arduino alle Schalter liest (von denen ich denke, dass ich damit umgehen kann), Logik ausführen und die Ausgabe an die Motoren steuern - bei diesem Teil bin ich mir etwas unsicher.

Wenn Ihre Motoren so viel Strom ziehen (15A), verwenden Sie Relais.
Motoren der Größe 130 ziehen nicht sehr lange 15 A.
@BrianDrummond, was meinst du? 15A ist nur der Strom, der benötigt wird, um sie auf Touren zu bringen, oder ist das eine Überschätzung ihres Strombedarfs (oder die Spannung, die wiederum 15A durch die Motoren fließt, verkürzt ihre Lebensdauer erheblich)?
Schätzen Sie den Temperaturanstieg in diesem Paket von 15A und deren Wicklungswiderstand. Ich gehe davon aus, dass sie es bei einem relativ niedrigen Arbeitszyklus einige Sekunden lang aushalten können. Was für die ursprüngliche Anwendung auf der verlinkten Seite wahrscheinlich in Ordnung ist.
@BrianDrummond Ah, ich verstehe. Nach weiteren Untersuchungen denke ich, dass "15A" die Last beider laufenden Motoren ist. Klingt das vernünftiger? (7A pro Motor (?), obwohl immer noch außerhalb der Reichweite einer einfachen Transistor- / Motorsteuerung)

Antworten (2)

Die Motoren gehen nur in eine Richtung, sodass Sie keine H-Brücke benötigen. Verwenden Sie einfach einen Leistungs-MOSFET mit Logikpegel wie IRL3103, der direkt vom Arduino angesteuert werden kann. Um N-Kanal-FETs zu verwenden, müssen Sie die Schaltung so ändern, dass die Motormasse eher auf Batterieplus als auf Negativ geht, aber das sollte nicht schwierig sein.

Sie sollten auch eine Diode über den Motor legen, um zu verhindern, dass Spannungsspitzen den FET beschädigen, und einen Gate-Widerstand, um Hochfrequenzklingeln zu vermeiden. Die Schaltung könnte etwa so aussehen: -

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Vielen Dank für Ihre Antwort! Wo Sie Motor+ und Motor- haben, sind (können) diese die 2 130-Motoren darstellen, die in Reihe geschaltet sind? Oder würde ich für jeden Motor einen MOSFET / eine Diode / einen Widerstand benötigen (das Paar muss nicht einzeln gesteuert werden)?
Die beiden Schwungradmotoren sind parallel geschaltet und können von einem einzigen FET angesteuert werden. Der Schubmotor hat im ausgeschalteten Zustand einen Kurzschluss, vermutlich um ihn schneller anzuhalten. Möglicherweise müssen Sie einen P-Kanal-MOSFET darüber legen, um diese Schalteraktion zu emulieren.
Sie sollten einen hochohmigen Widerstand vom Gate zur Masse hinzufügen, um das Gate niedrig zu ziehen, wenn das Arduino ausgeschaltet ist oder hochfährt und das gpio schwebt.
Großartig! Kann ich IRL3013s bei meinem örtlichen RadioShack abholen? Ich habe online gesucht, aber die Beute ist gering - laufen sie unter einem anderen Namen?
Das war nur ein Beispiel, viele andere FETs sind gleichwertig oder sogar besser. Vergessen Sie Radio Shack, verwenden Sie seriöse Anbieter elektronischer Komponenten wie Digikey, Mouser usw. Futurlec hat den IRL3803 für 0,90 $ - futurlec.com/Transistors/IRL3803pr.shtml
Ich habe gerade bemerkt, dass ich die Teilenummer im Schaltplan falsch eingegeben hatte! (jetzt korrigiert)
Tolle Antwort, löst genau mein Problem, danke. Es wäre sehr hilfreich und aufschlussreich, wenn Sie erklären könnten, wie D1 gewählt wurde - Warum Schottky? Warum 40V? Warum 3A? Ich habe IRFZ44N und SR360 zur Hand, würden sie funktionieren?
@smirkingman Schottky für schnelles Schalten und geringen Spannungsabfall, 3A, weil es bei Halbgas den halben Motorstrom durchlässt. 40 V, nur weil es sich um eine beliebte Nennspannung handelt (muss deutlich höher sein als die Batteriespannung + Spitzen, daher würden 20 V in dieser Schaltung wahrscheinlich ausreichen). SR360 sollte in Ordnung sein, aber IRFZ44N benötigt einen 10-V-Gate-Antrieb, um vollständig eingeschaltet zu werden, sodass Sie einen Pegelwandler benötigen würden, um ihn von einer 5-V-Logik anzusteuern.

Die Suche nach Hochstrom-Mosfets kann funktionieren, aber dedizierte Motortreiber-ICs oder H-Brückentreiber wären das, was Sie wollen. Alternativ können einige Kfz-Relais dies auch leicht lösen. Sie können sie mit einem Arduino mit einfachen Transistoren oder Fets auslösen.

Nach der Antwort von Bruce würde ich keine H-Brücke brauchen, wenn die Motoren nur in eine Richtung gehen müssen, richtig?
@DaltonA. richtig. Denken Sie daran, dass H-Bridges-Treiber oft auch im Einzellaufwerkmodus verwendet werden können. H-Brücken sind nur zwei Motortreiber, die kombiniert werden, um einen Motor zu steuern.
@DaltonA. Manchmal können Sie Dinge bekommen, die "Halbbrücken" genannt werden, und eine Quad-Halbbrücke könnte verwendet werden, um 4 Motoren in 1 Richtung anzutreiben, oder als H-Brücke, um beispielsweise 2 Motoren bidirektional anzutreiben.