Arduino Batteriekapazitäts-Tester: Echte Kapazität prüfen, Fakes erkennen
Der Markt ist geflutet mit gefälschten NiMH- und Li-Ion-Zellen (18650, 21700, …), die weit überhöhte Kapazitäten (z. B. „9900 mAh“) angeben. Ein Arduino-basierter Kapazitätstester deckt Fakes auf, prüft gebrauchte Zellen (z. B. aus Laptop-Akkus) und überwacht den Alterungszustand. Dieser Artikel erklärt Aufbau, Funktion, Kalibrierung und Software.
Warum ein Kapazitätstester?
- Herstellerangaben stimmen oft nicht (insb. No-Name/Marktplatz-Zellen)
- Zellen altern → Kapazitätsverlust, erhöhter Innenwiderstand
- Wartung: Austauschzeitpunkt bestimmen (Restkapazität < 80 % Nennkapazität)
- Fehlerdiagnose: Schwache Zellen in Paketen erkennen (Zellenausgleich)
- Lebensdauerkurve verfolgen (Zyklenfestigkeit)
Funktionsprinzip
Der Tester entlädt die Zelle mit konstantem Strom (Constant Current Load) bis zur Abschaltspannung (Cutoff Voltage). Die entnommene Ladung Q = I × t (mAh) ist die Kapazität.
- Li-Ion: Cutoff 2,5–3,0 V (typ. 3,0 V), Nennspannung 3,6–3,7 V
- LiFePO₄: Cutoff 2,0–2,5 V, Nennspannung 3,2 V
- NiMH/NiCd: Cutoff 1,0 V/Zelle, Nennspannung 1,2 V
- Blei-Säure: Cutoff 1,67 V/Zelle (10 V bei 6er-Block)
Ein guter Tester hält den Entladestrom konstant (konstanter Lastwiderstand via MOSFET + OpAmp-Regelung), auch wenn die Zellenspannung sinkt. Dynamische Lastanpassung (aktiver Lastwiderstand) ist essenziell für Genauigkeit.
DIY Arduino Batteriekapazitäts-Tester (Einzelzelle, 0–5 V, bis ~3 A)
Benötigte Werkzeuge
- Lötkolben + Zinn, Seitenschneider, Abisolierer
- Multimeter (Spannung/Strom), Stromzange (für Hochstrom-Verifikation)
- Heißluftfön (Schrumpfschlauch), Bohrer (Gehäuse)
Bauteile (BOM)
- Arduino Nano (ATmega328P, 5 V, 16 MHz)
- OLED Display 0,96" (128×64, I²C, SSD1306)
- OpAmp: LM358 (Dual, Single Supply, Rail-to-Out nicht nötig)
- N-Kanal Power MOSFET (z. B. IRLZ44N, Logic Level, RDS(on) < 0,02 Ω)
- Lastwiderstand (Shunt): 0,1 Ω / 5 W (Präzision 1 %) – misst Strom via Spannungsfall
- Leistungswiderstand (Last): 2,2 Ω / 10 W (für ~1,5 A @ 3,3 V) oder 1 Ω / 20 W (für ~3 A) – auf Kühlkörper montieren!
- 2× Taster (UP/DOWN für Strom einstellen) + Kappen
- Piezo-Summer (5 V, aktiv High)
- Schraubklemmen (Zellenanschluss, Lastausgang)
- Kondensatoren: 220 µF (Elko, Puffer), 100 nF (Keramik, Entkopplung)
- Widerstände: 1 MΩ, 4,7 kΩ (Spannungsteiler), 4,7 kΩ (Pull-Ups Taster)
- Präzisions-Referenz: LM385BZ-1,2V (1,2 V Bandgap, für ADC-Kalibrierung)
- Prototyp-Platine / Selbstgeätztes PCB + Standoffs
- Schrumpfschlauch, Kabel, Gehäuse (optional)
Schaltplan – 5 Funktionblöcke
- Summer-Schaltung: D9 → Summer → GND (Start/Ende Signal)
- Zellenspannungs-Messung: Spannungsteiler (1 MΩ / 4,7 kΩ) → ADC Pin (A0). C3/C4 (100 nF) filtern Störungen vom Laststrom.
- Netzteil: 9 V DC-Buchse → 7805 (oder Nano Onboard-Regler) → 5 V. C1/C2 (220 µF / 100 nF) pufferen.
- Konstanter-Strom-Last (Kern):
- PWM D10 → RC-Tiefpass (R2/C6) → Gleichspannung (0–5 V) → OpAmp LM358 Pin 3 (Nicht-invertierend)
- Shunt (0,1 Ω) in Lastpfad → Spannungsfall ∝ Strom → OpAmp Pin 2 (Invertierend, nach Tiefpass)
- OpAmp Output → MOSFET Gate. Regelkreis: VShunt = VPWM_DAC → ILast = VPWM_DAC / RShunt
- UI (Bedienung): OLED (I²C: A4/SDA, A5/SCL), 2 Taster (Pull-Up 4,7 kΩ, Entprell-Caps 100 nF) für PWM-Duty (Strom) einstellen.
Funktionsweise der Konstantstrom-Senk
Der OpAmp vergleicht die Soll-Spannung (aus PWM-DAC) mit der Ist-Spannung am Shunt. Er regelt den MOSFET so, dass beide gleich sind. Da Shunt-Widerstand fest ist, ist der Strom proportional zur PWM-Sollspannung. Der Tiefpass (R2/C6) glättet PWM zu DC. Bandbreite: ~100 Hz – schnell genug für Lastsprünge.
Kapazitätsberechnung
Formel: Kapazität (mAh) = Strom (mA) × Zeit (h)
- Strom = Konstante (eingestellter Wert, z. B. 1000 mA)
- Zeit = Messdauer bis Cutoff (Arduino misst über millis())
- Ergebnis wird auf OLED live angezeigt (Spannung, Strom, Kapazität, Zeit)
Aufbau & Bestückung
- Steckbrett-Test: Schaltung auf Breadboard validieren (Spannungen, PWM, OpAmp-Regelung, Display, Taster).
- Löten: Female Header für Nano (15 Pin pro Seite), 4-Pin Header für OLED. Bauteile nach Höhe bestücken: flach → hoch (Widerstände → ICs → Kondensatoren → MOSFET → Lastwiderstand → Klemmen).
- Farbcodierte Drähte für Übersicht (Rot=VCC, Schwarz=GND, Gelb=Signal, …).
- OLED anschließen: VCC→5V, GND→GND, SDA→A4, SCL→A5. Library:
Adafruit_SSD1306(GitHub/Library Manager). - Summer: Plus (langes Bein) → D9, Minus → GND. Aufkleber beachten. Wenn Platzmangel: 2-Draht-Verlängerung zur Hauptplatine.
- Standoffs einlöten (Mechanik, Platz für Lötaugen).
PCB-Design (EasyEDA / KiCad)
- Schematic → Netlist → PCB Layout
- Komponenten platzieren (thermisch: MOSFET & Lastwiderstand an Rand, Kühlkörperfläche, Thermal Vias)
- Routing: Leistungspfade breit (≥ 2 mm für > 2 A), Signalpfade sauber, Ground Plane
- Silkscreen: Beschriftung, Logo, Polaritätsmarkierungen
- Montagelöcher für Gehäuse
PCB-Bestückung (Assembly)
- Bestückungsreihenfolge: niedrig → hoch (SMD zuerst, dann THT)
- Lötspitze an Pad + Beinchen → Lot zuführen → Flussmittel hilft
- Nachlöten prüfen (Lupe), Kurzschlüsse messen (Multimeter Diode/Ohms)
Software & Libraries
Benötigte Libraries (Arduino Library Manager / PlatformIO lib_deps):
Adafruit_SSD1306(OLED Treiber)Adafruit_GFX(Grafik-Primitiven)JC_Button(Entprellung, Kurz/Lang-Druck)
Hauptlogik (Sketch):
- Setup: ADC-Kalibrierung (LM385 1,2 V Referenz), OLED Init, PWM Frequenz setzen (z. B. 31 kHz auf Timer1 für glattere Regelung)
- Loop: Taster abfragen (UP/DOWN → PWM Duty ändern → Sollstrom), ADC lesen (Zellenspannung, Shunt-Spannung), Kapazität integrieren (mAh += I_mA × dt_h), Display aktualisieren
- Cutoff: Wenn VZelle < VCutoff → MOSFET aus, Summer Signal, Ergebnis anzeigen, Speichern (EEPROM/SD)
- Sicherheit: Übertemperatur-Schutz (NTC an MOSFET/Lastwiderstand), Max-Zeit-Limit
Endtest & Validierung
- Referenzzelle (bekannte Kapazität, z. B. originale Samsung 30Q 3000 mAh) laden (CC/CV, 4,2 V)
- In Tester einspannen, Entladestrom einstellen (z. B. 1000 mA)
- UP-Taster 10 s halten → Start-Signal (Summer)
- OLED überwachen: V, I, mAh, Zeit. Abbruch bei 3,0 V (Cutoff) → End-Signal
- Vergleich: Gemessene mAh vs. Nennwert. Abweichung < 5 % → Tester kalibriert.
FAQ
- Wie testet man Batteriekapazität?
- Zelle an Tester anschließen (Plus/Minus beachten!). Tester legt Last an, misst Strom & Spannung über Zeit. Kapazität = ∫ I dt. Gute Tester halten I konstant.
- Wie überwacht man Batterie am Arduino?
- Spannungsteiler an Analog-Pin (max 5 V am Pin!). Für Li-Ion: 1 MΩ / 4,7 kΩ → 4,2 V Zelle ≈ 0,19 V am ADC. Formel:
Vcell = ADC * (5.0/1023) * (R1+R2)/R2. - Wie wird Li-Ion Kapazität gemessen?
- In Ah (Amperestunden) oder mAh. 1 Ah = 1 A für 1 h entnehmbar. Standard: CC-Entladung (0,2C–1C) bis Cutoff (2,5–3,0 V) bei 25 °C.
Abschließende Worte
Ein DIY-Kapazitätstester ist ein unverzichtbares Werkzeug für jeden, der mit Li-Ion/NiMH-Zellen arbeitet (Taschenlampen, Powerbanks, E-Bikes, Drohnen, Solarspeicher). Er schützt vor Fehlkäufen, Bränden (durch überlastete Fakes) und Ausfällen. Selbstbau kostet ~20–40 €, lehrt Analog-Schaltungstechnik & Embedded-Programmierung. Fertiggeräte (ZB2L3, ATORCH, iMax B6) gibt es ab 15 € – aber Selberbauen macht Spaß & flexibel. Kompatibilität mit Ihren Zellen (Spannung, Strom, Anschluss) prüfen! Fragen? Melden Sie sich.
Industrietechnik
- Remote Commissioning: Effizienz und Flexibilität in industriellen Operationen freisetzen
- Warum Spitzenhersteller auf Weltklasse-Motormanagement & -Wartung setzen
- Drehgeber (Rotary Encoder) mit Arduino meistern: Funktionsweise & Integration
- Plasmaschneiden erklärt: Funktionsweise, Vorteile und Tipps
- Arduino einfach erklärt: Was es ist und wie man es programmiert
- Stillstandzeit-Tracking-Software: Fertigungseffizienz steigern & Kosten senken
- Asset Tracking: Warum es wichtig ist & wie es funktioniert
- Warum ein Leading-Edge-SRL wählen und wann es unverzichtbar ist
- Die Eisenarbeiter-Maschine: Unverzichtbares Werkzeug für die moderne Fertigung
- Förderband-Seitenführung: Funktionsweise und Bedeutung für Effizienz