Bauteil · Stromversorgung
Robot Battery & Power Pack
Wie man ein Roboterauto versorgt: Warum ein 9-V-Block unter Motoren einbricht, AA- oder 18650-Pack wählen und Board-Reset durch getrennte Schienen vermeiden.
Was es ist
Das Akkupack ist das Teil, über das Anfänger am wenigsten nachdenken und das sie am häufigsten falsch machen. Es ist schlicht die Batterie, die Strom in Motoren und Elektronik speist – aber schlecht gewählt zuckt der Roboter, startet neu oder weigert sich zu fahren, egal wie gut der Code ist. Strom richtig zu machen ist oft der Unterschied zwischen einem Roboter, der läuft, und einem, der ständig neu bootet.
Die Kernidee ist, dass ein Roboter zwei sehr verschiedene Stromappetite hat: Die Motoren schlucken ihn in Schüben, und die Logik nippt stetig daran. Eine Batterie kann beides speisen, aber sie müssen so angeordnet sein, dass die gierigen Motoren dem empfindlichen Gehirn nichts wegfressen.
Wie es funktioniert
Folge dem Strom ab dem Pack:
- Die Batterie liefert Rohspannung – 6 V aus vier AAs, 7,4 V aus zwei 18650ern.
- Die Motorschiene läuft direkt aus dem Pack in das Vin des L298N-Treibers. Hierher kommt der schwere, stoßweise Motorstrom – ganz am Arduino vorbei.
- Die Logikschiene sind geregelte 5 V (vom Bordregler des Treibers oder über USB), die Arduino und Sensoren mit sauberer, stetiger Spannung versorgen.
- Eine gemeinsame Masse verbindet alles. Jede Schiene muss dieselbe Masselinie teilen, sonst haben die Logiksignale keine gemeinsame Referenz und Messwerte werden bedeutungslos.
So aufgeteilt kann ein Motor, der plötzlich ein Ampere zieht, seine eigene Schiene einbrechen lassen, ohne die 5 V des Arduino mit herunterzuziehen.
Warum ein 9-V-Block scheitert
Der häufigste Erst-Roboter-Fehler ist, die Motoren aus einer rechteckigen 9-V-PP3-Batterie zu versorgen. Sie wirkt praktisch, hält aber sehr wenig Energie und hat hohen Innenwiderstand. In dem Moment, in dem die Motoren Strom ziehen, kollabiert ihre Spannung – der Arduino fällt unter sein Minimum und startet neu, also ruckelt der Roboter und bootet in Schleife. Ein 9-V-Block ist in Ordnung für ein Breadboard, das Milliampere nippt; er ist die falsche Wahl für alles, was Räder antreibt.
Auswählen und verdrahten
- Spannung an die Motoren anpassen. 3–6-V-Motoren sind auf einem 6-V- oder 7,4-V-Pack glücklich; Tempo per PWM zähmen statt das Pack zu unterversorgen.
- Kapazität ist Laufzeit. Mehr mAh heißt länger bis zum Laden; 18650-Zellen halten weit länger als AAs, brauchen aber einen geschützten Halter.
- Ein Schalter, korrekte Polung. Hauptschalter ans Pack und Polung vor dem ersten Einschalten doppelt prüfen – verpolter Strom kann ein Board sofort töten.
- Nicht rückspeisen. Vermeide, den Arduino gleichzeitig über USB und Akku zu versorgen, außer das Board ist dafür gebaut.
- Pufferkondensator ergänzen über der Motorversorgung, um die Anlaufspitze zu schlucken und die Schiene zu beruhigen.
Innenwiderstand: die Zahl, die alles entscheidet
Jede Batterie verhält sich wie eine ideale Spannungsquelle mit Widerstand in Reihe. Dieser Widerstand ist die ganze Geschichte, warum ein Pack funktioniert und ein anderes dein Board neu startet.
V_under_load = V_open_circuit - (I x R_internal)
Ein Roboter, der 2 A Spitze durch ein Pack mit 0,5 Ω Innenwiderstand zieht, verliert ein volles Volt, bevor irgendetwas dahinter es sieht. Was das über die gängigen Optionen heißt:
| Pack | Nennwert | Typischer Innenwiderstand | Einbruch bei 2 A | Urteil |
|---|---|---|---|---|
| 9 V PP3 Alkali | 9 V | 1,5–3 Ω | 3–6 V | Unbrauchbar für Motoren |
| 4×AA Alkali | 6 V | 0,6–1,2 Ω | 1,2–2,4 V | Grenzwertig; lässt schnell nach |
| 4×AA NiMH | 4,8 V | 0,1–0,2 Ω | 0,2–0,4 V | Gut, aber niedrige Spannung |
| 6×AA NiMH | 7,2 V | 0,15–0,3 Ω | 0,3–0,6 V | Eine solide Wahl |
| 2×18650 Li-Ion | 7,4 V | 0,05–0,15 Ω | 0,1–0,3 V | Exzellent |
| 2S LiPo | 7,4 V | 0,02–0,05 Ω | Unter 0,1 V | Beste, mit Handhabungsvorbehalten |
Diese Tabelle erklärt den 9-V-Block vollständig. Nicht dass er die falsche Spannung hätte – er hat die höchste Spannung der Liste. Sondern dass er unter 2-A-Spitze 3 V liefert, und der Roboter startet neu. Spannung im Regal sagt dir nichts; Einbruch unter Last sagt dir alles.
Eigenes in zwei Minuten messen
1. Measure the pack's voltage with nothing connected. -> V_open
2. Stall the motors and measure again while stalled. -> V_load
3. Measure the stall current with the meter in series. -> I
4. R_internal = (V_open - V_load) / I
Schreibe die Zahl mit Marker aufs Pack. Sie steigt, wie die Zellen altern, und ein Pack, dessen Widerstand sich verdoppelt hat, ist ein Pack, das „zufällige“ Resets zu verursachen beginnt.
Das Strombudget
Rechne es auf Papier zusammen, bevor du etwas kaufst. Nutze Blockierstrom, nicht typisch.
| Gerät | Typisch | Spitze / Blockieren |
|---|---|---|
| Arduino Uno | 45 mA | 50 mA |
| ESP32 (WLAN aktiv) | 80 mA | 500 mA in Bursts |
| TT-Getriebemotor ×2 | 300 mA | 2 A |
| N20-Metallgetriebemotor ×2 | 200 mA | 1,6 A |
| SG90-Servo | 200 mA | 650 mA |
| HC-SR04 | 15 mA | 15 mA |
| MPU-6050 | 4 mA | 4 mA |
| 8-Kanal-IR-Array | 100 mA | 200 mA |
| NEO-6M-GPS | 45 mA | 60 mA |
Ein typischer Hindernisvermeidungsroboter – Uno, zwei TT-Motoren, Ultraschall auf Servo – budgetiert grob 360 mA typisch und 2,7 A Spitze. Lege das Pack auf die Spitze aus und die Laufzeit aus dem Typischen:
runtime (hours) = capacity (mAh) / average draw (mA)
2000 mAh AA-NiMH bei 360 mA sind etwa 5,5 Stunden Fahren, was weit mehr ist, als der Akku in den meisten Robotern je genutzt wird. Kapazität ist selten die Grenze – Spitzenfähigkeit ist es.
Richtig verdrahten
Battery + ──── master switch ──┬──── motor driver VM (the heavy path)
│
└──── 5 V regulator ──── Arduino, sensors
Battery − ─────────────────────┴──── COMMON GROUND ──── everything
Vier Regeln, in der Reihenfolge, wie oft sie gebrochen werden:
Gemeinsame Masse, immer. Jede Versorgung, jedes Board, jeder Sensor hängt an einer Masse. Eine fehlende gemeinsame Masse gibt Logiksignalen keine Referenz, und der Fehler ist lautlos – nichts läuft, nichts ist warm, nichts sieht falsch aus.
Masse sternförmig, nicht kettenförmig. Jede Masse zu einem Punkt zurückführen statt über den Motortreiber durchzuschleifen. Motorrückstrom durch ein gemeinsames Massestück erzeugt eine Spannungsdifferenz entlang dessen, und deine Sensormesswerte wandern, wann immer die Motoren laufen.
Hauptschalter in die Plusleitung, vor allem. Einen durchgehenden Roboter sofort töten zu können ist die zwei Minuten wert.
Verpolschutz. Eine einzelne Schottky-Diode in Reihe kostet ~0,3 V, oder ein P-Kanal-MOSFET kostet fast nichts. Beides ist billiger als das Board, das ein verpoltes Pack zerstört – und ein Pack zu verpolen braucht einen Moment Unachtsamkeit.
Kondensatoren: was sie tun und nicht tun
Einen 470–1000-µF-Elko über die Motorversorgung legen, nah am Treiber. Lohnt sich. Von ihm wird aber routiniert etwas erwartet, das er nicht kann.
Was er behebt: die scharfen Schalttransienten aus PWM und Motorkommutierung, die mikrosekundenskalig sind und sich als Störung in die Logikschiene einkoppeln.
Was er nicht beheben kann: eine anhaltende Spitze. Die Arithmetik ist unbarmherzig:
dV = I x t / C
1000 uF supplying 2 A for 10 ms -> dV = 2 x 0.01 / 0.001 = 20 V
Ein Kondensator, der 2 A Motorspitze für 10 ms tragen soll, müsste 20 V abfallen, was mehr ist, als das Pack hat. Nur ein steiferer Akku trägt eine Spitze. Wenn dein Board beim Motoranlauf neu startet, ist ein größerer Kondensator nicht die Antwort – ein Pack mit niedrigerem Innenwiderstand ist es.
Lege auch eine 100-nF-Keramik neben jeden IC-Versorgungspin. Ganz anderer Job: Sie bedient den hochfrequenten Bedarf des eigenen Schaltens des Chips, wofür der Elko zu langsam ist.
Chemie wählen
| NiMH AA | Li-Ion 18650 | LiPo | |
|---|---|---|---|
| Zellspannung | 1,2 V | 3,7 V | 3,7 V |
| Innenwiderstand | Niedrig | Sehr niedrig | Niedrigste |
| Selbstentladung | Niedrig („ready to use“-Zellen nutzen) | Sehr niedrig | Sehr niedrig |
| Tiefentladung | Tolerant | Schädlich unter 3,0 V/Zelle | Schädlich unter 3,0 V/Zelle |
| Laden | Einfach, verzeihend | Braucht passendes Ladegerät oder BMS | Braucht Balance-Lader |
| Brandrisiko | Vernachlässigbar | Real bei Missbrauch | Real bei Missbrauch |
| Am besten für | Einen ersten Roboter | Die meisten Roboter | Performance-Bauten |
NiMH ist die richtige erste Wahl. Sechs Zellen geben 7,2 V bei niedrigem Innenwiderstand, sie verzeihen Fehler, und ein leeres Pack ist eine Unannehmlichkeit statt ein Vorfall.
Li-Ion-18650er sind das sinnvolle Upgrade: weit mehr Energie fürs Gewicht, sehr niedriger Innenwiderstand und billig. Nutze einen geschützten Halter oder eine BMS-Platine – Lithiumzellen unter etwa 3,0 V pro Zelle sind dauerhaft geschädigt, und ein Roboter, der läuft, bis er steht, tut genau das.
LiPo nutzen Performance-Bauten, und er verlangt Respekt. Nie unbeaufsichtigt laden, nie durchstechen, nie entladen liegenlassen, und einen Balance-Lader nutzen.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Board startet neu, wenn Motoren anlaufen | Packeinbruch – Innenwiderstand zu hoch | Miss ihn; nur ein Pack mit niedrigerem Widerstand hilft |
| Größerer Kondensator half nicht | Konnte er nie | Siehe Rechnung oben; Batterie wechseln |
| Nichts läuft, nichts ist warm | Keine gemeinsame Masse | Jede Masse auf einen Punkt legen |
| Sensormesswerte wandern, wenn Motoren laufen | Verkettete Masse | Massen sternförmig auf einen Punkt zurückführen |
| Roboter wird über die Fahrt langsamer | Spannung fällt, wie das Pack leer wird | Erwartet; Drehzahlregelkreis schließen oder Pack überwachen |
| Motoren von Anfang an schwach | Treiberspannungsabfall plus einbrechendes Pack | Ein L298N nimmt ~2 V, bevor die Motoren etwas sehen |
| Regler sehr heiß | Zu viel Spannung über linearem Regler | Schaltregler nutzen oder Eingang senken |
| Pack wird beim Laden heiß | Falsches Ladegerät für die Chemie | Stopp. Ladegerät an die Zellen anpassen |
| Li-Ion-Pack starb und lädt nicht | Unter 3,0 V/Zelle gebracht | Dauerhaft geschädigt – nächstes Mal geschützten Halter nutzen |
Das Pack überwachen
Das Letzte, was sich lohnt: Ein Roboter, der seine eigene Akkuspannung kennt, kann anhalten, bevor er einbricht, und es kostet zwei Widerstände.
// 100k / 33k divider: 8.4 V max in -> ~2.09 V at the pin. Safe for a 3.3 V ADC.
const float DIVIDER = (100.0 + 33.0) / 33.0;
float packVolts() {
return analogRead(A0) * (5.0 / 1023.0) * DIVIDER;
}
Ein Warnhinweis, der sorgfältiges Tun lohnt: An einem Arduino ist analogRead ratiometrisch zur 5-V-Schiene, die selbst einbricht, wenn die Motoren laufen. Eine fallende Batterie über eine fallende Referenz zu messen, und der Messwert steigt. Auf die interne 1,1-V-Referenz mit analogReference(INTERNAL) umschalten, den Teiler dafür auslegen, und der Messwert wird ehrlich – das Analogeingangs-Tutorial behandelt genau diese Falle.
Den Graphen erkunden
Verwendet in diesen Bauprojekten
Projekte, Lernpfade und Simulatoren, die Robot Battery & Power Pack verwenden.
- Projekt4-DOF-Roboterarm bauen: PCA9685, Servos, Kinematik
- ProjektEin handygesteuertes Roboterauto über Bluetooth oder WLAN bauen
- ProjektEinen Mecanum-Roboter bauen, der seitwärts fährt
- ProjektEinen Raumabdeckungsroboter bauen, der Böden kehrt
- ProjektEinen ROS-2-Roboter bauen, der sieht und zu einem Marker fährt
- ProjektEinen Stiftplotter bauen: Zwei Schrittmotorachsen, die ankommen
- ProjektGPS-Wegpunkt-Rover bauen: Fährt seine Route selbst
- ProjektHindernisvermeidung bauen: Tasten, Scannen, Lenken
- ProjektLinien-Labyrinthlöser bauen: Mit LSRB-Routenspeicher
- ProjektLinienfolger mit 8051-Mikrocontroller bauen
- ProjektLinienfolger-Roboter bauen: Vom Simulator zur Strecke
- ProjektMicromouse bauen: Labyrinth-Roboter mit Flood-Fill
- ProjektMini-Sumo-Roboter bauen: Grip, Keil, Kantensensorik
- ProjektPick-and-Place-Roboter: Der Fehlgriffe erkennt
- ProjektSelbstbalancierender Roboter: MPU6050 und PID
- LernpfadElektronik-Grundlagen für Roboter: Ein Lernpfad
Fragen
FAQ zu Robot Battery & Power Pack
Welchen Akku soll ich für ein Arduino-Roboterauto nehmen?
Ein 4×AA-Pack (6 V) oder ein 2×18650-Pack (7,4 V) am Motortreiber ist die Standardwahl. Beide liefern den Strom, den die Motoren brauchen, ohne unter Last einzubrechen. Versorge den Arduino über den geregelten 5-V-Ausgang des Treibers oder über USB, während du entwickelst.
Kann ich die Motoren eines Roboters mit einer 9-V-Batterie versorgen?
Nicht gut. Ein 9-V-PP3-Block hat sehr wenig Kapazität und hohen Innenwiderstand, sodass in dem Moment, in dem die Motoren Strom ziehen, seine Spannung einbricht und der Arduino in Brown-out geht und neu startet. Nutze ein AA- oder 18650-Pack für alles mit Motoren; den 9-V-Block hebe für ein Breadboard auf.
Teilen sich Arduino und Motoren dieselbe Batterie?
Meist teilen sie ein Pack, aber auf getrennten Schienen. Die Motoren ziehen aus dem Pack über die Vin-Klemme des Treibers; die Logik läuft auf geregelten 5 V. Entscheidend: Jede Versorgung muss eine gemeinsame Masse teilen, sonst haben deine Signale keine gemeinsame Referenz und nichts liest korrekt.
Warum startet mein Roboter neu, wenn die Motoren anlaufen?
Weil anlaufende Motoren kurz eine große Stromspitze ziehen und die gemeinsame Spannung unter das drücken, was der Arduino braucht, also bootet er neu. Lösungen sind ein steiferer Akku, getrennte Motor- und Logikschienen aus demselben Pack und ein Kondensator über der Motorversorgung, um die Spitze abzufangen.
Weiterführende Literatur