Aus Raspberry Pi Geek 09/2025

Akkus testen mit der regelbaren Stromsenke XY-FZ35

© deniskot / 123RF.com

Leistungsprüfung

Dr. Roland Pleger

Mit dem XY-FZ35 und ein wenig Python prüfen Sie zuverlässig den Zustand von Akkus bis hin zur Autobatterie. Der Clou des Geräts: Es lässt sich über eine serielle Schnittstelle steuern.

Die elektrische Spannung einer Batterie charakterisiert ihren Gesundheitszustand. Liegt sie deutlich unter der Entladeschlussspannung, ist die Batterie defekt. Anderenfalls funktioniert sie zwar, aber ihre Kapazität ist fraglich. Um sie zu bestimmen, beobachtet man während des Ladens Strom und Spannung. Die Ladeenergie liefert allerdings nur die mögliche Obergrenze, tatsächlich könnte ein Großteil der Energie als Wärme verloren gegangen sein.

Die Qualität eines Akkus zeigt sich in seinem Lastverhalten. Im einfachsten Fall schließt man einen Widerstand an und beobachtet Strom- und Spannungsverlauf über die Zeit. Im Prinzip erledigt der hier vorgestellte Lasttester XY-FZ35 [1] nichts anderes, nur viel eleganter: Statt eines fest eingestellten Widerstands simuliert er einen regelbaren Widerstand mit wählbarer Stromstärke.

Datenblatt

Das Gerät ist als Einschubmodul konzipiert, Abbildung 1 zeigt die Frontseite. Der XY-FZ35 kann bis zu 35 Watt an Wärme umsetzen. Deshalb gilt es, genügend Raum zum Luftaustausch für den Lüfter auf der Rückseite vorzusehen. Die maximale Spannung liegt bei 25 Volt, der maximale Strom bei 5 Ampere. Konventionelle Alkali-Mangan-Zellen (“Alkaline”) lassen sich damit nicht testen, ihre Spannung liegt unter der minimalen Eingangsspannung von 1,5 Volt.

Abbildung 1: Der Lasttester XY-FZ35 in der Frontansicht.

Abbildung 1: Der Lasttester XY-FZ35 in der Frontansicht.

Die elektronische Last regelt für konstanten Strom und passt ihre Leistungsaufnahme abhängig von der Spannung an. Der Drehimpulsgeber passt den Strom in 10-mA-Schritten mit einer absoluten Genauigkeit von 1 Prozent (±30 mA) an. Der Druckknopf unterhalb des Reglers schaltet das Gerät ein sowie die Last ein oder aus. Drücken Sie auf den Drehimpulsgeber, gelangen Sie in das Einstellungsmenü, das die Begrenzungsparameter anpasst. Es legt beispielsweise die Minimalspannung fest – äußerst hilfreich, um Tiefentladungen an Akkus zu verhindern.

Unscheinbar auf der Rückseite des Geräts finden sich die drei Kontakte GND, RX und TX. Viele Beschreibungen des Geräts behandeln sie stiefmütterlich. Dabei entfaltet der XY-FZ35 erst im Zusammenspiel mit einem Rechner sein Können.

Serielles Interface

Serielle Schnittstellen sind aus der Computertechnik nicht mehr wegzudenken. Der aktuelle Universal Serial Bus (USB) ist nur ein Beispiel dafür; der früher populäre RS232-Busstandard ist dagegen so gut wie ausgestorben. Sehr alte Rechner verfügen noch über einen 25-poligen D-Sub-Stecker (DB-25), alte Rechner über das 9-polige Pendant (DE-9), jeweils mit einer Pegelspannung von ±12 Volt. Während sich die elektrischen Parameter überlebt haben, bewährt sich das Protokoll dank seines einfachen Aufbaus. Statt mit ±12 Volt und Spezialsteckern lebt es weiter als TTL-Anpassung mit 0 bis 5 Volt (oder 3,3 Volt) und Steckkontakten. Abbildung 3 vergleicht den alten D-Sub-Stecker (unten) mit einem blauen USB-zu-TTL-Stecker und seinen vier Steckkontakten.

Abbildung 2: Das serielle Interface des XY-FZ35: Links unten im Bild sehen Sie die Schraubklemmen für die Leitungen zur Testquelle.

Abbildung 2: Das serielle Interface des XY-FZ35: Links unten im Bild sehen Sie die Schraubklemmen für die Leitungen zur Testquelle.

Abbildung 3: Reduzierter Platzbedarf: Ein alter 9-poliger RS232-Stecker im Vergleich mit der modernen TTL-Ausführung.

Abbildung 3: Reduzierter Platzbedarf: Ein alter 9-poliger RS232-Stecker im Vergleich mit der modernen TTL-Ausführung.

Um mit der elektrischen Last zu kommunizieren, benötigen Sie zunächst ein USB-zu-TTL-Seriell-Kabel. Die Variante mit 3,3-Volt-Pegeln statt 5 Volt (TTL) ist vielseitiger. Sie eignet sich auch für Mikrocontroller, deren Eingänge nur Spannungen bis 3,3 Volt verkraften. Die Farben der Leitungen sind nicht genormt. Oft leitet Rot eine 5-Volt-Betriebsspannung weiter, Schwarz fungiert als Masseleitung. Grün sendet die Signale (TX), Weiß ist oft die Empfangsleitung (RX).

Gemäß dem RS232-Protokoll beginnt die Übertragung mit einem Start-Bit, also einem kurzen Impuls auf der Leitung, gefolgt von acht Impulsen für acht Bit. Je nach Level stehen sie für eine 0 oder eine 1. Die Bitfolge endet mit einem Stopp-Bit, wobei der Pegel invers zu dem des Start-Bits ist und auf hohem Spannungslevel liegt. Liegen gerade keine Signale an, erkennt ein Voltmeter an der Höhe des Spannungslevels den Typ des Kabels, also 3,3 Volt TTL-ähnlich oder 5 Volt TTL.

RS232 arbeitet asynchron. Nach einem gesendeten Wort folgt zeitlich nicht festgelegt das nächste 8-Bit-Wort. Eine Angabe der Anzahl von Stopp-Bits sagt lediglich aus, wie lange die Pause zwischen zwei Übertragungsworten mindestens dauern soll.

Serielle Kommunikation

Zahlreiche Terminalprogramme wie Minicom [2] oder Screen beherrschen die serielle Kommunikation. Dieser Artikel beschränkt sich auf Tests mit Python. Damit Sie Kommandos absenden können, müssen Sie den Gerätenamen der Schnittstelle kennen. Sie finden ihn mithilfe des Konsolenprogramms Dmesg heraus. Listing 1 zeigt einen Ausschnitt der Ausgabe. Der Rechner hat das Schnittstellenkabel erkannt und ihm die Bezeichnung ttyUSB0 zugeordnet (letzte Zeile). Bei mehrfachem Ein- und Ausstecken kommt es vor, dass das System den Port nicht schließt und die Schnittstelle dann den Namen ttyUSB1 bekommt.

Listing 1

Ausgabeschnittstelle prüfen

$ sudo dmesg
[  831.694523] usb 1-2: new full-speed USB device number 9 using xhci_hcd
[  831.843834] usb 1-2: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 4.00
[  831.843845] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  831.843855] usb 1-2: Product: USB-Serial Controller D
[  831.846652] pl2303 1-2:1.0: pl2303 converter detected
[  831.847857] usb 1-2: pl2303 converter now attached to ttyUSB0

Python kommuniziert über die Bibliothek Pyserial [3], die Sie mit dem Kommando pip3 install pyserial einrichten. Der Bezeichner für die Bibliothek, die Pip3 installiert, und die, die Python im Skript aufruft, unterscheiden sich bei manchen Bibliotheken – so auch hier: In den Code binden Sie Pyserial mit import serial ein (Listing 2, erste Zeile). Das Repository PyPI kennt ebenfalls eine Bibliothek serial, die aber mit pyserial nichts zu tun hat.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben