Motoransteuerung: H-Brücke, Treiber-ICs, PWM und Schrittmotortreiber

https://bildung.social/@oerinformatik/

https://oer-informatik.de/motoransteuerung

H-Brücke, Drehrichtungsumkehr, Motortreiber, Sättigungsspannung, Strombegrenzung, Sense-Widerstand, PWM, Tastgrad, Halbbrückentreiber, Bootstrap, Schrittmotortreiber, Prüfungsvorbereitung

tl/dr; (ca. 24 min Lesezeit): Ein Gleichstrommotor dreht andersherum, wenn Du ihn umpolst – und schneller oder langsamer, wenn Du die mittlere Spannung änderst. Dieser Artikel zeigt Schritt für Schritt, wie eine H-Brücke aus Relais, Schützen oder Transistoren die Drehrichtung umkehrt, wie Du ihre Schaltzustände bestimmst, wie Du Motorspannung, Motorstrom und Verluste mit den Datenblattwerten eines Motortreiber-ICs berechnest, wie ein Sense-Widerstand den Strom begrenzt, wie die PWM die Drehzahl einstellt und wie Du die Ansteuersignale misst und zeitrichtig darstellst. Zum Schluss geht es um Gate- und Halbbrückentreiber mit Bootstrap-Schaltung und um Schrittmotortreiber [AI-Assisted]. (Zuletzt geändert am 11.11.2026)

Dieser Artikel baut auf der Kann-Liste der Artikel Elektromotoren, Transistor als Schalter und Interrupts, Timer und PWM auf.

Schon fit in diesem Thema? Nutze die Kann-Liste und die Leitfragen unter dem Artikel als Checkliste, ob Du die relevanten Kompetenzen bereits hast.

Als Elektrotechnik-Grundlagen kann ich nach Durcharbeiten des Artikels…

  • … Umpolschaltungen und H-Brücken (mit Transistoren, Relais oder Schützen) zur Drehrichtungsumkehr eines Gleichstrommotors analysieren und erklären.

  • … die Schaltzustände einer H-Brücke und eines integrierten Motortreibers für Rechtslauf, Linkslauf, Bremsen und Freilauf bestimmen.

  • … Spannungsfälle, Motorspannung und Motorstrom an einem Brückentreiber mit den Werten aus dem Datenblatt berechnen.

  • … die Strombegrenzung einer integrierten Brücke über einen Sense-Widerstand erklären und berechnen.

  • … die Drehzahlsteuerung mit PWM erklären und Periodendauer, Pulsdauer, Tastgrad und mittlere Motorspannung berechnen.

  • … Ansteuersignale einer Motorsteuerung (PWM-Signal, Brückenausgänge) messen, einstellen und zeitrichtig darstellen.

  • … die Funktion von MOSFET-Gate- und Halbbrückentreibern mit Bootstrap-Schaltung erklären und mit anderen Lösungen vergleichen.

  • … die Aufgabe eines Schrittmotortreibers mit Takt- und Richtungseingang und Stromeinstellung beschreiben.

Ein Mikrocontroller-Pin liefert ein paar Milliampere bei 3,3 V. Ein Gleichstrommotor braucht dagegen oft mehrere Ampere bei 12 V oder 24 V, und er soll in beide Richtungen drehen. Zwischen beiden steht deshalb eine Leistungsstufe: Sie schaltet den großen Motorstrom, polt die Spannung am Motor um und lässt sich mit Logiksignalen steuern. Ihr Herzstück ist fast immer die H-Brücke.

Das Bild zeigt eine H-Brücke aus vier MOSFETs. Die beiden farbigen Strompfade zeigen, wie der Motor einmal in die eine und einmal in die andere Richtung durchflossen wird. Um diese Schaltung geht es im ganzen Artikel.

H-Brücke aus vier N-Kanal-MOSFETs -Q1 bis -Q4 mit antiparallelen Freilaufdioden, der Motor -M1 liegt zwischen den Brückenausgängen OUT1 und OUT2, unten fließt der Strom über den Sense-Widerstand R_S nach Masse. Rot: Rechtslauf, -Q1 und -Q4 leiten, OUT1 ist Plus. Orange: Linkslauf, -Q3 und -Q2 leiten, OUT2 ist Plus (mit KI erstellt)

Zum Üben gibt es einen eigenen Artikel mit Aufgaben und einblendbaren Beispiellösungen: Übungsaufgaben zur Motoransteuerung.

Schritt 1: Drehrichtung umkehren – die Umpolschaltung

Bei einem Gleichstrommotor mit Permanentmagnet hängt die Drehrichtung von der Richtung des Ankerstroms ab: Kehrt sich der Strom um, kehrt sich auch die Kraft auf die Leiter um (siehe Elektromotoren). Um die Drehrichtung zu ändern, muss die Steuerung also die Spannung am Motor umpolen.

Die einfachste Lösung ist ein Polwendeschalter: zwei Wechselkontakte, die gemeinsam betätigt werden und die beiden Motoranschlüsse über Kreuz an Plus und Minus legen. Mit Relais entsteht daraus die Relais-Umpolschaltung:

  • Zwei Relais mit je einem Wechsler: Jeder Motoranschluss liegt in Ruhestellung an Minus. Zieht Relais -K1 an, kommt Anschluss 1 an Plus (Rechtslauf); zieht -K2 an, kommt Anschluss 2 an Plus (Linkslauf). Sind beide abgefallen oder beide angezogen, liegen beide Anschlüsse am gleichen Potenzial: Der Motor wird kurzgeschlossen und gebremst.

  • In der Schütztechnik heißt das gleiche Prinzip Wendeschaltung. Weil dort ein Schütz Plus und Minus direkt verbinden könnte, wenn beide gleichzeitig anziehen, werden die Schütze gegenseitig verriegelt (Öffner des einen im Spulenkreis des anderen, siehe Schützsteuerungen).

Relais und Schütze sind robust und trennen galvanisch. Sie schalten aber langsam (einige Millisekunden), ihre Kontakte verschleißen, und für eine Drehzahlsteuerung mit schnellen Impulsen taugen sie nicht. Dafür ersetzt man die Kontakte durch Transistoren.

Schritt 2: Die H-Brücke und ihre Schaltzustände

Eine H-Brücke besteht aus zwei Halbbrücken (Brückenzweigen). Jede Halbbrücke hat einen oberen Schalter (High-Side, zur Versorgung) und einen unteren Schalter (Low-Side, zur Masse); der Verbindungspunkt ist ein Brückenausgang. Der Motor liegt zwischen den beiden Ausgängen OUT1 und OUT2 – zusammen mit den Zweigen sieht die Schaltung aus wie ein „H“.

Mit den Bezeichnungen aus dem Bild oben (-Q1 oben links, -Q2 unten links, -Q3 oben rechts, -Q4 unten rechts) ergeben sich diese Zustände:

Schaltzustände einer H-Brücke
Zustand leitende Schalter OUT1 OUT2 Wirkung auf den Motor
Rechtslauf -Q1 und -Q4 (diagonal) +U_\mathrm{S} 0 V Strom von OUT1 nach OUT2
Linkslauf -Q3 und -Q2 (diagonal) 0 V +U_\mathrm{S} Strom von OUT2 nach OUT1
Bremsen -Q2 und -Q4 (beide unten) oder -Q1 und -Q3 (beide oben) gleich gleich Motor kurzgeschlossen, die Gegenspannung treibt einen Bremsstrom
Freilauf keiner offen offen Motor läuft aus, der Strom klingt über die Dioden ab
verboten -Q1 und -Q2 oder -Q3 und -Q4 (ein Zweig) – – Querstrom: Kurzschluss der Versorgung

Drei Regeln gehören zu jeder H-Brücke:

  • Kein Querstrom: Oberer und unterer Schalter eines Zweigs dürfen nie gleichzeitig leiten, sonst fließt ein Kurzschlussstrom von U_\mathrm{S} direkt nach Masse („shoot-through“). Die Ansteuerung verriegelt deshalb beide gegeneinander und fügt beim Umschalten eine kurze Totzeit ein, in der keiner der beiden leitet.

  • Freilaufdioden: Der Motor ist eine Induktivität. Schaltet die Brücke ab, treibt die Induktivität den Strom weiter. Jede Diode antiparallel zu einem Schalter übernimmt diesen Strom und begrenzt die Spannung auf etwa U_\mathrm{S} + 0{,}7\ \mathrm{V} bzw. -0{,}7\ \mathrm{V}. Ohne sie entstünde eine hohe Induktionsspannung, die die Transistoren zerstört. MOSFETs haben eine solche Diode bereits eingebaut (Body-Diode); für schnelle Brücken setzt man oft zusätzlich schnelle Schottky-Dioden ein.

  • Bremsen statt Kurzschluss: Beim Bremsen sind zwei Schalter auf derselben Seite (beide unten oder beide oben) leitend. Das ist kein Kurzschluss der Versorgung, sondern ein Kurzschluss des Motors: Die vom drehenden Motor erzeugte Gegenspannung treibt einen Strom, der ihn abbremst.

Mit Bipolartransistoren baut man die High-Side meist aus pnp-, die Low-Side aus npn-Transistoren; mit MOSFETs entsprechend aus P- und N-Kanal-Typen. Bei großen Strömen nimmt man auch oben N-Kanal-MOSFETs, weil sie bei gleicher Größe einen kleineren Einschaltwiderstand haben. Dann braucht man aber einen besonderen Treiber (Schritt 8).

Schritt 3: Spannungsfälle und Motorstrom an der Brücke

Im Rechtslauf fließt der Motorstrom I_\mathrm{M} durch zwei Schalter und den Motor in Reihe (und ggf. durch einen Sense-Widerstand R_\mathrm{S}, Schritt 5). Nach der Maschenregel gilt:

U_\mathrm{M} = U_\mathrm{S} - U_\mathrm{High} - U_\mathrm{Low} - U_\mathrm{RS}

Wie groß die Spannungsfälle U_\mathrm{High} und U_\mathrm{Low} sind, hängt von der Art der Schalter ab:

Spannungsfälle an Brücken mit Bipolartransistoren und MOSFETs
Brücke mit Bipolartransistoren Brücke mit MOSFETs
Kennwert im Datenblatt Sättigungsspannung des oberen Transistors U_\mathrm{CEsat(H)} („source saturation voltage“) und des unteren U_\mathrm{CEsat(L)} („sink saturation voltage“), oft auch als Summe („total drop“) Einschaltwiderstand R_\mathrm{DS(on)} je Schalter, oft als Summe von High- und Low-Side
Spannungsfall nahezu konstant, typisch 0,7 V … 2 V je Transistor U_\mathrm{DS} = I_\mathrm{M} \cdot R_\mathrm{DS(on)}, wächst mit dem Strom
Verlustleistung der Brücke P_\mathrm{V} = (U_\mathrm{CEsat(H)} + U_\mathrm{CEsat(L)}) \cdot I_\mathrm{M} P_\mathrm{V} = I_\mathrm{M}^2 \cdot (R_\mathrm{DS(on),H} + R_\mathrm{DS(on),L})

Ein Beispiel mit eigenen Werten: Ein 12-V-Motor nimmt 1,5 A auf.

  • Ein Treiber-IC mit Bipolartransistoren nennt im Datenblatt bei 1,5 A U_\mathrm{CEsat(H)} = 1{,}7\ \mathrm{V} und U_\mathrm{CEsat(L)} = 1{,}1\ \mathrm{V}. Am Motor liegen dann nur 12\ \mathrm{V} - 1{,}7\ \mathrm{V} - 1{,}1\ \mathrm{V} = 9{,}2\ \mathrm{V}, und im IC werden 2{,}8\ \mathrm{V} \cdot 1{,}5\ \mathrm{A} = 4{,}2\ \mathrm{W} in Wärme umgesetzt – ohne Kühlkörper viel zu viel.

  • Ein MOSFET-Treiber mit R_\mathrm{DS(on)} = 0{,}2\ \Omega je Schalter verliert 1{,}5\ \mathrm{A} \cdot 0{,}4\ \Omega = 0{,}6\ \mathrm{V}. Am Motor liegen 11{,}4\ \mathrm{V}, die Verluste betragen nur (1{,}5\ \mathrm{A})^2 \cdot 0{,}4\ \Omega = 0{,}9\ \mathrm{W}.

Den Motorstrom selbst bestimmt der Motor: Läuft er, wirkt seine Gegenspannung U_\mathrm{q} gegen die angelegte Spannung, und es gilt I_\mathrm{M} = (U_\mathrm{M} - U_\mathrm{q}) / R_\mathrm{A} mit dem Ankerwiderstand R_\mathrm{A}. Steht er still (beim Anlauf oder blockiert), ist U_\mathrm{q} = 0 und der Strom wird nur durch R_\mathrm{A} und die Spannungsfälle der Brücke begrenzt. Dieser Anlauf- bzw. Blockierstrom ist ein Vielfaches des Betriebsstroms; für ihn muss der Treiber ausgelegt sein oder eine Strombegrenzung haben.

Schritt 4: Integrierte Motortreiber

Für kleine und mittlere Motoren gibt es die ganze H-Brücke als Motortreiber-IC (Brückentreiber). Häufig sitzen zwei H-Brücken in einem Gehäuse („Dual Full Bridge“), sodass ein Baustein zwei Gleichstrommotoren oder einen bipolaren Schrittmotor ansteuert. Typische Anschlüsse:

  • VS bzw. VM: Versorgung der Brücke (Motorspannung), VCC bzw. VDD: Versorgung der Logik (3,3 V oder 5 V), GND.
  • IN1, IN2: Logikeingänge; bei vielen Bausteinen folgt jeder Ausgang seinem Eingang: IN = 1 schaltet den oberen, IN = 0 den unteren Schalter des Zweigs ein.
  • EN (Enable): Freigabe; mit EN = 0 sind alle Schalter aus.
  • OUT1, OUT2: Brückenausgänge zum Motor.
  • SENSE: Fußpunkt der Brücke für einen Sense-Widerstand zur Strommessung.

Aus diesen Regeln ergibt sich die Logiktabelle, die Du für jeden Baustein im Datenblatt nachsehen solltest:

Logiktabelle eines Brückentreibers mit EN, IN1 und IN2 (x = beliebig)
EN IN1 IN2 OUT1 OUT2 Motor
1 1 0 High Low Rechtslauf
1 0 1 Low High Linkslauf
1 0 0 Low Low Bremsen (über die unteren Schalter)
1 1 1 High High Bremsen (über die oberen Schalter)
0 x x offen offen Freilauf

Die Logik im Baustein sorgt dafür, dass ein Zweig nie gleichzeitig oben und unten leitet; der Querstrom-Zustand lässt sich über die Eingänge gar nicht einstellen. Manche Bausteine haben keinen EN-Eingang. Dann bedeutet IN1 = IN2 = 0 meist Freilauf; die Logiktabelle des Datenblatts entscheidet. Ältere Treiber-ICs arbeiten mit Bipolartransistoren und haben große Spannungsfälle (Schritt 3), neuere mit MOSFETs. Viele enthalten außerdem eine Übertemperatur- und Unterspannungsabschaltung.

Schritt 5: Strom begrenzen mit dem Sense-Widerstand

Damit der Treiber beim Anlauf oder bei blockiertem Motor nicht überlastet wird, misst er den Strom. Dazu liegt zwischen dem Fußpunkt der Brücke (SENSE) und Masse ein kleiner Sense-Widerstand R_\mathrm{S} (Shunt, typisch 0,05 Ω … 1 Ω). Der Motorstrom fließt im eingeschalteten Zustand durch ihn und erzeugt die Spannung

U_\mathrm{RS} = I_\mathrm{M} \cdot R_\mathrm{S}

Ein Komparator vergleicht U_\mathrm{RS} mit einer Referenzspannung U_\mathrm{ref}. Steigt der Strom so weit, dass U_\mathrm{RS} \geq U_\mathrm{ref} wird, schaltet die Brücke für eine kurze Zeit ab (Chopper-Betrieb); danach schaltet sie wieder ein. Im Mittel bleibt der Strom so auf

I_\mathrm{max} = \frac{U_\mathrm{ref}}{R_\mathrm{S}}

begrenzt. Ein Beispiel: Mit R_\mathrm{S} = 0{,}33\ \Omega und U_\mathrm{ref} = 0{,}5\ \mathrm{V} ist I_\mathrm{max} \approx 1{,}5\ \mathrm{A}. Manche Bausteine teilen U_\mathrm{ref} intern noch durch einen Faktor; maßgeblich ist die Formel im Datenblatt. Ohne eingebauten Komparator kann auch der Mikrocontroller U_\mathrm{RS} mit dem AD-Umsetzer messen und die Brücke abschalten.

Zwei Dinge sind dabei zu beachten: Der Sense-Widerstand verringert die Motorspannung um U_\mathrm{RS} (deshalb klein wählen), und seine Verlustleistung P = I_\mathrm{M}^2 \cdot R_\mathrm{S} bestimmt die nötige Bauform.

Schritt 6: Drehzahl einstellen mit PWM

Die Drehzahl eines Gleichstrommotors ist ungefähr proportional zur mittleren Ankerspannung. Statt die Spannung verlustreich mit einem Widerstand oder Linearregler zu verringern, schaltet die Brücke sie sehr schnell ein und aus: Pulsweitenmodulation (PWM). Die Grundlagen der PWM-Erzeugung im Mikrocontroller stehen im Artikel Interrupts, Timer und PWM.

T = \frac{1}{f} \qquad t_\mathrm{ein} = D \cdot T \qquad \overline{U}_\mathrm{M} = D \cdot U_\mathrm{M}

Dabei ist f die PWM-Frequenz, T die Periodendauer, t_\mathrm{ein} die Pulsdauer, D = t_\mathrm{ein} / T der Tastgrad und U_\mathrm{M} die Spannung am Motor während der Einschaltzeit. Die Ankerinduktivität glättet den Strom: Er steigt in der Einschaltzeit etwas an und fällt in der Ausschaltzeit etwas ab, bleibt aber nahe am Mittelwert.

Das Diagramm zeigt die Signale für Rechtslauf mit D = 75\ \% bei f = 20\ \mathrm{kHz} und U_\mathrm{S} = 12\ \mathrm{V} (idealisiert, ohne Spannungsfälle). Die PWM liegt an IN1, IN2 bleibt 0. In der Ausschaltzeit leiten beide unteren Schalter: Der Motor ist kurzgeschlossen, sein Strom fließt im Kreis weiter und klingt nur langsam ab („slow decay“). Gibt man die PWM stattdessen auf EN, ist die Brücke in der Ausschaltzeit offen, und der Strom fließt über die Freilaufdioden gegen die Versorgung zurück („fast decay“); er sinkt dann schneller, und die Drehzahl hängt stärker von der Last ab.

Zeitrichtige Darstellung der Ansteuersignale bei PWM: IN1 ist ein Rechtecksignal zwischen 0 und 3,3 V mit Periodendauer 50 Mikrosekunden und Pulsdauer 37,5 Mikrosekunden (Tastgrad 0,75), IN2 bleibt 0. Die Ausgangsspannung u_OUT1 springt zeitgleich zwischen 0 und 12 V, u_OUT2 bleibt 0. Die Motorspannung u_M ist ein Rechteck zwischen 0 und 12 V mit dem Mittelwert 9 V. Der Motorstrom i_M steigt in der Einschaltzeit leicht an und fällt in der Ausschaltzeit leicht ab, er schwankt um seinen Mittelwert (mit KI erstellt)

Bei der Wahl der PWM-Frequenz gilt:

  • Zu niedrig (einige hundert Hertz): Der Strom schwankt stark, der Motor brummt oder pfeift hörbar.
  • Über etwa 16 kHz: außerhalb des Hörbereichs, der Strom ist glatt. Typisch sind 16 kHz … 25 kHz.
  • Zu hoch: Bei jedem Umschalten entstehen Schaltverluste in den Transistoren, die mit der Frequenz wachsen; außerdem verkürzen Totzeiten den nutzbaren Tastgrad.

Um die Drehrichtung zu wechseln, legt die Steuerung die PWM auf den anderen Eingang (Linkslauf: IN1 = 0, PWM an IN2). Vor dem Umschalten bei hoher Drehzahl lohnt es sich, den Motor erst abzubremsen, damit der Treiber nicht den doppelten Strom aus Versorgung und Gegenspannung abbekommt.

Schritt 7: Ansteuersignale messen und darstellen

Bei Inbetriebnahme und Fehlersuche prüfst Du mit dem Oszilloskop, ob die Signale stimmen. Die Grundlagen der Bedienung stehen im Artikel Oszilloskop.

  • Steuersignal: Tastkopf an IN1 bzw. EN, Masseklemme an GND. Daraus liest Du Periodendauer, Pulsdauer und Tastgrad ab; viele Oszilloskope messen f und D automatisch. Stimmt der Tastgrad nicht mit dem Programm überein, liegt der Fehler in der Software oder im Timer.

  • Brückenausgänge: Zwei Kanäle, beide Tastköpfe gegen GND: Kanal 1 an OUT1, Kanal 2 an OUT2. Die Motorspannung ist die Differenz; die Rechenfunktion des Oszilloskops zeigt u_\mathrm{M} = u_\mathrm{OUT1} - u_\mathrm{OUT2} (Math: CH1 − CH2). Nie die Masseklemme an OUT2 anschließen: Die Masseklemme ist über den Schutzleiter des Oszilloskops mit Erde verbunden. Liegt die Versorgung der Brücke ebenfalls auf Erde, schließt die Klemme den unteren Schalter kurz.

  • Motorstrom: Die Spannung am Sense-Widerstand ist dem Strom proportional (i_\mathrm{M} = u_\mathrm{RS} / R_\mathrm{S}). Sie zeigt den Strom aber nur, solange die Brücke Strom aus der Versorgung zieht; in der Ausschaltzeit fließt er an R_\mathrm{S} vorbei. Den vollständigen Verlauf zeigt eine Stromzange.

  • Spannungsfälle: Misst Du an den Ausgängen im eingeschalteten Zustand nicht U_\mathrm{S} und 0 V, sondern z. B. 10,5 V und 0,9 V, sind das die Sättigungsspannungen bzw. I_\mathrm{M} \cdot R_\mathrm{DS(on)} aus Schritt 3.

Wenn Du die Signale zeitrichtig darstellst (z. B. für eine Dokumentation oder eine Aufgabe), zeichnest Du sie wie im Diagramm oben untereinander auf eine gemeinsame Zeitachse: oben die Logiksignale, darunter die Ausgänge, die Motorspannung und ggf. den Strom. Flanken, die gleichzeitig passieren, stehen senkrecht übereinander. Pegel, Periodendauer und Pulsdauer werden bemaßt.

Aufbau zum Ausprobieren

Für Versuche genügt ein kleiner Gleichstrommotor an einem Motortreiber-Modul mit MOSFET-H-Brücke. Der ESP32-C6 gibt die Signale an GPIO19 (IN1) und GPIO18 (IN2) aus. Die Logik des Moduls wird mit 3,3 V versorgt, der Motor (VM) für den Versuch mit 5 V aus dem USB-Anschluss. Das reicht nur für kleine Motoren bis etwa 300 mA; größere Motoren bekommen ein eigenes Netzteil, dessen Minuspol mit GND des Mikrocontrollers verbunden wird.

Steckbrettaufbau: ESP32-C6-Board links auf dem Steckbrett, rechts daneben ein rotes Motortreiber-Modul mit den Anschlüssen IN1, IN2, VCC, GND, VM, OUT1 und OUT2. Gelbes Kabel von GPIO19 zu IN1, blaues Kabel von GPIO18 zu IN2, rotes Kabel von 3V3 zu VCC, oranges Kabel von 5V zu VM, schwarzes Kabel von GND zu GND. Ein weißes Kabel führt von OUT1 zu M+ und ein graues von OUT2 zu M- des Gleichstrommotors unterhalb des Steckbretts (mit KI erstellt)
Verdrahtung des Versuchsaufbaus
Bauteil Anschluss ESP32-C6 Bemerkung
Motortreiber-Modul IN1 GPIO19 PWM für Rechtslauf
Motortreiber-Modul IN2 GPIO18 PWM für Linkslauf
Motortreiber-Modul VCC 3V3 Logikversorgung
Motortreiber-Modul VM 5V Motorversorgung (nur kleine Motoren)
Motortreiber-Modul GND GND gemeinsame Masse
Gleichstrommotor M+ / M- – an OUT1 / OUT2 des Moduls

Im Programm (Arduino-Core für den ESP32 ab Version 3) erzeugt ledcAttach() an beiden Pins eine PWM mit 20 kHz und 8 Bit Auflösung; ledcWrite() stellt den Tastgrad ein (0 … 255):

const int IN1 = 19, IN2 = 18;

void motor(int geschwindigkeit) {          // -255 ... +255
  if (geschwindigkeit >= 0) {              // Rechtslauf: PWM an IN1, IN2 = 0
    ledcWrite(IN2, 0);
    ledcWrite(IN1, geschwindigkeit);
  } else {                                 // Linkslauf: PWM an IN2, IN1 = 0
    ledcWrite(IN1, 0);
    ledcWrite(IN2, -geschwindigkeit);
  }
}

void setup() {
  ledcAttach(IN1, 20000, 8);               // 20 kHz, 8 Bit
  ledcAttach(IN2, 20000, 8);
}

void loop() {
  motor(192);  delay(2000);                // Tastgrad 192/255 = 75 %, rechts
  motor(0);    delay(500);                 // auslaufen bzw. bremsen (je nach Modul)
  motor(-128); delay(2000);                // Tastgrad 50 %, links
  motor(0);    delay(500);
}

Mit dem Oszilloskop an GPIO19 und OUT1 kannst Du jetzt nachmessen, ob Frequenz und Tastgrad stimmen. Die Fritzing-Datei des Aufbaus liegt im Ordner fritzing/ des Quell-Repos.

Schritt 8: Gate- und Halbbrückentreiber mit Bootstrap

Bei großen Strömen (einige Ampere bis über 100 A) baut man die Brücke aus einzelnen N-Kanal-MOSFETs. Ein Mikrocontroller kann diese nicht direkt schalten, aus zwei Gründen:

  • Gate-Ladung: Ein Leistungs-MOSFET hat eine große Gate-Kapazität (Gate-Ladung Q_\mathrm{G} von einigen 10 nC bis über 100 nC). Damit er schnell und verlustarm umschaltet, muss sie in Bruchteilen einer Mikrosekunde umgeladen werden – mit Spitzenströmen von 1 A und mehr. Außerdem braucht der MOSFET für einen kleinen R_\mathrm{DS(on)} eine Gate-Source-Spannung von etwa 10 V, nicht 3,3 V. Ein Gate-Treiber liefert beides.

  • High-Side: Der Source-Anschluss des oberen MOSFETs liegt am Brückenausgang. Leitet er, liegt der Ausgang fast auf U_\mathrm{S}, und das Gate muss dann noch etwa 10 V über U_\mathrm{S} liegen. Diese Spannung gibt es in der Schaltung zunächst nicht.

Ein Halbbrückentreiber steuert die beiden MOSFETs eines Zweigs. Er hat einen Low-Side-Teil (Ausgang LO, bezogen auf Masse) und einen „schwimmenden“ High-Side-Teil (Ausgang HO, bezogen auf den Brückenausgang VS). Viele Bausteine verriegeln die Eingänge und fügen eine Totzeit ein. Den High-Side-Teil versorgt am einfachsten eine Bootstrap-Schaltung:

Halbbrückentreiber -K1 mit Bootstrap-Schaltung: Die 12-V-Treiberversorgung liegt an VCC und über die Bootstrap-Diode -R1 an VB. Der Bootstrap-Kondensator -C1 liegt zwischen VB und VS. HO steuert das Gate des oberen MOSFETs -Q1, LO das Gate des unteren MOSFETs -Q2. Der Verbindungspunkt beider MOSFETs ist VS und führt zum Motor. Ablauf: Leitet -Q2, liegt VS bei etwa 0 V und -C1 lädt sich über -R1 auf etwa 12 V auf. Soll -Q1 leiten, steigt VS auf U_S, -C1 hebt VB auf U_S plus 12 V, die Diode sperrt, und HO liegt 12 V über VS (mit KI erstellt)
  1. Laden: Solange der untere MOSFET -Q2 leitet, liegt VS fast auf 0 V. Der Bootstrap-Kondensator -C1 lädt sich über die Bootstrap-Diode -R1 aus der Treiberversorgung auf etwa 12\ \mathrm{V} - U_\mathrm{F} auf.
  2. Schalten: Soll -Q1 leiten, legt der Treiber die Spannung von -C1 zwischen Gate und Source von -Q1. Mit dem Einschalten steigt VS auf U_\mathrm{S}; der Kondensator „hebt“ VB mit nach oben auf etwa U_\mathrm{S} + 12\ \mathrm{V}. Die Diode sperrt jetzt und schützt die Treiberversorgung.
  3. Nachladen: Jedes Einschalten entnimmt -C1 die Gate-Ladung Q_\mathrm{G}, dazu kommen Leckströme. Er muss deshalb in jeder PWM-Periode kurz über den unteren MOSFET nachgeladen werden.

Für die Auslegung des Bootstrap-Kondensators gilt: Die Ladung Q_\mathrm{G} darf seine Spannung nur um einen kleinen Betrag \Delta U senken, damit der MOSFET voll durchgesteuert bleibt.

C_\mathrm{BS} \geq \frac{Q_\mathrm{G}}{\Delta U}

In der Praxis wählt man ein Mehrfaches dieses Werts (Faktor 5 … 10), weil auch Leckströme und der Ruhestrom des High-Side-Teils den Kondensator entladen. Die Folge der Nachladung: Ein Tastgrad von 100 % ist mit Bootstrap nicht dauerhaft möglich, und bei sehr langen Einschaltzeiten (z. B. sehr niedrigen PWM-Frequenzen) sinkt die Gate-Spannung ab. Ein Vergleich mit anderen Lösungen:

Lösungen für die Ansteuerung des oberen Schalters
Lösung Prinzip Vorteile Nachteile
Bootstrap Kondensator wird über den unteren Schalter geladen und mit VS angehoben einfach, wenige Bauteile, preiswert kein Dauer-Ein (100 %), Kondensator muss passend dimensioniert sein
Ladungspumpe Oszillator und Kondensatoren erzeugen dauerhaft eine Spannung über U_\mathrm{S} 100 % Tastgrad möglich, oft in Treiber-ICs eingebaut nur kleine Ströme, langsame Gate-Umladung, Störaussendung des Oszillators
P-Kanal-MOSFET oben Gate wird gegen U_\mathrm{S} nach unten gezogen keine Spannung über U_\mathrm{S} nötig größerer R_\mathrm{DS(on)} und teurer bei gleichem Strom
isolierter Treiber eigene, galvanisch getrennte Versorgung (DC/DC-Wandler) und Signalübertragung (Optokoppler, Übertrager) 100 % Tastgrad, hohe Spannungen, galvanische Trennung aufwendig und teuer

Schritt 9: Schrittmotortreiber

Ein bipolarer Schrittmotor hat zwei Wicklungen, die abwechselnd in beide Richtungen bestromt werden (siehe Elektromotoren). Ein Schrittmotortreiber enthält dafür zwei H-Brücken, eine Ablaufsteuerung und für jede Brücke eine Strombegrenzung. Der Mikrocontroller braucht nur wenige Signale:

  • STEP (Takt): Jeder Impuls bewegt den Motor um einen Schritt weiter; die Taktfrequenz bestimmt die Drehzahl.
  • DIR (Richtung): legt die Drehrichtung fest.
  • EN (Enable): schaltet die Endstufen ein oder aus; ohne Strom hat der Motor kein Haltemoment.
  • Schrittmodus (z. B. MS1 … MS3): Voll-, Halb- oder Mikroschritt. Im Mikroschritt stellt der Treiber die Wicklungsströme stufenweise sinusförmig ein; der Motor läuft ruhiger.

Schrittmotoren werden meist mit einer Versorgungsspannung betrieben, die deutlich über der Nennspannung der Wicklung liegt, damit der Strom trotz der Wicklungsinduktivität schnell ansteigt. Den Strom begrenzt der Treiber im Chopper-Betrieb über die Sense-Widerstände (Schritt 5). Eingestellt wird er mit einer Referenzspannung, oft über ein Potenziometer auf dem Modul: Nach der Formel im Datenblatt ergibt sich aus U_\mathrm{ref} und R_\mathrm{S} der Wicklungsstrom, der zum Nennstrom des Motors passen muss. Zu viel Strom überhitzt Motor und Treiber, zu wenig führt zu Schrittverlusten.

Leitfragen

  1. Wie kehrst Du die Drehrichtung eines Gleichstrommotors mit Relais, mit Schützen und mit Transistoren um?

In allen Fällen wird die Spannung am Motor umgepolt. Zwei Relais mit Wechslern legen je einen Motoranschluss an Plus oder Minus; Schütze in einer Wendeschaltung werden gegeneinander verriegelt. Mit Transistoren entsteht eine H-Brücke, in der je zwei diagonale Schalter leiten. siehe Abschnitt „Schritt 1: Drehrichtung umkehren – die Umpolschaltung“

  1. Welche Schalter einer H-Brücke leiten bei Rechtslauf, Linkslauf, Bremsen und Freilauf, und welche Kombination ist verboten?

Rechts- und Linkslauf: je zwei diagonale Schalter; Bremsen: beide unteren oder beide oberen; Freilauf: keiner. Verboten sind oberer und unterer Schalter desselben Zweigs, weil dann ein Querstrom die Versorgung kurzschließt. siehe Abschnitt „Schritt 2: Die H-Brücke und ihre Schaltzustände“

  1. Wie berechnest Du die Motorspannung und die Verlustleistung an einem Brückentreiber aus dem Datenblatt?

Von der Versorgungsspannung werden die Spannungsfälle der beiden leitenden Schalter (Sättigungsspannungen bzw. I_\mathrm{M} \cdot R_\mathrm{DS(on)}) und des Sense-Widerstands abgezogen. Die Verlustleistung ist die Summe der Spannungsfälle mal dem Motorstrom bzw. I_\mathrm{M}^2 \cdot (R_\mathrm{DS(on),H} + R_\mathrm{DS(on),L}). siehe Abschnitt „Schritt 3: Spannungsfälle und Motorstrom an der Brücke“

  1. Was bedeuten IN1, IN2 und EN an einem Motortreiber-IC?

IN1 und IN2 legen fest, ob der obere oder untere Schalter des jeweiligen Zweigs leitet (Rechtslauf, Linkslauf, Bremsen). EN gibt die Brücke frei; mit EN = 0 sind alle Schalter aus und der Motor läuft frei aus. siehe Abschnitt „Schritt 4: Integrierte Motortreiber“

  1. Wie begrenzt ein Treiber den Motorstrom mit einem Sense-Widerstand?

Der Strom erzeugt am Sense-Widerstand die Spannung I_\mathrm{M} \cdot R_\mathrm{S}. Erreicht sie die Referenzspannung, schaltet die Brücke kurz ab. Der Strom bleibt so auf I_\mathrm{max} = U_\mathrm{ref} / R_\mathrm{S} begrenzt. siehe Abschnitt „Schritt 5: Strom begrenzen mit dem Sense-Widerstand“

  1. Wie hängen PWM-Frequenz, Periodendauer, Pulsdauer, Tastgrad und mittlere Motorspannung zusammen, und welche Frequenz wählst Du?

T = 1/f, t_\mathrm{ein} = D \cdot T, \overline{U}_\mathrm{M} = D \cdot U_\mathrm{M}. Üblich sind 16 kHz bis 25 kHz: oberhalb des Hörbereichs, aber mit noch kleinen Schaltverlusten. siehe Abschnitt „Schritt 6: Drehzahl einstellen mit PWM“

  1. Wie misst Du die Spannung am Motor einer H-Brücke mit dem Oszilloskop, und was musst Du dabei vermeiden?

Beide Brückenausgänge mit je einem Kanal gegen GND messen und die Differenz mit der Rechenfunktion bilden. Die Masseklemme darf nicht an einen Brückenausgang, weil sie über den Schutzleiter geerdet ist und einen Schalter kurzschließen kann. siehe Abschnitt „Schritt 7: Ansteuersignale messen und darstellen“

  1. Wozu dient die Bootstrap-Schaltung eines Halbbrückentreibers, und wo liegen ihre Grenzen?

Sie erzeugt die Gate-Spannung für den oberen N-Kanal-MOSFET, die über der Versorgungsspannung liegen muss: Der Kondensator lädt sich auf, während der untere MOSFET leitet, und wird mit dem Brückenausgang angehoben. Weil er regelmäßig nachgeladen werden muss, ist kein dauerhafter Tastgrad von 100 % möglich. siehe Abschnitt „Schritt 8: Gate- und Halbbrückentreiber mit Bootstrap“

  1. Welche Signale braucht ein Schrittmotortreiber, und wie stellst Du den Wicklungsstrom ein?

STEP (ein Impuls je Schritt), DIR (Richtung), EN (Freigabe) und die Eingänge für den Schrittmodus. Den Strom stellt eine Referenzspannung ein, die mit dem Sense-Widerstand nach der Formel im Datenblatt den Grenzwert des Choppers festlegt. siehe Abschnitt „Schritt 9: Schrittmotortreiber“


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Motoransteuerung: H-Brücke, Treiber-ICs, PWM und Schrittmotortreiber” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/motoransteuerung veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/elektrotechnik/steuerungstechnik. Erstellt mit KI-Assistenz; von mir umfassend redaktionell überarbeitet, geprüft und freigegeben. Stand: 11.11.2026.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: