Im letzten Beitrag haben wir uns mit der Pulsweitenmodulation (PWM) und der Steuerung einer Motordrehzahl mithilfe eines ESP32 und eines MOSFET beschäftigt. Zur vollständigen Steuerung des Motors muss auch die Laufrichtung kontrolliert werden können. Das gelingt mit einer sogenannten Brückenschaltung (H-Brücke) aus vier Transistoren.
Was Du für diesen Teil brauchst
Für diesen Teil benötigst Du keine zusätzlichen Teile. Wir gehen die Motorsteuerung erstmal in der Theorie durch und bauen sie dann im Teil 4: Wir fahren einen Zug.
Ausgangspunkt
Zunächst schauen wir uns nochmal das Schaltbild des Breadboard Aufbaus aus Teil 2: PWM und MOSFET für eine einfache Motorsteuerung an:

Die eine Seite des Motors wird dauerhaft mit +5V versorgt. Die Steuerung der Drehzahl erfolgt über ein Schließen und Öffnen der Verbindung zu GND auf der anderen Seite des Motors. Dies geschieht über den MOSFET, der wiederum durch den ESP32 mit Pulsweitenmodulation (PWM) angesteuert wird.
Vereinfacht kann man das auch so darstellen:

H-Brücke
Für eine Umkehrung der Laufrichtung muss die Polarität an den Anschlüssen des Motors umgekehrt werden. Durch die Anordnung der Leiterbahnen im Schaubild wird bereits erkennbar, dass für diese Umpolung lediglich entsprechende Leitungen von +5V und GND auch auf der jeweils anderen Seite des Motors benötigt werden. Das würde aber natürlich sofort einen Kurzschluss bedeuten, wenn die +5V an den gleichen Motorkontakt wie GND verbunden werden! Daher müssen auch die Leitungen von +5V mit „Schaltern“ versehen werden, damit dann alle Leitungen „abschaltbar“ sind. Das sieht dann im Schaltbild wie der Buchstanbe „H“ aus und bildet somit eine vollständige H-Brücke:

Für den Vorwärts- und Rückwärtslauf werden diagonal gegenüberliegend die Leitungen von jeweils +5V und GND zugeschaltet:


Wichtig ist, dass nie mehr als die beiden diagonal gegenüberliegenden „Schalter“ gleichzeitig geschlossen werden dürfen. Das muss durch die steuernde Logik sichergestellt sein, um einen Kurzschluss zu verhindern. Das könnte man z.B. softwareseitig im ESP32 selbst lösen, indem die für beide Laufrichtungen benötigten Transistoren an Ausgänge zum gleichen PWM-Kanal des ESP32 hinzugefügt werden und über eine entsprechende Verzweigung (z.B. mit switch…case) sichergestellt wird, dass nur jeweils ein Kanal angesteuert wird. Eine andere oder zusätzliche Möglichkeit besteht darin spezielle Hardware zu nutzen, die nicht nur H-Brücken, sondern auch Steuerungslogik in einem Chip vereinen. Solche integrierten Motortreiber wie der L298N oder der TB6612FNG beinhalten entsprechende Schutzlogik.
Vergleich Motortreiber L293D – L298N – TB6612FNG



L293D | L298N | TB6612FNG | |
Kanäle (Anzahl H-Brücken) | 2 | 2 | 2 |
Logik-Spannung (VCC) | 4,5V – 36V | 5V (auf dem Board optional mit eigenem Spannungsregler) | 2,7 – 5,5V |
Motor-Spannung (VM) | VCC – 36V | 4,5V – 46V | 2,5 – 13,5V |
Maximale Dauer-Stromstärke | 600mA | 2A | 1,2A |
Maximale Peak-Stromstärke | 1,2A | 3,2A | 3A |
Spannungsabfall | ca. 1,5V | 0,1V | |
Maximale Schaltfrequenz | 5 kHz | 40 kHz | 100 kHz |
Gehäuse | Klein | Größer, benötigt Kühlblech | Klein |
Der L293D ist zwar mit Abstand der günstigste Chip, fällt aber schon wegen der maximalen Schaltfrequenz von 5kHz raus, da wir die Pfeiffgeräusche umgehen wollen. Dies ist ausfürhlich im Teil 2: PWM und MOSFET für eine einfache Motorsteuerung beschrieben. Bei Spannungen bis 12V sind L298N und TB6612FNG in vielen Bereichen gleichwertig, der L298N ist durch den höheren Dauerstrom etwas robuster und hat auf den gängigen Platinen gleich einen 5V Spannungsregulator mit dabei, der auch weitere Elektronik versorgen kann, z.B. den VIN den ESP32 Breakout-Boards. Durch die modernere MOSFET-Technik im TB6612FNG hat dieser Chip jedoch die deutlich bessere Effizienz, was sich im vergleichsweise sehr kleinen Spannungsabfall bemerkbar macht.
Aufgrund der einfacheren Handhabung der L298N Boards, werde ich im weiteren Tutorial erstmal mit diesen Motortreibern arbeiten. Die Ansteuerung des L298N und des TB6612FNG sind aber von der Logik identisch, so dass ein späterer Austausch problemlos möglich ist (auf HIGH-setzen des STBY-Pins achten, z.B. durch Verbindung zu VCC).
Die Ansteuerung des L298N
Der L298N hat zwei unabhängige H-Brücken (A und B), die über jeweils einen PWM-Signaleingang (EN) und zwei Richtungs-Eingänge (IN) kontrolliert werden. Dies geschieht nach folgendem Schema für Motor A (angeschlossen an OUT1 + OUT2):
ENA | IN1 | IN2 | |
PWM / HIGH | HIGH | LOW | Motor A dreht in Richtung 1 |
PWM / HIGH | LOW | HIGH | Motor A dreht in Richtung 2 |
PWM / HIGH | LOW | LOW | Motor A stoppt |
PWM / HIGH | HIGH | HIGH | Motor A stoppt |
LOW | HIGH / LOW | HIGH / LOW | Motor A stoppt |
Analog geht das genauso für Motor B (OUT3 + OUT4) an den Eingängen ENB, IN3 und IN4.
Jetzt haben wir alle Grundlagen beisammen, um sie in der Praxis auszuprobieren. Weiter geht es mit Teil 4: Wir fahren einen Zug!