Ein Batterietester
Elektronik-Labor
Projekte
Mikrocontroller PicoBasic
Wenn irgendwo AA-Batterien aussortiert werden, übernehme ich sie gerne zum Test und
zur Entsorgung. Die schlechten kommen in die Sammlung für den Recycling-Hof,
die guten in meine kleine Batterie-Bierkiste, die mir mein Freund Rainer mit
seinem 3D-Drucker gebaut hatte. Zum Test hatte ich bisher ein Digitalvoltmeter
verwendet und nur die Leerlaufspannung gemessen. Mein PicoBasic-Batterietester
mit einem CH32V003 misst die Spannung dagegen unter Belastung mit 100 Ohm. Das
Ergebnis war, dass meine Noch-Brauchbar-Batteriesammlung deutlich ausgedünnt
werden musste.
In der Schaltung gibt es einen zweiten Widerstand, der nur zum Schutz des
Controllers dient. Im normalen Einsatz hat dieser Widerstand von 1 kOhm keinen
zusätzlichen Spannungsabfall, weil der AD-Wandler sehr hochohmig ist. Aber wenn
ich mal versehentlich eine Batterie falsch gepolt anschließe, geht die interne
Schutzdiode am Eingang in den leitenden Zustand und benötigt dringend eine
Strombegrenzung.
Das Programm BatTest misst die Spannung und vergleicht sie mit 1 V. Unter 1 V
wird nichts angezeigt, oberhalb von 1 V werden Stufen von 0,1 V an den LEDs
angezeigt. Dazu dient eine C-Zählschleife mit einem Schiebebefehl. Wenn man
0b00000011 nach links schiebt, wird daraus 0b00000110. Die letzte Null
muss daher mit A = A Or 1 wieder aufgewertet werden. Bei 1,4
V wird C = 4, und damit werden vier LEDs eingeschaltet.
Rem BatTest
0x09FF Pdir = 255
L1:
0x0800 Pout = 0
0x3C00 A = AD0
0x4200 Print A
0x0233 B = 51
Rem > 1V?
0x2307 If A>B Goto L2:
0x2001 Goto L1:
L2:
0x2B00 A = A - B
0x0205 B = 5
0x2D00 A = A / B
Rem 0,1V pro LED
0x3600 C = A
0x0800 Pout = 0
0x0101 A = 1
L3:
0x2510 C*Goto L4:
0x19FA Delay ms = 250
0x2001 Goto L1:
L4:
0x1301 A = A OR 1
0x4500 Pout = A
0x3100 A = A Shl 1
0x200D Goto L3:
Elektronik-Labor
Projekte
Mikrocontroller PicoBasic