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.

Stromverteilungsillustration: Ein Akkupack mit zwei Zellen speist ein L298N-Motortreiberboard (mit geripptem Kühlkörper) über ein rotes Vin-Kabel; der Treiber versorgt zwei Motordosen; eine geregelte 5-Volt-Leitung versorgt ein Arduino-Board, das vier PWM- und Richtungssignalleitungen zurück zum Treiber schickt; ein gemeinsamer Massebus verbindet unten Akku, Treiber und Arduino.
Ein Pack, zwei Schienen: Die Motoren ziehen starken Strom über den Treiber, der Arduino läuft auf stabilen geregelten 5 V, und jedes Teil teilt eine gemeinsame Masse. SVG herunterladen

Wie es funktioniert

Folge dem Strom ab dem Pack:

  1. Die Batterie liefert Rohspannung – 6 V aus vier AAs, 7,4 V aus zwei 18650ern.
  2. 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.
  3. Die Logikschiene sind geregelte 5 V (vom Bordregler des Treibers oder über USB), die Arduino und Sensoren mit sauberer, stetiger Spannung versorgen.
  4. 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 Handhabungs­vorbehalten

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-Metall­getriebemotor ×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 Hindernis­vermeidungs­roboter – 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 – Spitzen­fä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. Motor­rückstrom durch ein gemeinsames Massestück erzeugt eine Spannungs­differenz 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 Schalt­transienten aus PWM und Motor­kommutierung, die mikrosekunden­skalig 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; Drehzahl­regelkreis schließen oder Pack überwachen
Motoren von Anfang an schwach Treiber­spannungsabfall 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.

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

Quellen