Forum: Mikrocontroller und Digitale Elektronik Ladezustand Lithium-Batterie erfassen


von Michael S. (michael8192)


Lesenswert?

Hallo,

ich habe ein Gerät, das über zwei Lithiumbatterien CR123 betrieben wird 
und ich muss den Ladezustand der Batterien überwachen und mit einer 
bicolor-LED anzeigen. Der uC ist ein PIC18F46K22.
Ich habe die Möglichkeit die Batteriespannung über einen hochohmigen 
Spannungsteiler zu messen, der auf den Analogeingang mit HLVD-Funktion 
(Pin 22) geführt wird. Damit kann ich dann auch eine 
Batterieunterspannung detektieren, um Schreibvorgänge auf das EEPROM zu 
sperren.
Als zweite Möglichkeit kann ich die Stromaufnahme über einen LT6105 
messen. Damit erhalte ich eine "schöne" Entladekurve des Laststromes. 
Die Messung der Batteriespannung ist eher problematisch, da die 
Entladekurve sehr flach ist.

Die Idee wäre, dass ich mit dem LT6105 den Strom alle 10..100ms messe 
und einen Coulomb-Counter realisiere.
Ich weiss aus Herstellerangaben, dass eine CR123 um die 1400mAh hat.

Aber:
Das das mit dem Coulomb-Counter würde ja nur funktionieren, solange die 
Batterien nicht gewechselt werden. Also müsste ich bei jedem Reset (neue 
Batterien eingelegt) den Coulomb-Counter zurücksetzen. Das funktioniert 
aber nicht mehr, wenn die gleiche Batterie entfernt und wieder 
eingesetzt wird bzw. eine andere, die auch nicht mehr ganz voll ist. 
D.h. ich müsste irgendwie den Batteriewechsel erkennen können. Evtl. 
könnte ich zusätzlich den gemessenen Wert der Batteriespannung noch im 
EEPROM abspeicher?

Vielleicht hat jemand einen Denkanstoss für mich, wie ich das Problem 
angehen kann?

Vielen Dank.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Michael S. schrieb:
> Die Messung der Batteriespannung ist eher problematisch, da die
> Entladekurve sehr flach ist.

Hmm, wie wäre es, den Bereich zu dehnen? D.h., den uninteressanten 
Bereich, bei dem die Batterie eh leer ist, abzuziehen und den 
interessanten Bereich etwas zu verstärken, um mit dem ADC noch geringere 
Änderungen der Batteriespannung zu erkennen. Das könnte man mit einer 
Referenzspannung und einem Diff. Verstärker realisieren.
In welchen Bereich liegt denn die Batteriespannung zwischen voll und 
leer?

: Bearbeitet durch User
von steffen (Gast)


Lesenswert?

Moin, ich nutze, um zu sehen ob ein Lipo leer ist, die interne 
Spannungsreferenz eines µC. Dazu messe ich immer wenn der µC was macht 
die Spannung, ist diese mehrmals hintereinander zu niedrig wird das 
Gerät ausgeschaltet und geht nicht mehr an. Vielleicht kann der PIC auch 
seine Ref. messen.
Gruß Steffen

von testtest (Gast)


Lesenswert?

Tröpfchenzähler kann man implementieren. Wird bei smart Batteries 
gemacht. Da du aber austauschbare Zellen verwendest läuft das auf einen 
initialen Lade/Entladezyklus aus mit dem du die Kapazität feststellt. 
Ist nicht immer sinnvoll.
Alternativ kann man nach der Lade/Entladekurve schauen. LiIon ist bei 
Zellenspannung von 4,2V proppenvoll, bei 2,8V ist er leer. Unter 2,5V 
darf die Zellenspannung nicht fallen.
Schau dir die Spezifikation deiner Zelle an und übertrage die Kennlinie 
in eine LUT. Das dürfte genau genug sein ohne übermäßig viel Aufwand.

von Michael S. (michael8192)


Lesenswert?

Vielen Dank für Eure Beiträge.

@Matthias
Leider kann ich am Layout der Schaltung nicht mehr viel ändern. Der 
Spannungsteiler ist fix, ich könnte nur noch das Teilerverhältnis 
ändern.
Der Spannungsbereich ist von ca. 6.3V (Batterien nagelneu) bis ca. 2V. 
Bei kleineren Spannungen stellt der DCDC-Wandler ab.

@Steffen
Das wäre eine Idee aber der PIC ist an der stabilisierten Spannung vom 
DCDC-Wandler angeschlossen und der hält die Spannung stabil auf ca. 5V 
solange bis die Batteriespannung auf ca. 1.7..1.5V abgesunken ist.
Prinzipiell kann der PIC aber die Referenzspannung messen (Eingang FVR 
BUF2, interne Referenz).

von Dirk K. (dekoepi)


Lesenswert?

Ich würde testests Ansatz wählen - die Entladekurve der Batterien ist 
bekannt, daher kann aufgrund der gemessenen Spannugn auf den derzeitigen 
Ladestand geschlossen werden. LUT klingt dafür sinnvoll.

von Michael S. (michael8192)


Lesenswert?

testtest schrieb:
> Tröpfchenzähler kann man implementieren. Wird bei smart Batteries
> gemacht. Da du aber austauschbare Zellen verwendest läuft das auf einen
> initialen Lade/Entladezyklus aus mit dem du die Kapazität feststellt.
> Ist nicht immer sinnvoll.
> Alternativ kann man nach der Lade/Entladekurve schauen. LiIon ist bei
> Zellenspannung von 4,2V proppenvoll, bei 2,8V ist er leer.

Das bezieht sich sicher auf einen Akku? Ich verwende aber 
Lithium-Batterien und die kann man ja nicht laden. Also kann ich nur 
eine Entlademessung durchführen oder mich auf die Herstellerangaben 
verlassen, um die Anfangskapazität zu erhalten (~1400mAh, Hersteller). 
Die Leerlaufspannung bei neuen Batterien beträgt pro Batterie ca. 
3.15..3.2V (s.o.)

von Michael S. (michael8192)


Angehängte Dateien:

Lesenswert?

Hier mal noch das Datenblatt zu den Batterien...

von Dirk K. (dekoepi)


Lesenswert?

Notfalls opfere doch eine Batterie und entlade sie mit der bei dir 
abgerufenen Last und erstelle den Graphen selbst. Das Datenblatt ist da 
ja recht oberflächlich und erlaubt nicht, konkrete Werte abzulesen.

Der Vorteil, du hast dann deine Schaltung gleich automatisch "geeicht" 
auf die verwendeten Batterien. Eigentlich brauchst du nur die 
Startspannung und den Wendepunkt, ab dem es steil abfällt. Daran kannst 
du dann deinen nutzbaren Bereich festmachen. Du siehst auch gleich, ob 
deine Auflösung dafür ausreicht.

: Bearbeitet durch User
von Michael S. (michael8192)


Angehängte Dateien:

Lesenswert?

Die Entladekurve einer solchen Batterie habe ich bereits aufgenommen.

Zur Erklärung:
Kurve gelb: Batteriespannung direkt
Kurve rot: Strommessung mit LT6105
Kurve blau: optisches Ausgangssignal (Last ist eine Leistungs-LED, 
Anfangsstrom ist ca. 1A)

Was man gut sieht ist der bereits erwähnte flache Verlauf der 
Batteriespannung. Direkt nach dem Einschalten bricht die Spannung ein 
und steigt im ersten Moment wieder da sich die Batterie erwärmt. Danach 
gibt es einen flachen Talpunkt (da wo auch der Strom anfängt 
abzunehmen). Was man auf jeden Fall sieht ist, dass der Strom schon fast 
am Ende ist und die Spannung immer noch stabil ist. Es ist fast der 
gleiche Wert wie nach dem Einschalten. Wie soll ich da mit der 
Spannungsmessung vernünftige Werte messen?
Deshalb wurde auch die Strommessung noch mit eingebaut, um darüber den 
Ladezustand zu bestimmen.
Nachteil: Kleiner Laststrom - kleiner Startwert, grosser Laststrom - 
grosser Startwert. Und das Gerät hat mehrere Verbraucher.

von Dirk K. (dekoepi)


Lesenswert?

C1 kannst knicken, C2 und C3 hingegen lassen ab etwa 66-75% eine 
Enschätzung des Ladestands zu. Ist nicht sonderlich schön, erst so spät 
was zu erkennen, aber grundsätzlich sieht das für mich umsetzbar aus.

von Michael S. (michael8192)


Lesenswert?

Dirk K. schrieb:
> C1 kannst knicken, C2 und C3 hingegen lassen ab etwa 66-75% eine
> Enschätzung des Ladestands zu. Ist nicht sonderlich schön, erst so spät
> was zu erkennen, aber grundsätzlich sieht das für mich umsetzbar aus.

C1: Batteriespannung
C2: Strom
C3: opt. Ausgangssignal

Also wird das mit der Batteriespannungsmessung nichts und ich muss die 
Überwachung des Ladezustandes mit dem Coulomb-Counter realisieren. 
Bleibt das Problem mit dem Batteriewechsel(s.o.)

von Dirk K. (dekoepi)


Lesenswert?

Du hast doch da was für den Strom gebaut mit Spannungsteiler? Ode rhabe 
ich das falsch verstanden? Oder einfach das "opt. Ausgangssignal" 
auswerten. Halt indirekt, aber effektiv den Ladestand der Zelle erkannt 
;)

von Michael S. (michael8192)


Lesenswert?

Nein, ich messe die Stromaufnahme mit einem Shunt und dem LT6105 
(I-U-Wandler). Das Ausgangssignal gebe ich auf den PIC.
Zusätzlich messe ich die Batteriespannung über einen Spannungsteiler und 
gebe das Signal auch auf den PIC.
Das optische Signal war nur eine Hilfe mit einer Ulbrichtkugel.

von batman (Gast)


Lesenswert?

Die Entladespannung der Batterie ändert sich kaum aber Strom fällt? 
Interessantes Phänomen. Wird die Last vielleicht nur bissie zu warm?

von Michael S. (michael8192)


Lesenswert?

Eben eine Leistungs-LED. Die wird schon ordentlich warm. Aber Kühlung 
ist auch vorhanden.

von Michael S. (michael8192)


Lesenswert?

Ich habe nochmal darüber nachgedacht...
Wenn ich schon Strom und Spannung messen kann...
Würde es funktionieren, wenn ich den Innenwiderstand der Batterien quasi 
im laufenden Betrieb berechne?
Also wenn Verbraucher eingeschaltet, dann Messung von U1, I1 zum 
Zeitpunkt t1 und U2,I2 zum Zeitpunkt t2.
Dann könnte man ja den Innenwiderstand berechnen mit
Ri=du/di = (U2-U1)/(I2-I1)?
Kommt das auf das Gleiche raus als wenn ich den Innenwiderstand mit zwei 
verschiedenen Lasten bestimme?

Der Innenwiderstand steigt mit zunehmender Entladung. Somit wäre es 
vielleicht möglich eine Aussage über den Ladezustand zu machen.
Oder liege ich da falsch?

von Michael S. (michael8192)


Lesenswert?

Ich zitiere mich mal selber:

Michael S. schrieb:
> Würde es funktionieren, wenn ich den Innenwiderstand der Batterien quasi
> im laufenden Betrieb berechne?

So ein Quatsch, das kann natürlich auch nicht funktionieren, wenn das dU 
so klein ist...

von uwe (Gast)


Lesenswert?

Lithiumbatterien wechselt man ab 3,0V...

von Dirk K. (dekoepi)


Lesenswert?

Autos haben 100 PS.

Bitte nochmal Li-Akkus und -Batterien nachschlagen. ;)

Da gibt es alles zwischen nominell 3.0, 3.2, 3.6, 3.7 und 3.8V. Was auch 
jedes Mal eine gewisse Enladekurve mit eigenen Grenzen beschreibt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.