Forum: Mikrocontroller und Digitale Elektronik Schaltung zur Spannungsüberwachung ESP32


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Felix B. (felix_b978)


Angehängte Dateien:

Lesenswert?

Guten Tag,

1. Ja ich habe die SuFu genutzt, aber nichts passendes entdecken können.

2. Wenn ich in der Abbildung Spannungsquellen oder Transistordarstellung 
verdreht habe, dann weil ich kein Elektriker bin. Das ganze mache ich 
aus Freizeit. Ich denke es sollte trotzdem klar sein, was ich vor habe. 
Angeschlossen bekomme ich die schon richtig.

3. Dazu: Ich habe eine Frage zu meiner Schaltung in der Abbildung: 
Funktioniert das so? Ich möchte einen ESP32 mit einer Batterie betreiben 
und greife über einen Spannungsteiler die Spannung ab. Was genau im Code 
passiert ist hier irrelevant. Der Transistor ist hier als Schalter 
eingebracht, da ich nur alle 5 min die Spannung messe und dadurch 
erhoffe den "Stromverbrauch" weiter zu senken.

4. Jetzt meine Idee in der Schaltung: Ich brauche die Spannung der 
Batterie und nicht der "Gesamtspannung". Wenn ich die Spannung in dem 
Stromkreis messe, in dem auch der ESP32 hängt, würde doch die Spannung 
nach Anschließen des Ladegeräts auf Ladespannung ansteigen, was die 
Spannungsmessung während des Ladens unbrauchbar macht. Ist doch richtig 
oder?

5. Deswegen dachte ich mir, ich schließe den Spannungsteiler mit 
Transistor direkt in den Stromkreis des Akku an. Aber ich  habe 
irgendwie das Gefühl, das Funktioniert so nicht, weil vielleicht das 
Spannungspotential fehlt zwischen den ESP Pins und GND?

6. Würde mich über euren Rat freuen. Zu mir: Bin gelernter 
Werkzeugmechaniker und habe Maschbau studiert und in Elektrik/Elektronik 
(?) keine Fachkompetenz. Man hilft sich mit Google weiter für die 
Hobbyprojekte.

Folgende Produkte werden verwendet:
https://www.az-delivery.de/en/products/esp-32-dev-kit-c-v4
https://www.ebay.de/itm/123369737544
https://www.nkon.nl/de/rechargeable/lifepo4/26650/ifr26650pe-3400mah-9-6a-lifepo4-3-2v.html
https://www.amazon.de/dp/B07Q87JZ9G?psc=1&ref=ppx_yo2ov_dt_b_product_details

: Bearbeitet durch User
von Hardy F. (hflor)


Lesenswert?

1. was ist das für ein Schaltplan?
2. wie ist Deine Batteriespannung?
3. der ADC-Eingang ist sehr hochohmig, mit einem C sind 12k etwas wenig, 
so kannst Du auch Strom sparen
4. geht der ESP in Schlafmodus?

von H. H. (Gast)


Lesenswert?

Weil dein BMS den Minuspol des Akkus von Verbraucher/Ladegerät trennt, 
ist es nicht so einfach wie du denkst. GND deines ESP32 und Minuspol des 
Akkus sind so eben nicht identisch.

von Felix B. (felix_b978)


Lesenswert?

Hardy F. schrieb:
> 1. was ist das für ein Schaltplan?
> 2. wie ist Deine Batteriespannung?
> 3. der ADC-Eingang ist sehr hochohmig, mit einem C sind 12k etwas wenig,
> so kannst Du auch Strom sparen
> 4. geht der ESP in Schlafmodus?

1. Weiß nicht so genau, worauf du hinaus willst.
2. Schwank je nach Ladezustand der Zelle zwischen 2,3V und 3,6V. Wenn's 
drunter ist (weniger kann der ESP anscheinend nicht), dann hängt das 
Programm in einer Schleife und der ESP kann abschmieren. Drüber (mehr 
verträgt der ESP anscheinend ja nicht) kann nicht, weil ich die Leitung 
zwischen BMS und Ladebuchse mit Mosfet trenne. Damit nicht weiter 
geladen wird. Wobei mir gerade auffällt, dass während des Ladens die 
Ladespannung mit 3,7V trd zu hoch ist. Kann ich da einfach ein 
Widerstand in Reihe schalten um die Ladespannung abzusenken?
https://www.ebay.de/itm/285252886735?var=587126425477
3. Magst du das vielleicht noch ein wenig weiter ausführen. Mit meinen 
geringen Kenntnissen steh ich da ein wenig auf dem Schlauch^^
4. Nein. Der bleibt immer an. Muss auch. Bastel mir meine eigene 
Ventilsteuerung für Heizkörper. Der ESP muss dauerhaft schauen ob per 
ESP Now Signale vom Thermostat ankommen. Ich weiß, kaufen tuts auch. 
Aber Kaufen kann jeder.

H. H. schrieb:
> Weil dein BMS den Minuspol des Akkus von Verbraucher/Ladegerät
> trennt,
> ist es nicht so einfach wie du denkst. GND deines ESP32 und Minuspol des
> Akkus sind so eben nicht identisch.

Ja das habe mir schon fast gedacht, Mist. Aber prüfe ich in dem anderen 
Stromkreis, bringt mir das leider nichts. Ich würde gerne beim Laden die 
Spannung der Batteriezelle auslesen. Jemand evtl eine Idee?

von Monk (roehrmond)


Lesenswert?

Benutze einen P-Kanal MOSFET, um den Spannungsteiler zu schalten. Weil 
der aber an einer höheren Spannung hängt, als der ESP mit seinen 3,3V, 
brauchst du zwei Transistoren.

http://stefanfrings.de/transistoren/

Du brauchst im Prinzip so eine Schaltung:
http://stefanfrings.de/transistoren/ausgang_p_mosfet2.png

Die "Last" ist dein Spannungsteiler. Natürlich nimmst du nicht so einen 
fetten IRF4905, sondern einen angemessen kleinen MOSFET. Lies am Besten 
den ganzen Artikel. Er enthält Hinweise zur Dimensionierung der 
Bauteile.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Felix B. schrieb:
> Funktioniert das so? I

Vermutlich nicht.

Vermutlich trennt dein (gnadenlos überdimensioniertes) BMS die 
Masseverbindung des Akkus.


Ausserdem ist entweder das Schaltzeichen für den Akku oder das 
Schaltzeichen für den Transistor falsch.

Nehmen wir mal an, sie wären richtig:

Ja, es ist klug den Spannungsteiler per Transistor abzutrennen wenn du 
nicht messen musst, denn er verbraucht dauernd Strom. Da du ihn direkt 
am Akku hast, kann er sogar deinen Allu tiefentladen und beschädigen.

Aber: auch hinter dem BMD gibt es die Akkuspannung, zumindest so lange 
das BMS den Akku nicht wegen Überladung oder Tiefentladung abgetrennt 
hat.

Problematisch ist das Abtrennen bei Überladung, denn dann kommt die 
Leerlaufspannung deines Ladegeräts direkt an den ESP und die liegt höher 
als die 3.5V die der ESP maximal verträgt.

Drittens: wenn ein NPN Transistor die negative Verbindung des 
Spannungsteiler trennt, liegt am Spannungsteilerausgang trotzdem die 
Akkuspannung an. So lange dein ESP auch aus dem Akku versorgt wird kein 
Problem, aber wenn das BMS die Akku Plusleitung wegen Tiefentladung 
abtrennt, den ESP damit abschaltet, fliesst über die 10k weiter Strom 
und entlädt den Akku trotz Tiefentladung weiter. Ebenso wäre es wenn ein 
PNP den Spannungsteiler von plus abtrennt, aber das BMS minus kappt.

Kurz gesagt: deine Schaltung ist zu naiv.

Steve van de Grens schrieb:
> Benutze einen P-Kanal MOSFET, um den Spannungsteiler zu schalten. Weil
> der aber an einer höheren Spannung hängt, als der ESP mit seinen 3,3V,

Vermutlich versorgt er den ESP direkt aus der Zelle und hat ein BMS das 
minus abtrennt. Da geht der PMOSFET direkt und leitet auch nicht wenn 
der ESP stromlos wird.

von Monk (roehrmond)


Lesenswert?

Michael B. schrieb:
> Vermutlich versorgt er den ESP direkt aus der Zelle

wenn das so ist, dann ja

> Da geht der PMOSFET direkt

Steht auch so auf der Webseite.

von Felix B. (felix_b978)


Lesenswert?

Michael B. schrieb:
> Vermutlich trennt dein (gnadenlos überdimensioniertes) BMS die
> Masseverbindung des Akkus.

Was meinst du da denn mit :D Gut, mit 12 A tatsächlich ein bisschen 
hoch. Hast du da zufällig eine alternative. Habe auf Ebay nichts anderes 
finden könne. Finde es sowieso schwierig zu der Thematik esp32 mit akku 
was zu finden. Scheinbar bin ich der einzige depp, der da 
Schwierigkeiten hat.

Michael B. schrieb:
> Ausserdem ist entweder das Schaltzeichen für den Akku oder das
> Schaltzeichen für den Transistor falsch.

Ja wie gesagt, die Schaltung hab ich provisorisch gemacht. Könnte zur 
Not auch noch versuchen per Hand zu zeichnen. Vielleicht wird es dann 
weniger fachlich, aber deutlicher ^^

Michael B. schrieb:
> Nehmen wir mal an, sie wären richtig:
> [...]
> Aber: auch hinter dem BMD gibt es die Akkuspannung, zumindest so lange
> das BMS den Akku nicht wegen Überladung oder Tiefentladung abgetrennt
> hat.

Mein Problem ist, aber dass ich auch während des Ladens aktuelle Werte 
haben möchte.

Michael B. schrieb:
> Problematisch ist das Abtrennen bei Überladung, denn dann kommt die
> Leerlaufspannung deines Ladegeräts direkt an den ESP und die liegt höher
> als die 3.5V die der ESP maximal verträgt.

Ich hatte mir das so gedacht, dass ich ein N-Mosfet in der negativen 
Leitung zwischen BMS und Ladegerätanschluss verbaue. Und diesen dann per 
ESP schalte, sobald die Spannung zu hoch ist.

Michael B. schrieb:
> Drittens: wenn ein NPN Transistor die negative Verbindung des
> Spannungsteiler trennt, liegt am Spannungsteilerausgang trotzdem die
> Akkuspannung an. So lange dein ESP auch aus dem Akku versorgt wird kein
> Problem, aber wenn das BMS die Akku Plusleitung wegen Tiefentladung
> abtrennt, den ESP damit abschaltet, fliesst über die 10k weiter Strom
> und entlädt den Akku trotz Tiefentladung weiter. Ebenso wäre es wenn ein
> PNP den Spannungsteiler von plus abtrennt, aber das BMS minus kappt.

Der Ausgang meines Spannungsteilers ist ja am Minus der Zelle. Kann sich 
eine Zelle negativ entladen? Notfalls kommt halt zwischen 10K Widerstand 
un dem Minus noch eine Diode.

Michael B. schrieb:
> Kurz gesagt: deine Schaltung ist zu naiv.

Ja vermutlich. Scheint ja schon gar nicht zu funktionieren, dass ich die 
Spannung im Akku-Stromkreis messe. Da muss ich mir nochmal was 
überlegen, oder drauf verzichten die Spannung beim Laden zu messen. 
Werde mir da nochmal den Vorschlag von Steve van de Grens anschauen. 
Aber um das zu verstehen brauch ich ein bisschen :D

Michael B. schrieb:
> Steve van de Grens schrieb:
>> Benutze einen P-Kanal MOSFET, um den Spannungsteiler zu schalten. Weil
>> der aber an einer höheren Spannung hängt, als der ESP mit seinen 3,3V,
>
> Vermutlich versorgt er den ESP direkt aus der Zelle und hat ein BMS das
> minus abtrennt. Da geht der PMOSFET direkt und leitet auch nicht wenn
> der ESP stromlos wird.

Genau. Habe extra eine LiFEPO4 Zelle genommen, damit ich den ESP32 da 
anklemmen kann. Was das BMS genau macht. keine Ahnung. Habe ich ja 
verlinkt, wahrscheinlich könnt ihr mir mehr dazu sagen. Habe einen 
N-Mosfet angedacht in der Minusleitung.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Felix B. schrieb:
> Mein Problem ist, aber dass ich auch während des Ladens aktuelle Werte
> haben möchte.

Das ist kein Problem, das BMS verbindet dich niederohmig mit dem Skku.

> Ich hatte mir das so gedacht, dass ich ein N-Mosfet in der negativen
> Leitung zwischen BMS und Ladegerätanschluss verbaue. Und diesen dann per
> ESP schalte, sobald die Spannung zu hoch ist. Alternative die mir eben
> eingefallen ist, ein Widerstand in der Plusleitung, um dadurch die
> vorher schon min Ladespannung von 3,7 V auf z.Bsp. 3.5V abzusenken. Dann
> habe ich das Problem gar nicht mehr und kann mir den Mosfet sparen.

Vergiss es.

Felix B. schrieb:
> Der Ausgang meines Spannungsteilers ist ja am Minus der Zelle. Kann sich
> eine Zelle negativ entladen? Notfalls kommt halt zwischen 10K Widerstand
> un dem Minus noch eine Diode.

Es wird immer schlimmer.

Felix B. schrieb:
> oder drauf verzichten die Spannung beim Laden zu messen

Na ja, es reicht, die Betriebsspannung des ESP zu messen.

Das Problem, dass er beim erstem Mal vollladen kaputt ist, bleibt 
bestehen.

LiFePO4 Protection ist rar, https://www.ebay.de/itm/112489449532

aber ein uC der 3-3.3V haben will aus einem Akku der 2.5-3.65V (und wenn 
das BMS ihn vom Ladegerät abtrennt vielleicht auch 5V) versorgen zu 
wollen ist halt - Humbug.

Man braucht eigentlich einen Buck-Boost Wandler mit zumindest 0.5A, der 
aber wiederum im sleep des uC nur wenige Mikroampere verbrauchen sollte.

Eierlegende Wollmilchsau.

https://arduino-hannover.de/2018/07/25/die-tuecken-der-esp32-stromversorgung/

von Felix B. (felix_b978)


Lesenswert?

Michael B. schrieb:
> Vergiss es.

Ja habe ich schon. War Quatsch.

Michael B. schrieb:
> Es wird immer schlimmer.
>

Sorry, ich mach mich nochmal schlau.^^

Michael B. schrieb:
> Na ja, es reicht, die Betriebsspannung des ESP zu messen.
>
> Das Problem, dass er beim erstem Mal vollladen kaputt ist, bleibt
> bestehen.

Ich mein am Handy sehe ich auch, wie weit das aktuell geladen ist. Wäre 
witzig, dass ebenfalls zu schaffen. Aber scheint wohl schwierig zu sein.
Ja das Problem habe ich jetzt auch gecheckt. Muss mir da noch was 
einfallen lassen...

Michael B. schrieb:
> LiFePO4 Protection ist rar, https://www.ebay.de/itm/112489449532

Danke!

von Michael B. (laberkopp)


Lesenswert?

Felix B. schrieb:
> Ich mein am Handy sehe ich auch, wie weit das aktuell geladen ist.

Klar, das verwendet aber ein LiIon Akku bei dem man im Gegensatz zur 
LiFePo4 an der Spannung den Ladezustand erkennen kann und einen 
Prozessor der von 2.5 bis 4.2V funktioniert

> Wäre
> witzig, dass ebenfalls zu schaffen

Der ESP ist halt kein Handy.

von Felix B. (felix_b978)


Angehängte Dateien:

Lesenswert?

Steve van de Grens schrieb:
> Benutze einen P-Kanal MOSFET, um den Spannungsteiler zu schalten.
> Weil
> der aber an einer höheren Spannung hängt, als der ESP mit seinen 3,3V,
> ....

Das ist irgendwie zu hoch für mich. Habe nicht ganz begriffen, wie die 
Schaltung am Ende aussehen soll. Das Problem bleibt doch bestehen, da 
mein ESP weiterhin am Minus des BMS ist und nicht an der Zelle.

Habe mir jetzt gedacht, ich unterbreche einfach alle 5 min den 
Ladeprozess mit einem Mosfet, lese die Spannung aus und gebe das 
Ladegerät wieder frei. Im Anhang ein Bild.

Mit Hilfe des Optokopplers erkenne ich ob ein Ladegerät angeschlossen 
ist, wenn ja schalte Mosfet, sodass ich Laden kann. Praktischerweise 
kann ich bei 100% den Mosfet wieder öffnen. Hier habe ich noch einen 
Widerstand mit drinne, da ich gelesen habe, der Mosfet muss sich wieder 
"entladen"?

1. Ist die Schaltung wieder zu naiv, oder noch "schlimmer"?
2. Ist das eine gute Idee den Ladezyklus alle 5 min zu unterbrechen?

PS Zum Laden nehme ich einen TP5000. Die Ladespannung sollte der esp32 
vertragen.

: Bearbeitet durch User
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.