Forum: Mikrocontroller und Digitale Elektronik ESP32C3 Seeed Studio - Wie komme ich an den Ladestatus?


von Ralf Harald (harald_kiri)


Lesenswert?

Hallo zusammen, ich bastle zur Zeit mit dem Seed Studio ESP32C3 und habe 
bisher fast alles zum Laufen gekriegt. Ein Problem habe ich noch, für 
das ich Hilfe brauche.

Ich will neben der Messung der Akkuspannung auch den Status "USB 
angeschlossen" und "Akku wird geladen" sicher feststellen können. 
Ersteres will ich an der 5V-Spannung des USB festmachen, aber für den 
Ladezustand weiß ich nicht weiter.

Auf der Platine ist eine LED angebracht, die leuchtet wenn ein 
angeschlossener Akku geladen wird. Ist er voll, geht die LED aus. Habe 
ich irgendeine Möglichkeit, den Status der LED auszulesen?

von Jörg R. (solar77)


Lesenswert?

Ralf Harald schrieb:
> ..
> Ich will neben der Messung der Akkuspannung auch den Status "USB
> angeschlossen" und "Akku wird geladen" sicher feststellen können.
> Ersteres will ich an der 5V-Spannung des USB festmachen, aber für den
> Ladezustand weiß ich nicht weiter.
>
> Auf der Platine ist eine LED angebracht, die leuchtet wenn ein
> angeschlossener Akku geladen wird. Ist er voll, geht die LED aus. Habe
> ich irgendeine Möglichkeit, den Status der LED auszulesen?

Hast Du noch einen GPIO-Pin frei? Dann könntest Du den Zustand der LED 
darüber abfragen.

: Bearbeitet durch User
von Andreas S. (bastelmax)


Lesenswert?

Lies mal hier (in der Mitte der Seite):
https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/
oder auch hier :
https://forum.seeedstudio.com/t/battery-voltage-monitor-and-ad-conversion-for-xiao-esp32c/267535
Alles nur Anregungen - Du kannst/musst Deine SW dann entsprechend 
anpassen.
So wie ich Dich verstanden habe,geht es nur um den Ladezustandes
des Akkus.

von Ralf Harald (harald_kiri)


Lesenswert?

Klar, GPIO habe ich. Ich nutze I2C für Aktoren und Sensoren, einen ADC 
Pin für die Messung der Akkuspannung, ein Pin folgt noch für die 
USB-Überwachung, der Rest ist noch frei.

Mein Problem ist: Wie komme ich an die Spannung, die an der LED anliegt? 
Einen Draht anlöten traue ich mir nicht zu.

Ich könnte eine alte Maus ausschlachten und den Status mit einer 
Fotodiode abnehmen, aber wie sieht das aus. Ich suche eher eine elegante 
Variante.

von Ralf Harald (harald_kiri)


Lesenswert?

Andreas S. schrieb:
> Lies mal hier (in der Mitte der Seite):
> https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/
> oder auch hier :
> 
https://forum.seeedstudio.com/t/battery-voltage-monitor-and-ad-conversion-for-xiao-esp32c/267535
> Alles nur Anregungen - Du kannst/musst Deine SW dann entsprechend
> anpassen.
> So wie ich Dich verstanden habe,geht es nur um den Ladezustandes
> des Akkus.

Nein, es geht mir darum, in dem Moment in dem das Ende des Ladevorgangs 
durch das Erlöschen der LED signalisiert wird, eine Nachricht zu senden. 
Die Spannung am Akku messe ich bereits auf die beschriebene Art.

Ich habe auch schon das gesamte Web durch und hoffe auf eventuell 
vorhandenes Druidenwissen. Oder jemand der besser im Suchen ist als ich.

von Andreas S. (bastelmax)


Lesenswert?

Ralf Harald schrieb:
> durch das Erlöschen der LED signalisiert wird, eine Nachricht zu senden.
> Die Spannung am Akku messe ich bereits auf die beschriebene Art.

Wenn Du nicht löten möchtest/kannst, dann messe doch die Akkuspannung
bei der die LED aus ist/aus geht usw.
Diesen Wert vergleichst Du mit den Wert im ADC und löst eine
entsprechende Aktion aus.
Wenn das von der SW zu umfangreich wird,bleibt nur noch die
Variante "Draht anlöten"
P.S. ich weiß nicht ob dass bei der ESP32 geht - Du kannst den Status
des Pins der die LED einschaltet abfragen und so weiter nutzen.
Das müsste mit - digitalRead(pin) - möglich sein.

: Bearbeitet durch User
von Rahul D. (rahul)


Lesenswert?

Den kennst du?
https://files.seeedstudio.com/wiki/XIAO_WiFi/Resources/Seeeduino-XIAO-ESP32C3-SCH.pdf
Also entweder Draht anlöten, oder Fototransistor aufkleben.

Andreas S. schrieb:
> Diesen Wert vergleichst Du mit den Wert im ADC und löst eine
> entsprechende Aktion aus.
Dazu müsste man erkennen, ob die Spannung wieder abfällt (der 
Ladecontroller hat den Ladestrom abgeschaltet).
Könnte funktionieren...

von Andreas S. (bastelmax)


Lesenswert?

Rahul D. schrieb:
> Den kennst du?
> 
https://files.seeedstudio.com/wiki/XIAO_WiFi/Resources/Seeeduino-XIAO-ESP32C3-SCH.pdf
Den Schaltplan kannte ich nicht - ich hatte nur meine Idee mitgeteilt.
Schade dass der Ladechip nicht benannt ist (U1 ?) - da hätte man dann
u.U. noch mehr Informationen.
Also fällt meine Idee mit der Pinabfrage schon mal weck :-(
Bleibt nur noch Messung der Spannung mit Spannungsteiler und Auswerten/
Weiterverwerten über die SW.
Erkennung über einen Fototransistor - ich finde das etwas zu sehr 
gebastelt.
Naja dass muss jeder selber wissen wie er zu einen Ergebniss kommt.

von Rahul D. (rahul)


Lesenswert?

Andreas S. schrieb:
> Bleibt nur noch Messung der Spannung mit Spannungsteiler und Auswerten/
> Weiterverwerten über die SW.

Ralf Harald schrieb:
> Ich nutze I2C für Aktoren und Sensoren, einen ADC
> Pin für die Messung der Akkuspannung

Das erfordert nur etwas Hirnschmalz.
Die Spannung an der Batterie wird während des Ladens etwas höher sein 
(sonst fließt kein Strom in die Batterie...).
In dem Moment, wo der Controller den Ladeprozess beendet, sinkt diese 
Spannung auf die Batteriespannung.
Einfaches Kriterium: >4V ==> Ladeprozess.

Man könnte natürlich noch mit einem INA219 (o. dergl.) die 
Batterie-Strom und dessen Richtung messen...
Der INA219 hat eine I²C-Schnittstelle.

von Alexander (alecxs)


Lesenswert?

also zumindest die onboard LED ist ja über einen GPIO gesteuert

von Ralf Harald (harald_kiri)


Lesenswert?

Danke erstmal für die Antworten. Ist mein erstes eigenes Projekt auf 
einem Controller und ich freue mich über jede Hilfe.

Alexander schrieb:
> also zumindest die onboard LED ist ja über einen GPIO gesteuert

Das wäre meine Rettung. Im Schaltplan, den @rahul verlinkt hat, ist aber 
nichts zu sehen, so dass ich davon ausgehe, dass ich mir etwas einfallen 
lassen muss.

Einfach nur die Spannungen messen und reagieren, wenn das Delta sein 
Vorzeichen wechselt, ist mir zu unsicher, auf der Kurve der letzten Tage 
war immer zu Mittag, wenn die Sonne ums Haus kommt, ein Spannungsanstieg 
durch die Erwärmung des Akkus zu beobachten.

Wiederum @rahul lenkte meinen Blick auf ein Modul, das Ströme und 
Spannungen misst und in dessen Beschreibung stand: "monitoring shunt 
Voltage drop". Der Zeigefinger auf den Lösungsansatz.

Also um es einfach zu halten, versuche ich jetzt folgendes:

Die Spannung am Akku lese ich eh, U1.
Ich ersetze die Plus-Leitung des Akku durch einen Shunt.
Die Spannung, die vom Board abgeht, lese ich ebenfalls ein, U2.

U1-U2 > 0 ? Akku entlädt

U1-U2 < 0 ? Akku wird geladen

Kostet einen Widerstand und einen analogen Eingang, eventuell eine 
Kalibrierung.

Gibt es Bedenken von kundiger Seite?

von Rahul D. (rahul)


Lesenswert?

Ralf Harald schrieb:
> Gibt es Bedenken von kundiger Seite?

Dass entweder der Spannungsabfall am Shunt zu klein zum Messen ist, oder 
zu groß, dass der Strom für den Controller nicht mehr ausreicht (der 
zieht gerne mal was um die 400mA beim Senden).
Deswegen verwendet man ja einen (Vor-) Verstärker.

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.