Teil 3: Motorsteuerung mit PWM und H-Brücke

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:

Schaltplan PWM mit MOSFET

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

L293DL298NTB6612FNG
Kanäle (Anzahl H-Brücken)222
Logik-Spannung (VCC)4,5V – 36V5V (auf dem Board optional mit eigenem Spannungsregler)2,7 – 5,5V
Motor-Spannung (VM)VCC – 36V4,5V – 46V2,5 – 13,5V
Maximale Dauer-Stromstärke600mA2A1,2A
Maximale Peak-Stromstärke1,2A3,2A3A
Spannungsabfallca. 1,5V0,1V
Maximale Schaltfrequenz5 kHz40 kHz100 kHz
GehäuseKleinGrößer, benötigt KühlblechKlein

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):

ENAIN1IN2
PWM / HIGHHIGHLOWMotor A dreht in Richtung 1
PWM / HIGHLOWHIGHMotor A dreht in Richtung 2
PWM / HIGHLOWLOWMotor A stoppt
PWM / HIGHHIGHHIGHMotor A stoppt
LOWHIGH / LOWHIGH / LOWMotor 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!

Kommentar verfassen

WordPress Cookie Plugin von Real Cookie Banner