Forum: Mikrocontroller und Digitale Elektronik Batteriespannung am ESP07 messen


von Sven Scholz (Gast)


Lesenswert?

Hallo Gemeinde,

ich betreibe derzeit einen ESP07, mit LDO MCP1700 (3,3V Output) und 
gespeist wird das Ganze von einem 18650 NiMH-Akku.

Ich würde jetzt gerne die direkte Batteriespannung des 18650 messen, die 
ja in etwa zwischen 4,2 - 3,6V schwankt. Also die Spannung am Eingang 
des LDOs.

Mein erster Ansatz ist ein einfacher Spannungsteiler bestehend aus 
3,3MOhm und 1MOhm Widerstand?

Die Messung selbst darf natürlich nicht viel Energie aus meiner Batterie 
stehlen. Mit den genannten Widerständen komme ich auf einen 
Gesamtwiderstand von 4,3MOhm, was der Batterie dann "nur" max ca. 1uA 
entnehmen sollte.
Dies allerdings die ganze Zeit, was ich wiederum nicht so optimal 
finde...

Zwischen den beiden Widerstand kommt die Verbindung zum A0-Pin des 
ESP8266 oder?

Kann das so klappen? Gibt es eine bessere Lösung bzw. eine 
stromsparendere.
Wie lange dauert so eine Messung am ADC-Eingang des ESP8266? Liegen wir 
da im Millisekundenbereich?

Herzlichen Dank und viele Grüße

von Stefan F. (Gast)


Lesenswert?

Sven Scholz schrieb:
> Mein erster Ansatz ist ein einfacher Spannungsteiler bestehend aus
> 3,3MOhm und 1MOhm Widerstand?

Zu hochohmig, der ADC wird den Spannungsteiler belasten und dadurch die 
Spannung herunter ziehen. Ein zehntel so viel Ohm würde so gerade eben 
gehen.

Schau Dir den Schaltplan vom NodeMCU Board an, da sind deine Fragen 
beantwortet.

Allerdings ist der ADC ein grobes unpräzises Schätzeisen, damit wirst du 
nicht glücklich.

> Wie lange dauert so eine Messung am ADC-Eingang des
> ESP8266? Liegen wir da im Millisekundenbereich?

Weniger als eine Millisekunde.

von Joachim B. (jar)


Lesenswert?

Stefan F. schrieb:
> Zu hochohmig, der ADC wird den Spannungsteiler belasten

hmmm echt?

ich würde ja den unteren Teilerwiderstand 1M weglassen, den oberen 
soweit erhöhen das man sich mit dem Ri vom ADC in der Nähe von 3,3V 
wiederfindet, dann noch einen kleinen Pufferkondesator am ADC Eingang 
nach GND der die Quelle ist für die ADC Wandlung. Der Kondensator kann 
auch ruhig langsam wieder aufgeladen werden, man muss diese Messung ja 
nicht JEDE Sekunde wiederholen.

Alternativ kann man auch den unteren Teilerwiderstand per logik level 
FET geschaltet vom ESP von GND trennen.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> hmmm echt?

Ja, ganz sicher.

> ich würde ja den unteren Teilerwiderstand 1M weglassen, den oberen
> soweit erhöhen das man sich mit dem Ri vom ADC in der Nähe von 3,3V
> wiederfindet

kennst du denn den Ri des ADC? Nein! Im übrigen ist das kein einfacher 
Ohmscher widerstand, sondern etwas komplexeres das hauptsächlich 
kapazitiv wirkt.

> noch einen kleinen Pufferkondesator am ADC Eingang
> nach GND der die Quelle ist für die ADC Wandlung. Der Kondensator kann
> auch ruhig langsam wieder aufgeladen werden, man muss diese Messung ja
> nicht JEDE Sekunde wiederholen.

Gute Idee, aber bitte mit einem richtigen Spannungsteiler aus zwei 
Widerständen.

von Joachim B. (jar)


Lesenswert?

Stefan F. schrieb:
> kennst du denn den Ri des ADC? Nein!

was genau verstehst du an:

Joachim B. schrieb:
> ich würde ja den unteren Teilerwiderstand 1M weglassen, den oberen
> soweit erhöhen das man sich mit dem Ri vom ADC in der Nähe von der REF Spannung 
(3,3V?)
> wiederfindet,

Stefan F. schrieb:
> Im übrigen ist das kein einfacher
> Ohmscher widerstand, sondern etwas komplexeres das hauptsächlich
> kapazitiv wirkt.

ist bekannt und deswegen

Joachim B. schrieb:
> noch einen kleinen Pufferkondesator am ADC Eingang
> nach GND der die Quelle ist für die ADC Wandlung

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> was genau verstehst du an

Ich verstehe, dass ein halber Spannungsteiler kein Spannungsteiler ist 
und bei ungewissem Ri des ADC kein berechenbarer Ergebnis liefern wird.

Ich bin sehr erstaunt, dass du das offenbar nicht verstehst. Ich hatte 
dich bisher eigentlich ganz anders eingeschätzt.

von Wolfgang (Gast)


Lesenswert?

Sven Scholz schrieb:
> ich betreibe derzeit einen ESP07, mit LDO MCP1700 (3,3V Output) und
> gespeist wird das Ganze von einem 18650 NiMH-Akku.

Und hast du dir mal deine Versorgungsspannung während des Sendens 
angeguckt. Für den MCP1700 wird ein maximaler Ausgangsstrom von 250mA 
garantiert, der ESP zieht beim Senden gute 350mA, d.h. du bewegst dich 
da auf etwas dünnem Eis.

von Joachim B. (jar)


Lesenswert?

Stefan F. schrieb:
> Ich verstehe, dass ein halber Spannungsteiler kein Spannungsteiler ist

wo ist denn der halb, ist denn die Innenbeschaltung eines ADC offen?

Jeder absolut jeder Eingang ist auch ein R! (Eingangswiderstand)
Somit ergibt sich immer ein Spannungsteiler mit Rv.

Ich muss mich echt wundern, sagtest du nicht mal das du 
Kommunikationselektroniker gelernt hattest?

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> wo ist denn der halb, ist denn die Innenbeschaltung eines ADC offen?

Ja,

Falls du erwartest, dass ich auf diesen absurden Angriff herein falle: 
Lass gut sein. Stifte deinen Unfrieden woanders.

von Sven Scholz (Gast)


Lesenswert?

Wolfgang schrieb:
> d.h. du bewegst dich
> da auf etwas dünnem Eis.

Ja ich weiß, aber es funktioniert bei 4 Aufbauten über Wochen hinweg 
stabil.
Der MCP1700 kann glaube ich Peaks von 500mA verkraften.

Es geht mir jetzt nur noch um einen Indikator, wann ich den 18650 
aufladen oder austauschen muss.

Wie ist denn eigentlich das Verhalten, wenn die Eingangsspannung für den 
MCP1700 nicht ausreichend ist? Schaltet der sich dann ab?
Was passiert in diesem Fall konkret?
--> Stichwort Vermeidung von Tiefenentladung beim 18650.
Wäre schön wenn dann nur noch wenige uA verbraucht werden und ich 
genügend Zeit habe den Akku zu tauschen.
Dass die Batteriespannung zu niedrig ist erkenne ich letztendlich auch 
am Empfangsabbruch der Daten.

Kann vielleicht jemand eine grobe Skizze/Schematic zeigen, wie er das 
jetzt lösen würde mit der Messung der Batteriespannung?
Vor allem würde mich die Lösung mit dem Ein-/ und Aussschalten des 
Spannungsteilers interessieren!

Danke nochmal!!

von Joachim B. (jar)


Lesenswert?

Stefan F. schrieb:
> Stifte deinen Unfrieden woanders

dito oder zeige den Ri vom inaktiven ADC das der unendlich ist!

Beim AVR munkelt man was von ca. 50k, warum sollte das beim ESP grob 
anders sein?

von Michael U. (amiga)


Lesenswert?

Hallo,

ihr habt Sorgen...

@TO: ich schreibe mal das, was ich gern schreibe: welche Betriebsdauer 
strebst Du an? Mit welchen Strömen in welchen Zeiträumen (DeepSlee, 
Betrieb) rechnset Du?

Ich nehem inzwischen nur noch LiFePO4. Hat zwar als 18650 nur 1500mAh, 
aber ideale Spannungslage für den ESP8266. Also kein Regler nötig, 
Spannungsmessung über die interne Funktion des ESP8266.
Außerdem scheinen die Zellen (auch die aus China) nach bisheriger 
Erfahrung als "unkaputtbar". Tiefentladung auf 1,1V ist mir schon 
passiert, eigensicher sind sie auch. Nateil ist eben geringere Kapazität 
pro Volumen als LiIo und höherer Preis.
Da ich aber nur wenige brauche, ist mir das egal.

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Sven Scholz schrieb:
> Wie ist denn eigentlich das Verhalten, wenn die Eingangsspannung für den
> MCP1700 nicht ausreichend ist? Schaltet der sich dann ab?
> Was passiert in diesem Fall konkret?

Das Datenblatt beantwortet dir diese Frage vielleicht schon (Abschnitt 
2.0 Typical Performance Curves). Direkt abschalten tut er eher nicht. 
Vielleicht misst du auch direkt selber nach.

von HildeK (Gast)


Lesenswert?

Joachim B. schrieb:
> Beim AVR munkelt man was von ca. 50k, warum sollte das beim ESP grob
> anders sein?

Aufs 'Munkeln' würdest du dich einlassen und sogar noch daraus 
schließen, dass es bei einem Nicht-AVR genau so ist? Und das für eine 
Messung? Wow!

Ich bin da voll bei den Argumenten von Stefan F.

von batman (Gast)


Lesenswert?

Joachim B. schrieb:
> Alternativ kann man auch den unteren Teilerwiderstand per logik level
> FET geschaltet vom ESP von GND trennen.

Dann fließt der Strom dauerhaft durch die Portdiode, da Vin > Vcc.

von Joachim B. (jar)


Lesenswert?

HildeK schrieb:
> Und das für eine
> Messung? Wow!

für EINE Messung, sagt wer?

aber egal ich würde mit einigen 1MOhm bis 10MOhm gemütlich alle Stunden 
eine ADC Messung laufen lassen, auch mal mit 1nF bis 10nF dazu.

Irgendwo wird sich schon ein brauchbarer ADC Wert zur Spannung finden 
lassen.
Dummerweise kann man die Spannung am ADC Eingang schlecht messen, 
passende hochomige Messgeräte sind ja nun mal nicht bei jedem vorhanden 
aber es gibt sie.
http://www.edaboard.de/eingangswiderstand-dvm-t20251.html

Sven Scholz schrieb:
> 18650 NiMH

ist aber offensichtlich Unfug, wo gibt es den als NiMh?

Sven Scholz schrieb:
> Batteriespannung des 18650 messen, die
> ja in etwa zwischen 4,2 - 3,6V schwankt

sieht eher nach LiIo aus

Wolfgang schrieb:
> Für den MCP1700 wird ein maximaler Ausgangsstrom von 250mA
> garantiert, der ESP zieht beim Senden gute 350mA, d.h. du bewegst dich
> da auf etwas dünnem Eis.

aber da das Ganze hier sowieso Unfug ist kann ich auch raus.

von Stefan F. (Gast)


Lesenswert?

Sven Scholz schrieb:
> Wie ist denn eigentlich das Verhalten, wenn die Eingangsspannung für den
> MCP1700 nicht ausreichend ist?

Ich kann nicht für diesen konkreten Spannungsregler antworten.

Jedoch verhalten sich alle mir bekannten Spannungsregler so, dass dann 
ihre Ausgangsspannung abfällt und instabil wird. Gleichzeitig steigt bei 
vielen Spannungsreglern ihre eigene Stromaufnahme.

Der ESP8266 hängt sich bei Einbrüchen der Spannungsversorgung irgendwann 
auf und nimmt dann typischerweise 70mA auf. Deep-Sleep funktioniert dann 
nicht mehr. Wenn du Pech hast, hängt sich der Chip so blöde auf, dass er 
dauerhaft mehrere hundert mA aufnimmt und dabei kaputt geht. Man darf 
darauf hoffen, dass der Akku bis dahin gar nicht mehr so viel Strom 
liefern kann.

Der sichere Weg geht über eine externe Schaltung, welche die Batterie 
überwacht und den ESP bei Unterspannung über einen Transistor 
abschaltet. Das kann man ziemlich elegant mit einem ATtiny25 und einem 
abschaltbaren Spannungsregler realisieren.

von Stefan F. (Gast)


Lesenswert?

Was den MCP1700 oder 1702 angeht: Den hat offenbar irgendein Chinese mal 
benutzt, weil er gerade keinen passenderen Regler zur Hand hatte und es 
ihm scheiß egal war, ob die Schaltung zuverlässig funktioniert. Seit dem 
bauen es viele Chinesen genau so nach, denn ihnen ist es ebenso scheiß 
egal.

Ich kam mal mit einem Chinesen ins Gespräch, der mir half, eine 
Web-Anwendung zu übersetzen. Ich fragte ihn, was die Chinesen so 
allgemein von dem Billig-Schrott halten. Sind sie von der Qualität der 
Produkte überzeugt, oder machen sie sich Sorgen? Ist Geiz Geil? Seine 
Antwort überraschte mich, er sagte: Du glaubst doch nicht im Ernst, dass 
Chinesen diese Produkte kaufen? Was die Deutschen bei Amazon, Ebay, 
Aliexpress und Flohmarkt kaufen, wird in China von fahrenden Händlern 
direkt aus LKW's heraus verkauft. Immer bereit zur schnellen Flucht. 
Dort kaufen nur völlig verzweifelte Chinesen ein und dann auch nur 
Dinge, die man wirklich unbedingt dringend benötigt.

von Stefan F. (Gast)


Lesenswert?

Wenn du unbedingt den ungenauen ADC benutzen willst, dann mach das 
wenigstens während WLAN deaktiviert ist. Lösungsansatz ist dort: 
https://hackaday.io/project/20750-homefixer-esp8266-devboard/log/72236-how-to-measure-the-battery

von batman (Gast)


Lesenswert?

Stefan F. schrieb:
> Der ESP8266 hängt sich bei Einbrüchen der Spannungsversorgung irgendwann
> auf und nimmt dann typischerweise 70mA auf.

Sind dafür nicht die Watchdogs da?

von Stefan F. (Gast)


Lesenswert?

batman schrieb:
> Sind dafür nicht die Watchdogs da?

Sollte man annehmen, tut er aber leider nicht.

von Wolfgang (Gast)


Lesenswert?

batman schrieb:
> Sind dafür nicht die Watchdogs da?

Der Watchdog passt auf, dass der Prozessor sein Programm ordenlich 
abarbeitet und nicht irgendwo fest hängt. Das setzt aber eine 
Versorgungsspannung voraus, die erlaubt, dass der Prozessor arbeitsfähig 
ist.

Für Unterspannung ist ein Brown Out Detektor zuständig.

von batman (Gast)


Lesenswert?

Ein Watchdog sollte immer unabhängig vom Prozessor laufen, sonst hat er 
keinen Sinn. Aber vielleicht hatte sich das in China noch nicht 
rumgesprochen.

von minifloat (Gast)


Lesenswert?

batman schrieb:
> Stefan F. schrieb:
> Der ESP8266 hängt sich bei Einbrüchen der Spannungsversorgung irgendwann
> auf und nimmt dann typischerweise 70mA auf.
>
> Sind dafür nicht die Watchdogs da?

Stefan F. schrieb:
> Das kann man ziemlich elegant mit einem ATtiny25 und einem abschaltbaren
> Spannungsregler realisieren.

Der Tiny kann auch aus der 18650 direkt laufen...
mfg mf

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.