Make Magazin 6/2016
S. 86
Grundlagen
Aufmacherbild

DC-Motoren steuern

Viele Selbstbauprojekte sind besonders dadurch reizvoll, weil sich ferngesteuert oder computerkontrolliert etwas bewegt. Da werden Fahrzeuge gesteuert, mittels Pumpen Blumen gegossen oder Cocktails gemixt und Maschinen drehzahlgeregelt. In den meisten Fällen kommen einfache DC-Bürstenmotoren zum Einsatz.

Kleine Stromverbraucher wie LEDs oder Summer lassen sich ohne zusätzliche Beschaltung direkt von den Ausgangspins eines Mikrocontrollers schalten, der meist zwischen 10 und 20 mA liefern kann. Für Elektromotoren reicht das aber bei Weitem nicht aus. Außerdem besitzen Elektromotoren einige weitere Eigenschaften, die man beim Selbstbau einer Motorsteuerung beachten muss.

Gerade für Arduino und kompatible Boards gibt es bereits fertige Shields, die Gleichstrommotoren ansteuern können. Diese Shields sind allerdings nicht für hohe Ströme geeignet und außerdem macht es ja auch Spaß, zu verstehen, was da genau elektrisch passiert.

Im Grundlagenartikel über Elektromotoren in Make 4/16 wurden die verschiedenen mechanischen und elektrischen Eigenschaften der unterschiedlichen Elektromotoren bereits sehr detailliert beschrieben. In diesem Artikel soll es primär um Bürsten-Gleichstrommotoren mit Permanentmagneten gehen, wie sie in Spielzeugen, Kleinpumpen, den meisten Akkuschraubern, Haarföns und dergleichen zur Verwendung kommen. Für die Ansteuerung interessieren besonders die elektrischen Eigenschaften.

Elektrische Eigenschaften

Ersatzschaltbild von DC-Motoren. Der sich drehende Motor erzeugt eine Gegenspannung UEMK.

Das einfache Ersatzschaltbild oben beschreibt das elektrische Verhalten des Motors mit elektronischen Bauteilen, die sich äquivalent verhalten. Da das hervorstechende Merkmal eines Motors die Wicklung aus Kupferdraht ist, leuchtet es vermutlich sofort ein, dass er das Verhalten einer Spule zeigt (im Ersatzschaltbild durch das Spulensymbol L repräsentiert). Da der reale Elektromotor Verluste hat, die durch Kontaktübergangswiderstände und den Widerstand der Wicklung erzeugt werden, wird dies im Ersatzschaltbild durch den Widerstand R berücksichtigt. R ist dabei üblicherweise klein (zwischen 1 und 50 Ohm).

Sobald sich der Motor dreht, fungiert er auch als Generator und erzeugt somit eine Spannung. Die ist durch die Spannungsquelle rechts im Schaltbild berücksichtigt. Sie ist abhängig von der Drehzahl, der Stärke des Statorfeldes und der sogenannten Motorkonstante. Für unsere Betrachtung reicht aus zu verstehen, dass UEMK proportional zur Drehzahl ist und somit im Stillstand 0 Volt beträgt. Beim Leerlaufbetrieb (maximaler Drehzahl) ist UEMK ungefähr gleich groß ist wie die angelegte Spannung U.

Die Leerlaufdrehzahl stellt sich ein, wenn der Motor mechanisch frei läuft (rechts unten im Diagramm). Theoretisch fließt kein Strom, da ja kein Drehmoment benötigt wird. Im wirklichen Leben gibt es aber Reibung, deren Überwindung einen kleinen Stromfluss erfordert.

Das Diagramm zeigt den Generatoreffekt und die Abhängigkeit von der Versorgungsspannung an den Klemmen des Motors.
Wenn man einen Drehzahlmesser und ein Labornetzteil besitzt, kann man das n-I-Diagramm für beliebige Motoren selbst bestimmen.

Steht der Motor bei angelegter Versorgungsspannung still, dann fließt der maximale Strom und das maximale Drehmoment wird erzeugt (links oben im Diagramm). Da die generierte Spannung UEMK = 0 ist, wird der Strom nur durch den Verlustwiderstand R begrenzt. Dieser Zustand wird beim Anlauf schnell überwunden, da der Motor beschleunigt.

Üblicherweise stellt sich im Betrieb eine Drehzahl ein, die von der mechanischen Belastung und der Versorgungsspannung abhängt. Höhere Versorgungsspannung bedeutet höhere Drehzahl. So lässt sich zum Beispiel eine sehr hohe Leerlaufdrehzahl erreichen. Im Anlauf kann dann aber im Extremfall die Motorwicklung verglühen. Durch einen kontrollierten Sanftanlauf kann das verhindert werden (siehe unten). Wird der Motor mit seiner Nennspannung betrieben, die im Datenblatt angegeben ist, dann kann er einfach eingeschaltet werden, ohne dass es zur Überlastung kommt.

Motor ein – Motor aus

Je mehr Spannung am Treibertransistor abfällt, desto höher ist seine Verlustleistung und desto weniger kommt am Motor an.

Hier sollen vor allem Fälle beschrieben werden, bei denen eine Logikschaltung oder ein Mikrocontroller den Motor schaltet. Das heißt, das Steuersignal wechselt typischerweise zwischen 0 V und 5 V. Bei manchen neueren Mikrocontrollern werden auch 3.3 V verwendet.

In Make 2/2014 wurden die verschiedenen Transistorgrundschaltungen bereits detailliert beschrieben. Hier beschränken wir uns auf die Emitterschaltung im Schaltbetrieb. Das heißt, der Transistor wird entweder hochohmig oder komplett in die Sättigung geschaltet, so dass er annähernd wie ein geschlossener Schalter wirkt. Eine Restspannung am Transistor würde eine vom Strom durch den Motor abhängige Verlustleistung verursachen, die nur den Transistor aufheizt und nicht dem Motor zur Verfügung steht.

Der NPN-Bipolartransistor verstärkt den Strom, der in die Basis fließt und stellt ihn am Kollektor zur Verfügung. Schaltet der Mikrocontroller auf 0 V, fließt kein Strom über den Vorwiderstand RB in die Basis des Transistors, so dass auch der Kollektorstrom durch den Motor null ist. Somit wirkt der Transistor hier wie ein geöffneter Schalter – der Motor ist ausgeschaltet.

Soll der Motor durch Anlegen von 5 V am Basiswiderstand eingeschaltet werden, so muss der Vorwiderstand RB so gewählt werden, dass der Transistor voll durchgesteuert wird. RB = (5 V – 0,7 V) / IB. Bei Leistungstransistoren, wie sie hier zur Verwendung kommen, ist die Stromverstärkung hfe oft recht klein. Für einen BD169, der 1 A maximalen Kollektorstrom verträgt, beträgt sie circa 100. Somit muss der Basisstrom mindestens 10 mA betragen, was ein Basisvorwiderstand RB = 430 Ohm sicherstellt. Da die Stromverstärkung variieren und auch die Steuerspannung kleiner sein kann, sollte der Widerstand sicherheitshalber eine Nummer kleiner gewählt werden. Hier bietet sich 330 Ohm an, der nächstkleinere Wert der E6-Reihe.

Zum Unterdrücken einer zerstörerischen Abschalt-Spannungsspitze in der Motor-Induktivität L ist immer eine zum Motor parallel geschaltete Freilaufdiode nötig.

Zündspule

Wie bereits oben beschrieben, müssen wir uns aber auch mit den anderen elektrischen Eigenschaften des Motors beschäftigen. Die relevanten Bauteile des Ersatzschaltbilds: Die Induktivität L wirkt wie ein Energiespeicher (diese und andere Eigenschaften der Spule wurden bereits in einem Grundlagenartikel in Make 2/16 ausführlich beschrieben). Beim Einschalten führt diese Eigenschaft dazu, dass der Strom nur langsam ansteigt, weil das magnetische Feld zunächst aufgebaut werden muss.

Wird der Motorstrom abgeschaltet, dann versucht die Spule, den vorher fließenden Strom aufrechtzuerhalten, was dadurch geschieht, dass die Spannung an der Spule in umgekehrter Richtung stark ansteigt. Die Spannung ist abhängig vom Strom I durch die Spule, der Induktivität L der Spule und der Zeit dt, in der der Strom vom ursprünglichen Wert auf null geändert wird. Im einfachen Fall, dass der Strom linear auf null sinkt ergibt sich dieser Zusammenhang: Uind = L * I/dt. Dies ist auch das Prinzip, das Zündspulen im Verbrennungsmotor nutzen. So können kurzzeitig mehrere tausend Volt induziert werden, die einen Zündfunken erzeugen.

Tabelle: Schalttransistor-Auswahl

Transistoren haben allerdings eine viel niedrigere erlaubte Maximalspannung zwischen Kollektor und Emitter. Beim BD169 sind es zum Beispiel 80 V. Durch das schnelle Abschalten entsteht am Kollektor eine Spannung, die um Uind höher liegt als die Versorgungsspannung. Er würde also beim schnellen Schalten mit hoher Wahrscheinlichkeit zerstört werden.

Im Schaltbild ist bereits die Gegenmaßnahme zu sehen: Durch eine in Sperrrichtung parallel geschaltete Diode wird dem Strom ermöglicht, durch die Diode weiterzufließen. Durch die Verluste in diesem Schaltkreis klingt der Strom recht schnell ab. Die Spannung zwischen Kollektor und Emitter kann so nur maximal bis zur Betriebsspannung plus Schwellspannung an der Diode ansteigen – also bei einer 12-V-Versorgung etwa bis 12,7 V.

Oft wird diese Diode „Schutzdiode“ genannt, was den Zweck gut beschreibt. Alternativ bezeichnet man sie auch als „Freilaufdiode“ entsprechend dem, was sie dem Strom ermöglicht: Frei weiterzulaufen. Man kann die Maximalspannung auch mit einer Z-Diode oder einem Varistor begrenzen, die parallel zwischen Kollektor und Emitter geschaltet werden. Hier klingt der Strom schneller ab, was zum Beispiel bei geschalteten Relais (die auch Spulen enthalten) wünschenswert ist. Bei den hohen Motorströmen ist die Diodenschaltung besser, weil weniger Verlustleistung im Halbleiter entsteht.

Extrembeispiel

Bei der Modellflug-Winde müssen bis zu 200 A geschaltet werden – eine Herausforderung auch an dicke MOSFETs.

Bei dem Projekt „Modellbau-Winde mit Autoanlasser“ sollte mit Transistoren ein Motor geschaltet werden, der beim Anlauf bis zu 200 A aus der Autobatterie zieht. Obwohl gerade diese Motoren eine sehr kleine Induktivität haben, will dieser sehr hohe Strom weiterfließen und erzeugt der Formel oben gemäß sehr hohe Induktionsspannungen. Die ersten Experimente mit 1N4007-Dioden, die 1 A vertragen, endeten mit Rauchzeichen. Nicht etwa am Transistor – wir hatten nicht berücksichtigt, dass die Dioden Ströme in der gleichen Größenordnung vertragen müssen wie die Schalttransistoren.

Mehrere Maßnahmen waren nötig, um das Problem in den Griff zu bekommen: Shottky-Dioden ersetzten die gewöhnlichen Si-Dioden. Diese Si-Metall Diodenstrecken haben eine wesentlich kleinere Schwellspannung, wodurch sich die Leistung (P = U x I) in der Diode verkleinert. Die Schaltfrequenz wurde vermindert (siehe nächsten Abschnitt) und mit einem RC-Glied am Eingang die Schaltzeit verlängert. Das führte zwar auch zu geringfügig höheren Verlusten im Schalttransistor, verringerte aber die Induktionsspannung.

Will man sehr hohe Ströme schalten, dann verwendet man zunächst mal Transistoren, die 20 A oder höhere Ströme schalten können. Soll der Strom – wie im Beispiel der Winde – noch viel höher sein, dann können Transistoren parallel geschaltet werden.

Leider haben Bipolar-Transistoren die unangenehme Eigenschaft, dass sich bei Erwärmung die Basis-Emitterspannung verkleinert. Das führt zu einer Erhöhung des Basisstroms und somit zu einer Stromerhöhung am Kollektor. Somit kann es passieren, dass ein Transistor der Parallelschaltung deutlich mehr zu leisten hat als die anderen. Verhindern kann man das mit einem kleinen Widerstand zwischen Emitter und GND, der durch den höheren Stromfluss einen Spannungsabfall erzeugt und so diesem Effekt entgegenwirkt. Aber gerade bei großen Strömen möchte man diese Verluste vermeiden.

Metalloxid-Feldeffekt-Transistoren (MOSFETs) lösen diese Probleme: Sie werden nicht durch einen Steuerstrom, sondern mit einer Steuerspannung geschaltet. Somit kommt man hier mit sehr kleinen Strömen aus. Durch einen negativen Tempreaturkoeffizienten können sie ohne Weiteres parallel geschaltet werden, um mit sehr hohen Strömen umzugehen. Viele Logik-kompatible Typen erreichen bereits bei 5 V ihre volle Sättigung, so dass sie direkt an die Ausgänge eines Mikrocontrollers angeschlossen werden können. Der Basis-Vorwiderstand kann entfallen, auf die Freilaufdiode kann man indes nicht verzichten.

Tabelle: MOSFET-Auswahl

Mach mal langsam

Viele Anwendungen erfordern eine Drehzahlsteuerung oder gar -regelung. Die Spannung am Motor muss also reduziert werden, um die Drehzahl zu senken (siehe Diagramm). Naheliegend wäre, den Transistor einfach nicht ganz durchzusteuern, so dass eine Spannung zwischen Kollektor und Emitter beziehungsweise Drain und Source übrig bleibt, die nicht dem Motor zur Verfügung steht. Bei 50 Prozent Teillast würde das aber dazu führen, dass die gleiche Leistung, die der Motor benötigt, im Transistor in Wärme umgesetzt werden müsste – eine inakzeptable Lösung.

Mit Pulsweitenmodulation – dem schnellen Ein- und Ausschalten – lässt sich die Spannung viel effizienter einstellen. Hier fungiert der Transistor wieder als Schalter, der nur die Zustände „offen“ und „durchgeschaltet“ erlebt und somit kühl bleibt. Sind die Pulse breit und die Pausen dazwischen kurz, so stellt sich eine hohe mittlere Spannung und damit eine hohe Drehzahl ein, bei schmalen Pulsen reduzieren sich die mittlere Spannung am Motor und die Drehzahl.

Mikrocontroller wie die ATMega-Serie von Atmel (verwendet auf den Arduino-Boards) haben PWM-Ausgänge, die für diese Anwendung ideal geeignet sind. Will man die Motordrehzahl einfach nur mit einem Poti einstellen, reicht bereits eine ganz einfache analoge Schaltung. Ein Beispiel ist hier auf Basis des analogen Timer-ICs NE555 gezeigt.

Hierbei werden lediglich vier Signale des IC benötigt: Der Ausgangspin (Pin 3) steuert die Basis des Treibertransistors und lädt über das Potentiometer R durch die Diode D1 den Kondensator C auf. Über Pin 6 vergleicht das IC die Spannung am Kondensator mit einer internen Referenzspannung. Sobald C bis zu dieser aufgeladen ist, schaltet der Ausgang 3 auf 0 V. Nun wird der Kondensator über D2 und das Poti entladen. Abhängig von der Schleiferposition des Potentiometers dauert entweder der Lade- oder der Entlade-Vorgang länger. Die Frequenz bleibt immer gleich. Sie berechnet sich ungefähr aus f=1/R*C. Die Schaltung lässt sich leicht auf einem Steckbrett aufbauen.

Einfachst-PWM mit NE555: Als Ausgangswerte nehme man 1 µF für den Kondensator und 10 kOhm für das Poti. Der Vorwiderstand Rb berechnet sich aus dem benötigten Basisstrom, er sollte nicht unter 330 Ohm liegen.

Laut oder heiß

Liegt die Frequenz des pulsweitenmodulierten Signals im Hörbereich, so kann es zu unangenehmen Geräuschen kommen, weil die Motorwicklung akustisch schwingt. Eine Frequenz jenseits der 20 kHz vermeidet dieses Problem, erzeugt aber ein anderes: Schaltverluste.

Bei den bisherigen Betrachtungen sind wir davon ausgegangen, dass der Transistor unendlich schnell vom offenen zum geschlossenen Schaltzustand wechselt. Da dies aber in der Realität abhängig vom Transistor und der Beschaltung endliche Zeit braucht, befindet sich der Transistor kurzzeitig in einem nicht voll durchgeschalteten Zustand, den wir ja vermeiden wollen. Die am Transistor zwischen Kollektor und Emitter anliegende Spannung multipliziert mit dem Kollektorstrom beschreibt die Verlustleistung am Transistor während des Schaltvorgangs. Diese wird in Form von Wärme an die Luft abgegeben. Das bedeutet, dass eine höhere Schaltfrequenz den Transistor heiß werden lässt. Ein Kühlkörper wird erforderlich.

Einfache Drehzahlsteller aus China arbeiten meist mit obiger NE555-Schaltung, man erhält sie bei eBay oder Amazon für weniger als fünf Euro.
PWM-Impulse mit dem Oszilloskop gemessen: Eingestellt sind schmale Impulse und demzufolge eine geringe Drehzahl.

Drehzahlregelung ohne Sensor

Mittels Pulsweitenmodulation lässt sich die Drehzahl eines Elektromotors steuern. Will man die Drehzahl aber lastunabhängig auf einem bestimmten Wert halten, so muss sie geregelt werden. Dazu muss man sie messen und per Rückkopplung die Versorgungsspannung entsprechend einstellen. Naheliegend ist natürlich die Drehzahlmessung mit einem optischen oder magnetischen Sensor auf der Motorwelle. Viel einfacher – allerdings etwas weniger genau – ist die Auswertung des Generatoreffekts. Da das Feld durch die Permanentmagneten konstant ist, ist die generierte Spannung UEMK proportional zur Drehzahl. Somit kann man die Motordrehzahl regeln, wenn man diese Spannung kennt. Allerdings lässt sie sich nicht direkt messen, da ja nur die Spannung an den Klemmen des Motors bekannt ist. Außerdem lässt sich der Strom I durch den Motor messen.

Drehzahlregelung mit Mikrocontroller: Ein paar Zeilen Code übernehmen die Aufgabe einer aufwendigen Analogschaltung.

Ein Blick auf das Ersatzschaltbild des Motors zeigt, dass sich durch die Kenntnis dieser beiden Parameter die Generatorspannung errechnen lässt, wenn auch der Verlustwiderstand RV bekannt ist: UEMK = U – I x RV. Den Wert RV kann man mit einem Ohmmeter messen (siehe Bild): Hier sind es rund 20 Ohm.

Die Regelung misst also kontinuierlich den Strom und errechnet daraus die Generatorspannung UEMK. Verkleinert sich UEMK, so bedeutet dies, dass durch eine Lasterhöhung die Drehzahl abgesunken ist – folglich fährt die Regelung die Klemmenspannung U so lange hoch, bis sich wieder dieselbe Generatorspannung einstellt. Da sich hierbei auch der Strom ändert, muss dieser weiter gemessen werden und in die Rechnung einfließen. Verringert sich die Last, so erhöht sich die Drehzahl und damit UEMK – der Regelvorgang läuft umgekehrt ab.

Will man diese Regelung mit einem Mikrocontroller aufbauen, kann der Strom durch einen Spannungsabfall an einem (niederohmigen) Widerstand gemessen werden. Damit nicht zu große Verluste an diesem Widerstand entstehen, sollte der Spannungsabfall nur wenige 100 mV betragen. Je nach Spannungsbereich und Auflösung des analogen Controller-Eingangs kann es notwendig sein, die Spannung zu verstärken. In unserem Aufbau mit einem sehr kleinen Spielzeug-Motor konnten wir einen relativ hohen Messwiderstand verwenden.

Da der Motor über PWM gepulst wird, muss die Spannung am Messwiderstand noch durch ein Tiefpassfilter geglättet werden. Mit CTP = 100 nF und RTP = 15 kOhm erreicht man eine Grenzfrequenz von 100 Hz, was einen Großteil des PWM-Taktes unterdrückt.

Den Gleichstrom-Innenwiderstand RV bestimmt man einfach mit einem Multimeter.

Der Regelalgorithmus kann natürlich den Spannungsabfall Um am Messwiderstand herausrechnen. Also UEMK = U – RV x I – UM, wobei I = UM/RM ist. Somit errechnet sich UEMK = U – UM x (RV/RM – 1). Im einfachen Beispielaufbau mit dem kleinen Motor mit RV = 20 Ohm und einem Messwiderstand RM von 10 Ohm berechnet sich also die generierte Spannung UEMK = U – UM.

Durch Ausgabe der Regelgrößen über die serielle Schnittstelle lässt sich der Regelungsvorgang beobachten. Allerdings wirkt sich die Verlangsamung der Regelschleife auf das Regelverhalten aus. Es kann dadurch zu Schwingungen kommen. Die jeweilige Drehzahl bei einer bestimmten Spannung UEMK muss man experimentell im Leerlauf ermitteln.

Hier der einfache Regelungs-Testaufbau auf einem Steckbrett. Das Multimeter zeigt den Spannungsabfall am Messwiderstand.

Rechtsrum – linksrum

Um die Drehrichtung des Motors umzudrehen, vertauscht man die Polarität der Spannung an den Motorklemmen. Besonders einfach geht das dann, wenn man eine positive und eine negative Spannungsversorgung zur Verfügung hat. Dann bleibt eine Motorklemme mit Masse (Ground/GND, 0 Volt) verbunden, während man die andere entweder mit der positiven oder negativen Versorgungsspannung verbindet. Unter Verwendung von Schalttransistoren ergibt sich eine Art Gegentaktschaltung, die Ähnlichkeit mit Audio-Endstufen aufweist.

Motoransteuerung mit H-Brücke: Die Transistoren arbeiten in Emitterschaltung, damit möglichst wenig Restspannung am geschalteten Transistor abfällt.

In den Anfangsjahren der Fernsteuerungstechnik für den Modellbau wurde diese Schaltungsvariante bei Graupner/Grundig-Fernsteuerungen verwendet, um die damals teuren Transistoren und vor allem Platz zu sparen. Da die Akkus aus vier in Reihe geschalteten NiCd-Zellen zu je 1.2 V bestanden, wurde GND am Mittelabgriff des Akkus angeschlossen. Somit ergeben sich an den anderen Klemmen +2,4 V beziehungsweise –2,4 V. Die Einsparung an Halbleitern wurde allerdings mit einem schlechten Motordrehmoment erkauft, da pro Drehrichtung nur die halbe Versorgungsspannung zur Verfügung stand.

Historische RC-Empfangsstufe: Das modulare Graupner-System verwendete einen 4,8-V-Akku mit Mittelabgriff.

H-Brücke

Effizienter wird die Motorsteuerung mit einer H-Brücke, bei der für beide Drehrichtungen jeweils die volle Betriebsspannung zur Verfügung steht. Eine negative Betriebsspannung oder ein Akku-Mittelabgriff ist dadurch nicht erforderlich. Statt einer Brücke mit PNP- und NPN-Transistor werden jetzt zwei solcher Brücken verwendet, so dass jede der beiden Motorklemmen an U+ beziehungsweise GND geschaltet werden kann. Aus dem Schaltbild erschließt sich auch der Name „H-Brücke“.

Soll der Motor rechts herum laufen, so schaltet man die Transistoren T1 und T4 durch, indem die Basis von T1 über den Vorwiderstand an GND gelegt wird, während die Basis von T4 positive Spannung erhält. Der Strom fließt nun im Schaltbild von links nach rechts durch den Motor (blauer Pfeil). Werden T1 und T4 nun gesperrt und stattdessen T2 und T3 durchgeschaltet, dann fließt der Strom in umgekehrter Richtung und die Drehrichtung des Motors kehrt sich um.

H-Brücken-Steuerung

Auch hier muss es Freilaufdioden geben, da beim Abschalten genauso wie in den einfachen Beispielen oben Spannungsspitzen induziert werden, die die Halbleiter zerstören können. Dieses Schaltungsprinzip wird heute in praktisch jeder DC-Motorsteuerung vom elektrischen Schiebedach im Auto bis zum Servo im Modellbau verwendet.

Der Motor läuft an, wenn zwei diagonal gegenüberliegende Transistoren durchschalten.

Es wird deutlich, dass man das gleichzeitige Durchschalten beider Transistoren einer Seite unbedingt vermeiden muss. Bei schnellem Umschalten kann dieser „Shoot through“-Zustand während der Umschaltzeit auftreten, was zu erhöhten Verlusten und zum Erhitzen der Transistoren führt. Wenn die Schaltung durch einen Mikrocontroller angesteuert wird, kann man durch geschickte Programmierung erreichen, dass immer erst der eine Transistor der H-Hälfte geöffnet wird, bevor der andere nach kurzer Pause durchschaltet.

Auch die H-Brücke kann verwendet werden, um die Drehzahl mittels PWM zu steuern. Soll zum Beispiel im obigen Fall die Drehzahl verringert werden, so kann T1 dauerhaft eingeschaltet bleiben, und das PWM-Signal wird an T4 gelegt.

Im Prinzipschaltbild haben wir die Ansteuerung der Transistoren durch einen Mikrocontroller unterschlagen. Das obenstehende Bild zeigt die Erweiterung der Schaltung für die Ansteuerung mit TTL-kompatiblen Signalen (0 V/5 V). Die Treiber T5 und T6 schalten die PNP-Endstufentransistoren unabhängig davon, wie hoch die Betriebspannung der H-Brücke ist. Die NPN-Transistoren werden genauso angesteuert wie in den einfachen Schaltungen am Anfang des Artikels.

Durch diese Schaltungsvariante werden die unerlaubten Zustände verhindert: T1 und T2 beziehungsweise T3 und T4 können nicht gleichzeitig leiten. Lediglich beim Umschalten kann es kurzzeitig zu einem Querstrom kommen.

Halt, Stopp!

Die H-Brückenschaltung kann bei entsprechender Ansteuerung einen Motor auch schnell abbremsen, zum Beispiel in einem Akkuschrauber oder einem Elektrofahrzeug. Hierbei nutzt man aus, dass ein DC-Motor immer auch als Generator arbeiten kann. Schließt man die beim Auslaufen erzeugte Spannung über einen kleinen Widerstand kurz, so wird die kinetische Energie in Wärme umgewandelt und der Motor kommt schnell zum Stehen. Hierzu werden entweder die oberen oder die unteren beiden Transistoren eingeschaltet.

Auch H-Brücken profitieren vom Einsatz von MOSFET-Leistungstransistoren. Hier werden die NPN-Transistoren durch N-MOS Typen ersetzt und die PNP-Transistoren durch P-MOS-FETs. Auf Basisvorwiderstände kann man hierbei verzichten.

Damit die Verlustleistung klein bleibt, muss der Widerstand RDSON zwischen Drain und Source im aktiven Zustand möglichst nahe null Ohm sein. Technologisch bedingt haben N-MOSFETs einen niedrigeren RDSON als die komplementären P-MOSFETs. Daher werden in professionellen Schaltungen oft alle vier Schalter der H-Brücke mit N-MOSFETs bestückt, zur Ansteuerung der oben liegenden Transistoren sind dann allerdings besondere Schaltungsmaßnahmen erforderlich (zusätzliche Betriebsspannung oder eine sogenannte Bootstrap-Schaltung).

Integrierte H-Brücken

Solange nur kleine Motoren gesteuert werden sollen, vereinfacht sich die Aufgabe durch die Verwendung von integrierten H-Brücken-ICs. Für Motorströme unter 1 A und Versorgungspannungen kleiner als 36 V hat sich der L293 etabliert. Das IC enthält zwei H-Brücken, so dass entweder gleich zwei DC-Motoren angesteuert werden können oder ein zweiphasiger Motor (zum Beispiel Schrittmotor, siehe auch Seite 18). Es ist sogar möglich, jeden Brückenzweig einzeln zu steuern; so lassen sich vier Motoren anschließen, wenn es nur darum geht, diese ein- und auszuschalten.

Innenschaltung des Motor-Treibers L293, hier als Beispiel mit einer H-Brücke und zwei Einzel-Treibern

Die dreieckigen Treiber im Blockschaltbild des Bausteins symbolisieren die komplementären Transistorausgangsstufen. Es gibt zwei Typen dieses Bausteins, die sich im Aufbau der Treiber leicht unterscheiden: Der L293 liefert bis 1 A Motorstrom, Freilaufdioden müssen extern hinzugefügt werden. Beim L293D sind es nur 600 mA Motorstrom, die Freilaufdioden sind aber bereits im IC integriert.

Um einen DC Motor mit L293 und einem Mikrocontroller – hier der Einfachheit halber ein Arduino – zu betreiben, bedarf es zweier beziehungsweise dreier Signal-Ausgänge: Zwei Ausgänge werden an die Treibereingänge 2 und 7 (siehe Bild) des L293 gelegt. Hiermit erfolgt die Richtungssteuerung des Motors. Will man den Motor immer bei maximaler Drehzahl betreiben, so reicht es aus, wenn man den Enable-Pin 1 permanent an +5 V legt. Verbindet man ihn jedoch mit einem PWM-Ausgang des Mikrocontrollers, so kann man über die Pulsweitenmodulation zusätzlich zur Drehrichtung auch die Drehzahl steuern.

H-Brücken-Auswahl Hier die beiden H-Brücken-Treiber-ICs im Vergleich: links der L293 (1 A), rechts der L298 (2 A)

Der L293 benötigt zwei separate Spannungsversorgungen. Die Logikspannung VCC1 an Pin 16 kann direkt mit der 5-V-Leitung des Arduino verbunden werden. Die Motorspannung darf bis zu 36 V betragen und kommt daher aus einer anderen Quelle (Akku, eigenes Netzteil). Vergessen Sie die Masse-Verbindung der vier GND-Pins (4, 5, 12, 13) zum Arduino nicht.

Die vielen Masse-Pins haben noch eine weitere Aufgabe: Sie sollen die Verlustwärme des Chips an die Platine abführen, deshalb sieht ein Platinenentwurf in der Praxis hier eine größere Massefläche in der unmittelbaren IC-Umgebung vor.

PWM-Demo

// L293 Demo mit Potentiometer
#define DRIVE_1 7
#define DRIVE_2 8
#define PWM     9
#define POTI   A0
int potiWert;
int pwmSpeed;
void setup() {
  pinMode(DRIVE_1,OUTPUT);
  pinMode(DRIVE_2,OUTPUT);
  pinMode(PWM,OUTPUT);
  pinMode(PWM,OUTPUT);
}
void loop() {
  potiWert = analogRead(POTI);  // Wert zwischen 0...1024
  if (potiWert > 512) {
     digitalWrite(DRIVE_1, LOW);   // Rechts
     digitalWrite(DRIVE_2, HIGH);
  }
  else {
     digitalWrite(DRIVE_1, HIGH);   // Links
     digitalWrite(DRIVE_2, LOW);
  }
  pwmSpeed = abs(potiWert-512)/2;   // Geschwindigkeit
  analogWrite(PWM, pwmSpeed);
}
Arduino-Sketch für die PWM- und Richtungs-Einstellung mit Potentiometer

In unserem einfachen Beispiel dreht sich der Motor in Abhängigkeit von der Schleiferstellung des Potentiometers, das zwischen 5 V und GND geschaltet ist. Der Analog-Digital-Konverter des Arduino misst die Spannung am Schleifer und übersetzt die Schleiferstellung in den Wertebereich von 0 bis 1024. Bei Werten kleiner als 512 (links von der Mittelstellung des Potis) dreht sich der Motor rechtsherum – bei Werten über dieser Schwelle läuft er in Gegenrichtung. Der Wert des PWM-Ausgangs (und damit die Drehzahl) erhöht sich zu den Endstellungen und ist in der Mittelstellung des Potis gleich Null.

Wenn es etwas mehr Strom sein soll, steigt man zum Beispiel auf den L298 um. Diese integrierte H-Brücke ist bis zu einer Maximalspannung von 46 V und einem maximalen Gesamtstrom von 4 A spezifiziert. Das Gehäuse hat eine große Kühlfläche, die üblicherweise auf einen Kühlkörper montiert wird. So kann auch eine größere Verlustleistung abgeführt werden. Die Beschaltung des L298 ist sinngemäß identisch mit der des L293, so dass es hinreichend sein sollte, hier nur das Schaltbild des L298 zu zeigen. Datenblätter finden Sie unter den folgenden Links. cm