Warum Ihr Roboter neu startet, sobald die Motoren anlaufen (und wie Sie das beheben)

Ihr Mikrocontroller startet neu, weil der Anlaufstromstoß der Gleichstrommotoren die Batteriespannung unter seine Betriebsgrenze drückt. So beheben Sie Brownout-Resets im Unterricht.
Wenn Ihr Roboter seinen Setup-Code ausführt, die LEDs aufleuchten lässt und dann genau in dem Moment neu startet, in dem der Fahrcode losläuft, erlebt Ihr Mikrocontroller einen Brownout-Reset. Die Motoren grillen den Chip nicht; sie hungern ihn an Spannung aus.
Wenn ein Gleichstrommotor (DC-Motor) aus dem Stillstand anläuft, fordert er für den Bruchteil einer Millisekunde einen gewaltigen Stromstoß. Kann Ihre Stromversorgung diesen Strom nicht sofort liefern, bricht die Spannung in Ihrer Schaltung ein. Sobald diese Spannung unter die sichere Betriebsschwelle des Mikrocontrollers fällt – etwa 2,7 V bei einem 3,3-V-Chip wie dem ESP32 oder 4,3 V bei einem üblichen 5-V-Arduino-Uno –, setzt sich der Prozessor zurück, um seinen Speicher vor Beschädigung zu schützen. Sobald der Motor während des Resets stehen bleibt, erholt sich die Spannung, der Code startet erneut, und der Kreislauf wiederholt sich endlos.
Die Mechanik eines Brownouts
Um das zuverlässig zu beheben, hilft es zu verstehen, warum die Spannung überhaupt einbricht. Zwei physikalische Gegebenheiten verursachen motorbedingte Neustarts in schulischen Robotik-Bausätzen:
- Einschaltstrom: Ein stehender DC-Motor hat praktisch keine Gegen-EMK (Back-EMF). Elektrisch gesehen ist das Einschalten eines Motors für den Bruchteil einer Sekunde fast identisch damit, die Stromversorgung kurzzuschließen. Ein gelber Hobby-Getriebemotor, der im Lauf 150 mA zieht, kann im Moment des Anlaufens problemlos 1,2 A bis 1,5 A verlangen.
- Innenwiderstand der Batterie: Jede Batterie hat einen Innenwiderstand. Wenn vier AA-Alkalizellen oder ein Paar 18650-Zellen 2 A bis 3 A schlagartig an zwei Antriebsmotoren liefern sollen, sinkt die Spannung an den Batterieklemmen proportional zu diesem Innenwiderstand. Dünne Jumperkabel und federnde Batteriekontakte verschlimmern diesen Spannungseinbruch erheblich.
Wenn Sie einen Mikrocontroller und einen H-Brücken-Motortreiber (etwa einen L298N, DRV8833 oder TB6612FNG) aus demselben ungepufferten Batteriepack versorgen, wandert dieser Spannungseinbruch direkt in die Versorgungsleitung des Prozessors. Der Mikrocontroller deutet den Einbruch als Stromausfall und startet neu.
Lösung 1: Stützkondensatoren ergänzen
Die einfachste Hardwarelösung, die kein zweites Batteriepack erfordert, ist zusätzliche Stützkapazität nahe am Motortreiber.
Ein Kondensator wirkt wie ein winziger, extrem schneller Speicher elektrischer Ladung. Wenn der Motor anläuft und plötzlich viel Strom verlangt, entlädt sich der Kondensator in den Motortreiber, bevor die Spannung der Hauptbatterie vollständig zusammenbrechen kann.
- Setzen Sie einen Elektrolytkondensator von 470 µF bis 1000 µF direkt an die Hochstrom-Versorgungsklemmen des Motortreibers (Motor-VCC und GND).
- Halten Sie die Anschlussbeine des Kondensators so kurz wie möglich. Sitzt er drei Steckbrettreihen entfernt, mindert der Widerstand der Steckbrettbahnen seine Wirkung.
- Achten Sie auf die richtige Polung: Der negative Streifen des Kondensators muss an Masse (GND) liegen, das positive Bein an die Versorgung.
Gegen die hochfrequenten Störungen der Motorbürsten löten Sie außerdem einen kleinen Keramikkondensator von 0,1 µF (100 nF) direkt über die beiden Metallanschlüsse jedes DC-Motors.
Lösung 2: Versorgungszweige vollständig trennen
Wenn Sie Roboter mit Allradantrieb bauen oder Motoren mit höherem Drehmoment einsetzen, verhindern Stützkondensatoren allein den Spannungseinbruch bei müden Batterien womöglich nicht. Die endgültige technische Lösung ist, die Versorgung in Logikstrom und Motorstrom aufzuteilen.
| Aufbau | Vorteile | Nachteile | Am besten geeignet für |
|---|---|---|---|
| Ein Pack mit Stützkondensator | Leicht, weniger Batterien im Unterricht zu verwalten | Bei fast leeren Batterien weiterhin anfällig für Resets | Leichte 2WD-Linienfolger |
| Zwei Batteriepacks | Keinerlei Motorstörungen am Mikrocontroller | Mehr Gewicht, zwei Batteriesätze zu laden | Robotikwettbewerbe, schwere Chassis |
| Abwärtswandler als Puffer | Ein Batteriepack, saubere geregelte Spannung | Ausgangsspannung muss mit dem Multimeter eingestellt werden | Anspruchsvolle Projekte der Sekundarstufe |
So verdrahten Sie zwei Stromversorgungen richtig:
- Versorgen Sie den Mikrocontroller (Arduino, micro:bit oder ESP32) über eine eigene Stromquelle – zum Beispiel eine 5-V-USB-Powerbank oder einen kleinen 3,7-V-LiPo mit Aufwärtswandler.
- Versorgen Sie die Motor-Versorgungsklemme des Treibers (oft mit VM oder VMS beschriftet) aus Ihrem eigentlichen Motor-Batteriepack (z. B. einem 4×AA-Halter oder einem 2S-Li-Ion-Pack).
- Verbinden Sie alle Masseleitungen (GND) miteinander. Mikrocontroller und Motortreiber müssen eine gemeinsame Masse haben, sonst floaten die Logiksignale für Richtung und Geschwindigkeit und verhalten sich unberechenbar.
Lösung 3: Motoren im Code sanft anfahren
Oft lassen sich Motor-Neustarts ganz ohne Lötkolben beseitigen, indem Sie ändern, wie Ihr Code die Leistung aufschaltet. Im Unterricht schreiben Lernende typischerweise Code, der schlagartig vom Stillstand auf volle Geschwindigkeit springt:
analogWrite(motorPin, 255);
Dieser abrupte Übergang löst den maximalen Einschaltstrom aus. Fahren Sie stattdessen das Tastverhältnis der Pulsweitenmodulation (PWM) über 50 bis 100 Millisekunden mit einer einfachen Schleife hoch. Von 0 auf 255 in fünf kleinen Schritten zu beschleunigen senkt die Stromspitze deutlich und hält die Batteriespannung über der Brownout-Schwelle des Mikrocontrollers, ohne dass der Roboter spürbar träge wirkt.
Verdrahtungsfehler im Unterricht, die wie Brownouts aussehen
Bevor Sie Ihr gesamtes Chassis neu verkabeln, prüfen Sie diese drei mechanischen Schwachstellen, die in Klassenräumen häufig sind:
- Lötfreie Steckbretter: Die Versorgungsschienen eines Steckbretts können die Spitzenströme von 1,5 A bis 2 A, die zwei drehende DC-Motoren ziehen, nicht zuverlässig führen. Führen Sie den Motorstrom direkt über Schraubklemmen oder gelötete Verbindungen, nicht über die Federkontakte des Steckbretts.
- Dünne Jumperkabel: Billige Dupont-Jumper mit 28 AWG haben einen hohen Widerstand. Fließt Motorstrom durch dünne Jumperkabel, fällt schon an der Leitung selbst eine erhebliche Spannung ab, bevor der Strom überhaupt den Motortreiber erreicht.
- Leere Alkalibatterien: Wenn Alkalizellen sich entladen, steigt ihr Innenwiderstand drastisch. Ein Batteriepack, das im Leerlauf am Multimeter 6,0 V anzeigt, kann unter 500 mA Last auf 3,2 V einbrechen. Messen Sie die Batteriespannung immer, während die Motoren tatsächlich anzulaufen versuchen.
Wenn Sie einen Computerraum oder ein Wettbewerbsteam mit zuverlässiger Hardware zur Stromverteilung ausstatten wollen: Treibermodule mit integrierter Filterung gibt es im Sheen Robotics Store oder als Teil unserer strukturierten Robotik-Bausätze über Infinity.



