Batterielebensdauerüberwachung im PIC-Stromkreis

10

Ich habe eine kleine Schaltung mit einem PIC18F14F50-Mikrocontroller-Chip, der Daten über eine i2c-Schnittstelle (die ich später über die USB-Schnittstelle zurücklesen kann) in einen externen EEPROM-Chip aufzeichnet. Eine Probe wird alle 15 Minuten aufgezeichnet und muss nicht besonders genau zeitlich festgelegt werden.

Es ist in Ordnung, wenn Proben während des Batteriewechsels übersehen oder falsch eingestellt werden. Es ist jedoch nicht gut, wenn die Batterien leer sind und mehrere Tage lang keine Daten aufgezeichnet werden, bis jemand dies bemerkt.

Daher möchte ich den Benutzer warnen, wenn die Batterie schwach ist, damit er sie ersetzen kann. Der durchschnittliche Strom liegt unter 2 mA und ich habe 3 AA-Alkalibatterien in Reihe, um 4,5 Volt zu erzeugen. Ich würde also erwarten, dass sie einige Tage halten.

Aber ich frage mich, wie ich feststellen kann, dass die Batterie schwach ist? Ich gehe davon aus, dass die Spannung abfällt, wenn die Batterien das Ende ihrer Lebensdauer erreichen. Ich denke, dass dieser PIC eine Referenzspannung von 1,024 V hat, damit ich die Versorgungsspannung aufteilen und einem Analogeingang zuführen kann. Wenn die geteilte Spannung darunter fällt, wird eine Warnung ausgelöst.

Aber ich weiß nicht genug über Batterien, um zu wissen, wie gut das funktioniert? Und ich weiß nicht, welche Spannung ich wählen soll, um anzuzeigen, dass möglicherweise noch 10 bis 20% Batterielebensdauer verbleiben. Wird das überhaupt funktionieren? Gibt es einen besseren Ansatz?

Dies muss überhaupt nicht genau sein, ich möchte nur rechtzeitig eine gute Warnung geben, ohne die Leute dazu zu bringen, Batterien zu entsorgen, in denen noch Leben vorhanden ist.

Da ein aktueller Verbrauch ziemlich konstant ist, wäre ein einfacher Timer sinnvoll, wenn ich herausfinden kann, wie lange die Batterien durchschnittlich halten, und dann 85% dieser Zeit auswählen kann, bevor ich die Warnung gebe? Oder variiert die Akkulaufzeit stärker?

Irgendwelche Gedanken wären willkommen.

John Burton
quelle
1
Welche Spannung benötigt Ihr PIC, um zu funktionieren?
Kortuk
1
Was halten Sie für viel Zeit?
Kortuk
Wie viel Strom zieht es?
Endolith

Antworten:

5

Lassen Sie mich zunächst die Timer-Schaltung kommentieren. Dies funktioniert, solange Ihre Batterien alle relativ gleich alt sind und unter den gleichen Bedingungen aufbewahrt werden. In 6 Monaten, wenn Sie dies noch verwenden und Ihre Batterien alle 6 Monate älter sind, müssen Sie den Timer aktualisieren. Funktionale Lösung, aber nicht die beste.

Sie können die Spannung für Ihren Eingang durch ein Widerstandsnetzwerk aufteilen, dessen Spannung hoch genug ist, um Ihre Lebensdauer nicht zu beeinträchtigen (Sie können ein Netzwerk verwenden, das geladen wird, Sie ersetzen lediglich Ihre Batterien häufiger). Es gibt einen Haken: Sie müssen eine Batterie laden, um den tatsächlichen Wert ihrer verbleibenden Lebensdauer zu ermitteln. Je stärker eine Batterie geladen ist, desto mehr sieht die Entladekurve wie eine Linie aus. Es wird nie eine Leitung sein, es wird immer noch klare Phasen geben, aber Sie können eine geladene Batteriespannung zuverlässig mit Ihrem verbleibenden Leben korrelieren.

Wenn Ihr PIC während der Messung eingeschaltet ist, erhalten Sie wahrscheinlich eine anständige Messung. Lassen Sie das Bild Zeit damit verbringen, Ihren Akku zu messen, und sehen Sie sich die resultierende Spannungskurve an, bis Ihr Gerät stirbt. Wenn die Kurve relativ flach bleibt und dann plötzlich abfällt und Ihre Batterien leer sind, sollten Sie einen Transistor und einen Lastwiderstand verwenden, um die Stromaufnahme während der Batteriemessungen zu erhöhen. Es gibt eine große Menge an Informationen über Batterien an der Batterieuniversität. Oft ziehen Mikrocontroller nicht genug Strom, um eine Kurve zu erhalten, die den gesamten Weg geneigt ist (ich habe dieses Problem bei uC mit extrem geringem Stromverbrauch wie MSP430 gesehen). Sie werden wahrscheinlich nur mit Ihrem PIC in Ordnung sein.

Die Forschung zur Chemie von AA-Batterien hat einige Ergebnisse erbracht. Es sieht so aus, als ob sie ziemlich flache Entladungskurven mit niedrigen Strömen (<500 mA) zeigen. Dies bedeutet, dass Sie wahrscheinlich eine Widerstandsentladungsschaltung wünschen, die mit einem Transistor gekoppelt ist, damit die Spannungsmessungen wertvoller sind.

Bitte vergib mir, wenn dies nicht klar genug war. Wenn Sie Kommentare und Fragen oder Vorschläge abgeben, werde ich diese aktualisieren.

Kortuk
quelle
Zusätzliche Informationen zu AA wurden hinzugefügt.
Kortuk
Wenn Sie nur daran interessiert sind, einen konkreten Fehlerstart zu sehen, können Sie auf die letzte Spannungsänderung der Entladung am Ende achten und in dem Moment, in dem sie beginnt, eine Warnung verwenden.
Kortuk
Vielen Dank für diese und die anderen Antworten, es hat mir genug gegeben, um darüber zu lesen :)
John Burton
Wenn Sie bereit sind, Fehler in der Zeit zum Ersetzen von Batterien zu akzeptieren, sollten Sie in der Lage sein, einen Timer zu verwenden und alle paar Monate neu zu kalibrieren.
Kortuk
5

Ja, die Batteriespannung fällt ab, aber der Abfall ist gering, sagen wir ein halbes Volt:

Alt-Text

Wenn Sie einen Spannungsteiler verwenden, um diesen in den ADC-Bereich zu bringen, teilen Sie den Bereich ebenfalls. Ich denke, das ist mit dem ADC immer noch direkt messbar. 5 V / (2 ^ 10) = 0,005 V, mit ± 3 LSb Offset- und Verstärkungsfehlern, so dass immer noch eine Reihe von Messpegeln zwischen voll und leer liegen?

Um das Laden und Entladen der Batterie genau zu messen, führen die Benutzer ein Protokoll darüber, wie viel Strom mit einem Stromerfassungswiderstand verbraucht wird, und entscheiden, dass die Batterie nach Ablauf einer bestimmten Ladungsmenge schwach ist. Wenn Ihre aktuelle Ziehung relativ konstant ist, können Sie einfach einen Timer verwenden, um dasselbe zu tun. Führen Sie es einige Male aus, messen Sie die Zeit, bis die Batterie leer ist, und verwenden Sie in Zukunft einen Timer, um zu erraten, wann der Akku bald leer sein wird. Sie verwenden jedes Mal neue Batterien?

Endolith
quelle
1
Die Verwendung eines Ladeüberwachungs-IC ist nur dann erforderlich, wenn Systeme verwendet werden, die mit sehr großen Kapazitäten aufgeladen und entladen werden. Ich habe die Spannungsüberwachungsmethode mit einem 10-Bit-ADC verwendet und es hat sehr gut funktioniert. Der wichtige Teil des Systems ist das Laden der Batterie.
Kortuk
1
Die Timer-Methode ist keine gute langfristige Lösung. Das Alter und die Temperaturbedingungen eines Akkus wirken sich stark auf die Ladung aus. Wir haben kürzlich 2k-Batterien von einem amerikanischen Lieferanten gekauft und sie hatten eindeutig ein Jahr zuvor beim chinesischen Lieferanten gekauft, da sie deutlich schlechter funktionierten als unsere 3 Jahre alten temperaturgesteuerten Batterien und weder im Vergleich zu neuen Batterien.
Kortuk
Dieses Bild hat eine Entladung von 100 mA. Wenn Sie die Entladung erhöhen, folgt die Spannung einer lineareren Kurve. Sie sehen den letzten Abfall auch früher und können die Benachrichtigung aktivieren und den Test des Akkus beenden, um die Lebensdauer zu verlängern.
Kortuk
@Endolith - Was ist deine Quelle auf diesem Bild? Die alkalische Appnote von Energizer: data.energizer.com/PDFs/alkaline_appman.pdf hat eine ähnliche Kurve (ihre ist Zeit gegen Spannung, nicht Ladung gegen Spannung, siehe Abb. 12, Seite 10), aber der Abfall ist viel allmählicher. Insbesondere wenn das Gerät von einem Linearregler gespeist wird, wirkt sich der Spannungsabfall nicht zu stark auf das Gerät aus.
Kevin Vermeer
Was meinst du mit "allmählicher"? Ihre Grafik sieht für mich etwas steiler aus.
Endolith
2

Ich denke, die einzige solide Möglichkeit, ein solches System zu überwachen, ist eine Art Watchdog-ähnliche Anordnung: Lassen Sie es von Zeit zu Zeit von einem anderen, separat betriebenen System überprüfen (oder warten Sie auf ein Signal), und alarmieren Sie es, wenn es nicht reagiert.

Sie können stattdessen auch dieses separate System verwenden, um nach der Batterie zu suchen. Es wird nicht darunter leiden, dass die Hauptbatterie leer ist, wodurch jedes Überwachungssystem, das von der Hauptbatterie betrieben wird, zerstört wird. Wenn Sie einen Batteriemonitor einrichten können, der mit einer kleinen Batterie wie einer Knopfzelle betrieben wird, und sicherstellen, dass er die Hauptbatterie überdauert, sollte dies die Aufgabe erfüllen.

Wenn Sie keine zweite Stromquelle haben möchten oder können, scheinen die anderen Kommentare sehr gute Vorschläge für die Selbstüberwachung zu enthalten.

XTL
quelle
Das ist definitiv der robusteste Weg. Das andere System muss kaum funktionieren: Setzen Sie einfach einen Stift hoch auf das beobachtete System, setzen Sie einen Interrupt auf den Beobachter und wechseln Sie in den Tiefschlafmodus. Wenn es sich dann ändert, beginnen Sie alle 5..10..30..60 Minuten usw. zu piepen (oder was auch immer das Signal ist)
Kevin Vermeer
Das würde für mich nicht wirklich funktionieren, es würde mich informieren, sobald es zu spät war, die Batterie rechtzeitig zu wechseln, nicht vorher.
John Burton
Sie müssen also wahrscheinlich den Akku überwachen.
XTL
2

Sie können mit einem Operationsverstärker eine viel genauere Spannungsreferenz erhalten (verwenden Sie einen mit einem Freigabestift, damit er leicht abgeschaltet werden kann) und Ihren Stromkreis einfach auf den Spannungsbereich einstellen, den Sie messen möchten: 0 V bei 0,8 V, und 3,3 V bei 1,1 V. Wenn es gesättigt ist, wissen Sie, dass Sie viel Ladung haben und keinen Monitor benötigen, sondern nur einen Alarm.

Stellen Sie außerdem sicher, dass Sie mehrmals messen (oder einen Stromerfassungswiderstand verwenden), anstatt davon auszugehen, dass ein Spannungsabfall durch eine aussterbende Batterie verursacht wird. Dies ist nicht der Fall - die Batteriespannung hängt sowohl vom Entladestrom als auch von der verbleibenden Ladung ab. Eine Stromspitze kann einen starken Spannungsabfall verursachen, aber die Batterie erholt sich, wenn sie entfernt wird. Siehe Abbildung 9 des alkalischen Datenblatts von Energizer.

Kevin Vermeer
quelle
Am Ende habe ich ein paar andere Dinge gemacht. Ich habe die Software neu programmiert, um den Mikrocontroller zwischen den Samples ordnungsgemäß in den Ruhemodus zu versetzen, was den durchschnittlichen Stromverbrauch erheblich reduziert hat. Die von mir verwendeten Batterien haben nach ca. 2 Monaten immer noch eine gemessene Spannung von mehr als 90% ihrer ursprünglichen Spannung. Ich habe einen Pegel von ca. 80% eingestellt, um einen niedrigen Batteriestand anzuzeigen. Ich denke, sie haben noch
John Burton
Oh! Ich wusste nicht, dass du das nicht schon getan hast - und ja, der Schlafmodus ist eine großartige Sache.
Kevin Vermeer
0

Wenn möglich, messen Sie die Spannung einer AA-Alkalibatterie unmittelbar nachdem sie von Ihrer normalen Last (Gerät) geladen wurde und Sie den Laststrom gestoppt haben. Wenn sie unter 0,9 V pro AA-Batterie fällt, sind Ihre Batterien leer. Ich mache das mit vielen Produkten, die ich entworfen habe und es funktioniert perfekt. Normale Alkalibatterien erholen sich nach dem Entfernen einer Last, dies dauert jedoch abhängig vom Laststrom einige Zeit. Manchmal können dies Minuten oder sogar Stunden sein, abhängig von Temperatur und Laststrom. Wenn Sie es während des Dauerbetriebs mit einem kleinen Strom messen, müssen Sie abhängig von Ihrem Strom eine höhere Spannung anlegen. Normalerweise sind 1,2 V für ein Gerät mit nur 5 mA in Ordnung.

PaulHolland
quelle