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