Low-Power-Batteriespannungsüberwachung

Ich möchte den Batterieverbrauch meines ESP32-Geräts messen. Da mein Gerät 99 % der Zeit im Tiefschlafmodus läuft, ist es wichtig, dass die Batterieüberwachungsschaltung nicht zu viel zur aktuellen Nutzung beiträgt, während das Gerät schläft (ich werde den Batteriestand nur einmal pro Woche überprüfen, wenn das Gerät wird eingeschaltet).

Ich habe diese Anleitung befolgt, die eine Batterienutzungsschaltung mit geringem Stromverbrauch beschreibt, bei der ein p-Kanal-Mosfet verwendet wird, um Strom nur dann durch den Spannungsteiler zu lassen, wenn ein digitaler IO-Pin eingeschaltet ist.

Batteriewächter von JEELabs

Ich habe versucht, diese Schaltung hier zu simulieren , aber sie verhält sich nicht wie erwartet. Wenn ich das digitale IO auf HIGH schalte, wird das p-Kanal-Gate nicht geöffnet. Wenn ich den Kondensator durch einen Draht ersetze, scheint der Stromkreis zumindest ein- und ausgeschaltet zu werden, aber es scheint, dass es wahrscheinlich einen wichtigen Grund gibt, den Kondensator hier einzubauen.

Stimmt etwas mit der in dieser Anleitung gezeigten Schaltung nicht? Stimmt etwas mit meiner Simulation der Schaltung nicht?

(Hinweis: Ich habe auch die in dieser Antwort angegebene Schaltung erfolgreich simuliert , aber ich bevorzuge die jeelabs.org-Version, einfach weil sie weniger Komponenten verwendet. Diese Frage soll herausfinden, ob sie für mich funktioniert.)

Antworten (1)

Das Problem mit der Schaltung, die Sie uns gegeben haben, besteht darin, dass der Kondensator zunächst entladen werden muss, um den MOSFET einzuschalten. Das heißt, die rechte Seite der Kappe muss auf oder nahe der gleichen Spannung wie das Gate liegen.

Jetzt gibt es wirklich nur eine Möglichkeit, dies zu erreichen, nämlich den Ausgangspin im High-Zustand einzuschalten und lange genug zu warten, bis sich die Ladung am Kondensator ausgeglichen hat, dann den Pin auf Low zu setzen und Ihre Messung durchzuführen.

Setzen Sie danach den Pin entweder wieder auf High und belassen Sie ihn als Ausgang, oder schalten Sie den Pin aus und wiederholen Sie den gesamten Vorgang beim nächsten Mal erneut.

Das Hinzufügen eines Entladungspfads wäre besser, wie unten gezeigt, aber es fügt den Leckstrom von R5 durch den GPIO wieder hinzu.

Aber: Bitte beachten Sie, dass der GPIO in diesen Schaltungen die volle Batteriespannung verarbeiten kann. Das PNP in der verlinkten Antwort, das meiner Meinung nach eine viel bessere Lösung ist, bietet Ihnen die Isolierung, die Sie wahrscheinlich benötigen. Obwohl ich den BC547 NPN möglicherweise gegen einen Kleinsignal-MOSFET ausgetauscht habe.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Vielen Dank. Ich verstehe jetzt, wie der Kondensator einen Strompuffer bereitstellt, mit dem Sie die Spannung am ADC über einen kurzen Zeitraum messen können. Wenn ich die Simulationsgeschwindigkeit reduziere, zeigt es deutlich, dass die ADC-Spannung auf 3,2 V ansteigt, wenn sich der GPIO von High auf Low bewegt. Wie Sie jedoch sagen, ist der GPIO den vollen 4,2 V der Batterie ausgesetzt, sodass dies bei mir nicht funktioniert (die Hochspannung der GPIO-Pins am ESP32 beträgt 3,3 V).