Probleme den Ladezustand des Akkus zu messen

Hallo Zusammen, für ein Projekt habe ich einen Li-Ion Akku den ich über folgendes Board auflade und entlade...

Über einen Optokoppler schalte ich ca. alle 15 Sek. die Akkuspannung (direkt vom Akku) auf einen Analogeingang und messe die Spannung 10 mal und bilde den Mittelwert daraus.

Nun wollte ich die Spannung von Leer bis Voll auf 0-100% Mappen und dann über einen Neopixel Ring den Akkustand anzeigen lassen.

Nun habe ich aber folgende Ladekurve aufgenommen.

Dadurch das diese einen Höhepunkt hat und danach wieder sinkt, ist es mir aber nicht möglich die Werte sinnvoll zu Mappen. Nun habe ich eine Notlösung gewählt.

Sowie der Messwert einmal über 920 (Direkter Messwert ohne Umrechnung) steigt, lasse ich dies als 100% werten. Ab diesem Zeitpunkt zeigt meine Anzeige immer 100% an. Wenn der Wert sich von einer zur nächsten Messung um 55 senkt (passiert wenn Ladung beendet und Akku voll) dann lasse ich die Anzeige komplett ausgehen und den Arduino schlafen. Nun weiß ich das der Akku ganz voll ist.

Das Problem ist, dass die 100% nun angezeigt werden ca. 1 Stunde bevor die Anzeige aus geht und der Akku wirklich voll ist. Wenn man das weiß ist das natürlich kein Problem, aber schön ist es nicht.

Habt ihr eine Idee wie ich dies besser lösen könnte oder ist das aufgrund der Kurve nicht möglich?

Ich hoffe ich konnte es verständlich erklären.

Vielen Dank und viele Grüße
Steffen

Nimm vielleicht ca. 950, merke dir das und frage danach ab ob du in dem abfallenden Teil bist. Dann weißt du dass der Akku wirklich voll ist

Das hatte ich auch schon versucht. Geht aber nur wenn der Akku komplett leer ist. Steckt man ihn danach nochmal dran dann greift das nicht weil er dann nicht mehr bis 950 kommt. Da sind 920 sicher. Würde aber auch dann noch ca 30 min vor Ende sein.

Und ich die Anzeige würde ab 950 wieder sinken auf dem LED Ring.

Viele Grüße

Ohne den Lader vom Akku zu trennen?
Dann hättest Du schon verloren.

Ja. Warum habe ich dann verloren ?

Ich mache das, damit der Akku nicht über den analogen PIN des mit der Zeit leer gezogen wird wenn dieser aus ist. Es funktioniert auch ohne Probleme. Man kann doch auch während des Laden mit einem Voltmeter die Spannung am Akku messen. Das ist doch ähnlich dem messen über einen analog Pin. Oder ?!

Weil Du den Controller fürs laden nicht abhängst.
Du bekommst das, was der Controller ausgibt und nicht das, was der Akku hergibt.

Ich hab ne Idee, die aber ein wenig Arbeit bedeutet und das ganze OHNE Erfolgsgarantie.

Wenn da nicht irgendwelcher Scheiss sondern ein IP5306 (etc. auch baugleich) drauf verbaut ist, dann bekommst Du an den Pins für die LED's einen I2C Bus angeboten.
Dafür musst aber die LED's abtackern.

Ich such noch nach dem Datenblatt - aber ich muss wissen, ob Du das willst.

Jetzt hast du mich auf eine Idee gebracht. Habe direkt dies dazu im Netz gefunden. Denke das könnte ich adaptieren. Muss nur schauen das ich erst mal ein neues Board ran bekomme. Am laufenden Projekt will ich das nicht machen. Ist eine Musikbox für meine Tochter :relaxed:


int8_t getBatteryLevel()
{
  Wire.beginTransmission(0x75);
  Wire.write(0x78);
  if (Wire.endTransmission(false) == 0
   && Wire.requestFrom(0x75, 1)) {
    switch (Wire.read() & 0xF0) {
    case 0xE0: return 25;
    case 0xC0: return 50;
    case 0x80: return 75;
    case 0x00: return 100;
    default: return 0;
    }
  }
  return -1;
}

void setup() {
    Wire.begin();
  }


Hast du das damit gemeint ?

Vielen Dank schon mal

1 Like

:slight_smile: :slight_smile: :slight_smile:
Das nicht unbedingt, aber Du hast es geschafft danach zu suchen und hast was gefunden.
Andere heulen, wenn man Vorschläge macht.

Das Original kommt von hier:
http://www.injoinic.com/product_detail/id/21.html (Kein https - ist halt so)
Bei dem ist aber die Communication nicht drin.
Im 5310 gibt es einen Auszug:
http://www.injoinic.com/wwwroot/uploads/files/20200221/a7a6128e03ee193cf35e48b28e3df9df.pdf

Und in deutsch gibt es eine - aber Achtung - das muss man lieben...

Beste Grüße und schlaflose Nächte! :wink: - wenns die die Lösung ist, würds mich freuen...

Das Original-DaBla für die I2C-Geschichte häng ich mal direkt ran.
IP5306 I2C registers.pdf (647,4 KB)