Batterieladezustand messen und anzeigen

Diesmal etwas scheinbar einfaches: Den Ladezustand einer 1,5V Batterie messen und anzeigen. Das Handicap: die Anzeige soll so einfach wie möglich sein und es ist die eigene Versorgung im Betrieb der Schaltung zu messen. Dazu greife ich zu einer dreifarben oder RGB LED. Ich nehme also die Ladekurve und teile sie in vier gleichgroße Abschnitte auf und lese die Werte aus der Entladekurve ab:

Erster Abschnitt: Weiß, Grenzspannung a = 1213 mV und höher
Zweiter Abschnitt: Blau, Grenzspannung von a bis b = 1150 mV
Dritter Abschnitt: Grün, Grenzspannung von b bis c = 1025 mV
Vierter Abschnitt: Rot, Grenzspannung von c bis d = 700 mV
Fünfter Abschnitt: Aus, ab d und niedriger

Hardware:

  • Arduino Uno
  • RGB LED (D9: Rot, D10: Grün, D11: Blau)
  • 1,5V AA Batterie als Teil eines Batteriepacks

Software:

Der AD Wandler arbeitet mit 10 Bit, hat also 1024 Stufen zur Darstellung der Spannung. Bei 5V am Uno sind das 4,9 mV je Stufe. Daraus ergibt sich folgende Tabelle für die Messwerte bei Belastung bzw. Entladung. Die Ergebnisse werden gerundet, da Bits keine Kommastellen haben:

  • (a) 1213 mV : 4,9 mV = 247,6 => 248
  • (b) 1150 mV : 4,9 mV = 234,7 => 235
  • (c) 1025 mV : 4,9 mV = 209,2 => 209
  • (d)  700 mV : 4,9 mV = 142,9 => 143

Jetzt muss ich also nur noch die AD Werte einlesen und auswerten. Abhängig von der Höhe des Messwertes nach der Tabelle wird dann jeweils eine , beziehungsweise alle LED’s eingeschaltet. Liegt der Messwert unterhalb von (d), dann alle LED’s aus, das ist gleichbedeutend mit dem letzten Abschnitt: Batterie ist leer. Betrachte ich die eigene Spannungsversorgung, dann hat der Prozessor selbst eine Untergrenze, ab der er möglicherweise schon vorher nicht mehr funktioniert. Den ganzen Bereich kann ich also nur messen, wenn es sich nicht um die eigene Spannungsversorgung handelt.

Der Sketch: Batterieladezustand-RGB

Ladezustand AA Batterie

Anmerkungen:

  • Für eine 9V Batterie muss ein Spannungsteiler vorgeschaltet werden mit 7,5 V zu 1,5 V, wobei dann für die Messung die 1,5 V abgegriffen werden.
  • Statt der Ausgabe an einer RGB LED lässt sich diese Messung auch zur Überwachung der Spannungsversorgung nutzen. Das ist in embedded Systemen durchaus notwendig, um noch eine Warnung zu senden, bevor die Batterie leer ist!
  • Sind mehrere Batterien in Reihe geschaltet, z.B. in einem Batteriepack, so wird an der ersten Batterie gemessen, deren Minuspol auf GND liegt!
  • Zu beachten ist, das der Prozessor möglicherweise schon vorher nicht mehr mitmacht und abschaltet, bevor z.B. die rote Stufe erreicht ist. Im Grenzbereich ist auch ein sich wiederholender Reset möglich. Das äußert sich als aufblitzen oder flackern. Siehe auch: Spannungsueberwachung mit Atmel Prozessoren sowie Spannungsueberwachung und Brown-Out erkennung


Links und Literaturhinweise

Entladekurven (1,5V Batterie)
https://www.tecchannel.de/a/batterie-test-kaelte-reduziert-leistung-um-bis-zu-40-prozent,2023671,5

https://www.mikrocontroller.net/topic/232588

Analoge Spannungen messen
https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

Spannungsteiler
https://de.wikipedia.org/wiki/Spannungsteiler

Spannungsueberwachung mit Atmel Prozessoren

Spannungsueberwachung und Brown-Out erkennung

Aktuator mit Überwachen der Funktion

 

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.