Motortreiber und Motorcontroller
Ein Mikrocontroller kann einen Motor nicht direkt antreiben -- die GPIO-Pins liefern nur wenige Milliampere. Zwischen Controller und Motor sitzt immer ein Treiber: eine Leistungselektronik, die das schwache Steuersignal in den Motorstrom umsetzt.
Dabei gibt es zwei Kategorien:
- Motortreiber (Treiber-IC / H-Brücke): Schaltet nur die Leistung. Richtung und PWM kommen vom Mikrocontroller.
- Motorcontroller: Hat einen eigenen Mikrocontroller on-board. Nimmt Befehle entgegen (Geschwindigkeit, Position) und regelt selbst (PID, Stromüberwachung, Encoder-Feedback).
Halbbrücke (Half-Bridge)
Die Grundbaugruppe aller Motortreiber ist die Halbbrücke: zwei Schalter (MOSFETs oder BJTs) in Serie zwischen Versorgungsspannung und Masse, mit dem Ausgang in der Mitte.
V+
│
○
╲ S1 (High-Side)
○
│
├─── Ausgang
│
○
╲ S2 (Low-Side)
○
│
GND
- S1 an, S2 aus: Ausgang liegt auf V+ (High)
- S1 aus, S2 an: Ausgang liegt auf GND (Low)
- Beide aus: Ausgang hochohmig (Float)
- Beide an: Kurzschluss → verboten, Treiber-ICs haben dafür eine Totzeit-Logik (Shoot-Through-Protection)
Eine einzelne Halbbrücke kann einen Motor nur in eine Richtung betreiben (an/aus). Für Richtungsumkehr braucht man zwei davon -- eine Vollbrücke.
H-Brücke (Full-Bridge)
Zwei Halbbrücken bilden eine H-Brücke -- benannt nach der Form im Schaltplan:
V+ V+
│ │
○ ○
╲ S1 ╲ S3
○ ○
│ │
├────── M ────────┤
│ │
○ ○
╲ S2 ╲ S4
○ ○
│ │
GND GND
Die vier Betriebszustände:
| S1 | S2 | S3 | S4 | Zustand | Motorstrom |
|---|---|---|---|---|---|
| an | aus | aus | an | Vorwärts | V+ → S1 → Motor → S4 → GND |
| aus | an | an | aus | Rückwärts | V+ → S3 → Motor → S2 → GND |
| aus | aus | aus | aus | Coast | Motor läuft aus, kein Strom |
| an | aus | an | aus | Brake | Motor kurzgeschlossen, aktives Bremsen |
Der Unterschied zwischen Coast und Brake ist wichtig: Bei Coast rollt der Motor frei aus, bei Brake wird die Rückspeise-EMK kurzgeschlossen und der Motor bremst aktiv. Für Roboter mit Odometrie will man meistens Brake.
PWM-Steuerung: Für stufenlose Geschwindigkeit wird einer der aktiven Schalter mit PWM getaktet. Bei 50% Duty-Cycle sieht der Motor im Mittel die halbe Spannung.
BJT vs. MOSFET: Warum der Spannungsabfall?
Ältere Treiber wie der L298N verwenden Bipolartransistoren (BJTs) als Schalter. Ein BJT in Sättigung hat immer eine Kollektor-Emitter-Spannung von ca. 0.7--1V. In einer H-Brücke fließt der Strom durch zwei BJTs in Serie (High-Side + Low-Side) — das ergibt ~1.4--2V Verlust, die als Wärme abgehen.
Moderne Treiber verwenden MOSFETs. Ein MOSFET verhält sich im eingeschalteten Zustand wie ein kleiner Widerstand (\(R_{DS(on)}\)), typisch wenige Milliohm. Bei 1A und 100 mΩ sind das nur 0.1V Drop — zwanzigmal weniger als bei BJTs.
Bei einem 6V-Motor (4× AA Batterien): - L298N (BJT): 6V − 2V = 4V am Motor → 33% Verlust - DRV8833 (MOSFET): 6V − 0.2V = 5.8V am Motor → 3% Verlust
Für Batteriebetrieb ist das ein enormer Unterschied -- nicht nur in der Effizienz, sondern auch darin, dass der Motor seine volle Leistung bekommt.
Treiber-ICs im Überblick
| IC | Hersteller | Typ | Kanäle | Dauerstrom | V | Drop | Bemerkung |
|---|---|---|---|---|---|---|---|
| L298N | STMicro | BJT | 2 | 2A | 5--46V | ~2V | Veraltet, überall verfügbar |
| L293D | TI | BJT | 2 | 600 mA | 4.5--36V | ~1.4V | DIP, eingebaute Freilaufdioden |
| TB6612FNG | Toshiba | MOSFET | 2 | 1.2A | 4.5--13.5V | ~0.5V | Moderner L298N-Ersatz |
| DRV8833 | TI | MOSFET | 2 | 1.2A | 2.7--10.8V | ~0.2V | Winzig, sehr effizient |
| DRV8835 | TI | MOSFET | 2 | 1.2A | 2--11V | ~0.2V | Noch kleiner, Phase/Enable-Modus |
| DRV8871 | TI | MOSFET | 1 | 3.6A | 6.5--45V | ~0.3V | Nur 2 Pins (IN1/IN2), einfachste Ansteuerung |
| TB9051FTG | Toshiba | MOSFET | 1 | 2.6A | 4.5--28V | ~0.3V | Strommessung + Diagnose |
| VNH5019 | STMicro | MOSFET | 1 | 12A | 5.5--24V | ~0.2V | Automotive-Grade, sehr robust |
| BTS7960 | Infineon | MOSFET | 1 (HB) | 43A | 5.5--27V | ~0.1V | Halbbrücke, 2 Stück für H-Brücke |
| A4988 | Allegro | MOSFET | Stepper | 2A | 8--35V | -- | Schrittmotor, 1/16 Microstepping |
| DRV8825 | TI | MOSFET | Stepper | 2.2A | 8.2--45V | -- | Schrittmotor, 1/32 Microstepping |
| TMC2209 | Trinamic | MOSFET | Stepper | 2A | 4.75--28V | -- | StealthChop, ultra-leise, UART-Konfig |
Worauf achten bei der Auswahl?
- Dauerstrom vs. Spitzenstrom: Spitzenstrom gilt nur für Millisekunden. Dimensionierung immer nach Dauerstrom + Marge.
- Spannungsbereich: Muss sowohl die Motor-Nennspannung als auch die Batterie-Ladeschlussspannung abdecken.
- Logikpegel: Manche ICs brauchen 5V-Logik, manche vertragen 3.3V. Bei ESP32 oder Pico (3.3V) drauf achten.
- Freilaufdioden: Beim Abschalten erzeugt der Motor Spannungsspitzen. Manche ICs (L293D, DRV88xx) haben interne Dioden, bei anderen (L298N) müssen sie extern verbaut werden.
Breakout-Boards
Nackte Treiber-ICs sind winzig und nicht breadboard-freundlich. Breakout-Boards lösen das: IC aufgelötet, Pinheader, Kondensatoren, teilweise Spannungsregler.
Pololu -- DC-Motortreiber (unter 3.5A)
Pololu aus Las Vegas baut einige der besten kleinen Motortreiber. Gut dokumentiert, kompakte Carrier-Boards, faire Preise.
| Board | IC (Hersteller) | Kanäle | Dauerstrom | Spannung | Preis |
|---|---|---|---|---|---|
| TB6612FNG (#713) | TB6612FNG (Toshiba) | 2 | 1.0A | 4.5--13.5V | $4.95 |
| DRV8835 (#2135) | DRV8835 (TI) | 2 | 1.2A | 0--11V | $6.95 |
| DRV8833 (#2130) | DRV8833 (TI) | 2 | 1.2A | 2.7--10.8V | $10.95 |
| MAX14870 Dual (#2519) | MAX14870 (Analog Devices) | 2 | 1.7A | 4.5--36V | $11.94 |
| A4990 (#2137) | A4990 (Allegro) | 2 | 0.7A | 6--32V | $13.95 |
| DRV8801 (#2136) | DRV8801 (TI) | 1 | 1.0A | 8--36V | $15.95 |
| DRV8838 (#2990) | DRV8838 (TI) | 1 | 1.7A | 0--11V | $4.95 |
| MP6550 (#4733) | MP6550 (MPS) | 1 | 1.7A | 1.8--22V | $5.95 |
| TB67H453FNG (#4971) | TB67H453 (Toshiba) | 1 | 1.3A | 4.5--44V | $4.95 |
| DRV8876 (#4036) | DRV8876 (TI) | 1 | 1.3A | 4.5--37V | $8.15 |
| MAX14870 (#2961) | MAX14870 (Analog Devices) | 1 | 1.7A | 4.5--36V | $11.94 |
| DRV8874 (#4035) | DRV8874 (TI) | 1 | 2.1A | 4.5--37V | $11.94 |
| DRV8256E (#4038) | DRV8256E (TI) | 1 | 1.9A | 4.5--48V | $14.31 |
| MC33926 (#1212) | MC33926 (NXP) | 1 | 2.5A | 5--28V | $19.95 |
| TB9051FTG (#2997) | TB9051FTG (Toshiba) | 1 | 2.6A | 4.5--28V | $12.95 |
Für höhere Ströme gibt es die G2 High-Power-Reihe (diskrete MOSFETs, 13--25A Dauer, aktive Strombegrenzung).
Pololu -- Schrittmotortreiber (unter 3.5A)
| Board | IC (Hersteller) | Strom/Phase | Spannung | Microstepping | Preis |
|---|---|---|---|---|---|
| STSPIN220 (#2876) | STSPIN220 (STMicro) | 1.1A | 1.8--10V | 1/256 | $10.95 |
| DRV8834 (#2134) | DRV8834 (TI) | 1.5A | 2.5--10.8V | 1/32 | $9.95 |
| A4988 (#2128) | A4988 (Allegro) | 1.0A | 8--35V | 1/16 | $9.95 |
| A5984 (#5340) | A5984 (Allegro) | 1.2A | 8--40V | 1/32 | $5.95 |
| MP6500 (#2966) | MP6500 (MPS) | 1.2A | 4.5--35V | 1/8 | $9.95 |
| TB67S581FNG (#2988) | TB67S581 (Toshiba) | 1.5A | 8.2--44V | 1/32 | $6.95 |
| DRV8825 (#2133) | DRV8825 (TI) | 1.5A | 8.2--45V | 1/32 | $15.95 |
| TB67S249FTG (#3096) | TB67S249 (Toshiba) | 1.6A | 10--47V | 1/32 | $13.95 |
| DRV8434 (#3762) | DRV8434 (TI) | 1.2A | 4.5--48V | 1/256 | $10.95 |
| TB67S128FTG (#2998) | TB67S128 (Toshiba) | 2.1A | 6.5--44V | 1/128 | $16.95 |
| AMIS-30543 (#2970) | AMIS-30543 (onsemi) | 1.8A | 6--30V | 1/128 | $24.26 |
| MP6603 (#5690) | MP6603 (MPS) | 2.2A | 8--55V | 1/8 | $14.95 |
Für den 3D-Druck-Bereich besonders relevant: A4988 (günstig, Standard in vielen Druckern), DRV8825 (mehr Microstepping), und TMC2209 (Trinamic, ultra-leise StealthChop -- nicht direkt von Pololu, aber pin-kompatibel).
Weitere Breakout-Boards (andere Hersteller)
| Board | Treiber-IC | Kanäle | Dauerstrom | ca. Preis |
|---|---|---|---|---|
| SparkFun TB6612FNG | TB6612FNG (Toshiba) | 2 | 1.2A | 6 € |
| Adafruit DRV8833 | DRV8833 (TI) | 2 | 1.2A | 6 € |
| IBT-2 / BTS7960 | BTS7960 (Infineon) | 1 | 43A | 8 € |
| L298N Breakout (diverse) | L298N (STMicro) | 2 | 2A | 2 € |
Intelligente Motorcontroller
Die bisherigen Boards sind reine Treiber -- der Mikrocontroller muss PWM, Richtung und eventuell PID-Regelung selbst übernehmen. Motorcontroller haben einen eigenen Prozessor on-board und regeln selbständig.
Pololu Jrk G2 (DC-Motoren)
Hier wird es interessant: Der Jrk ist kein reiner Treiber, sondern ein Motorcontroller mit eigenem Prozessor. Er nimmt Sollwerte entgegen (über USB, seriell, I2C, Analog oder RC-PWM) und regelt selbständig.
| Eigenschaft | Wert |
|---|---|
| Varianten | 18v19 (19A), 24v13 (13A), 21v3 (2.6A) |
| Regelung | PID, konfigurierbar über Software |
| Feedback | Analog, Frequenz, oder kein Feedback (Open-Loop) |
| Interface | USB, seriell (TTL), I2C, RC-Puls, Analog |
| Software | Pololu Jrk G2 Configuration Utility (Windows/Linux/macOS) |
Der große Vorteil: Der PID-Regler läuft auf dem Jrk selbst. Der Mikrocontroller sagt nur "fahr auf Position X" oder "dreh mit Geschwindigkeit Y" -- den Rest erledigt der Jrk. Das entlastet den Hauptcontroller massiv und reduziert die Echtzeitanforderungen.
Pololu TIC (Schrittmotoren)
Dasselbe Konzept für Schrittmotoren. Der TIC nimmt Positionsbefehle entgegen und erzeugt die Step/Dir-Signale selbst, mit Beschleunigungs- und Geschwindigkeitsrampen.
| Variante | Treiber-IC | Max. Strom | Microstepping |
|---|---|---|---|
| T825 (#3131) | DRV8825 (TI) | 1.5A | 1/32 |
| T249 (#3138) | TMC2249 (Trinamic) | 1.8A | 1/256 |
| 36v4 (#3141) | DRV8711 (TI) | 4A | 1/256 |
ODrive / Moteus
Für Projekte, die über einfache DC- oder Schrittmotoren hinausgehen (z.B. BLDC-Motoren, Roboterarme), gibt es spezialisierte Controller:
- ODrive: Open-Source BLDC-Controller, FOC-Regelung, Encoder-Feedback, bis 56V/120A. Ideal für hochdynamische Antriebe.
- Moteus: Kompakter BLDC-Controller mit integriertem Encoder, CAN-Bus. Entwickelt für Robotergelenke (Legged Robots, Roboterarme).
Welchen Treiber für welchen Motor?
| Motor | Strom | Empfehlung |
|---|---|---|
| TT-Motor (gelb, Hobby) | 100--250 mA | DRV8833, TB6612FNG, oder L298N |
| N20 Getriebemotor | 300--800 mA | DRV8833, TB6612FNG |
| 25D Metallgetriebemotor | 1--3A | TB9051FTG, G2 18v17 |
| 37D Metallgetriebemotor | 3--5A | G2 18v17 oder 18v25 |
| Scooter/Rollstuhlmotor | 10--20A | G2 24v21 |
| NEMA 17 Schrittmotor | 1--2A | A4988, TMC2209, TIC T249 |
Faustregel: Den Treiber immer mit Marge dimensionieren. Wenn der Motor 1.5A zieht, nicht einen 1.5A-Treiber nehmen -- Anlaufströme und Blockierströme sind deutlich höher.
Weiterführendes
- Aktoren -- DC-Motoren, Servos, Schrittmotoren im Überblick
- Ausweichroboter -- Projekt mit L298N und TT-Motoren