PIC-Spannungsmessung

9

Ich verwende ein batteriebetriebenes Gerät und möchte, dass mein Mikrocontroller (PIC) über die Versorgungsspannung berichtet.

Auf diese Weise kann ich feststellen, wie viele Batterien in der Versorgung verwendet werden und wie hoch der Ladezustand des Akkus ist.

Die Versorgungsspannung reicht von 4 × D (entweder 1,2 V nominales NiMH oder 1,5 V Alkaline, was ungefähr 6 V ergibt) bis 12 × AA (1,2 V NiMH für 14,4 V oder 1,5 V Alkaline für 18 V).

Mein PIC wird mit einer geregelten 5-V-Versorgung betrieben.

Ich habe vor, einen der ADC-Ports zum Messen der Spannung zu verwenden, und bin daher der Meinung, dass ich den 18-V-fsd auf den Bereich von 0 bis 5 V abbilden sollte, sodass ich die Eingangsspannung ungefähr durch 3 teilen müsste.

Ich habe von der Verwendung eines Widerstandsspannungsteilers gehört, weiß aber, dass dies hinsichtlich des Energieverbrauchs verschwenderisch sein kann.

Sie fragen sich, ob es einen besseren Weg gibt, diese Spannungsteilung ohne zu viel Energieverlust / -verschwendung zu erreichen?

Vielen Dank.

mad_z
quelle

Antworten:

8

Sie wollen einen Spannungsteiler. Wenn Sie sich für die Verlustleistung interessieren, können Sie einige Dinge tun:

  • Verwenden Sie einen Spannungsteiler mit ziemlich hoher Impedanz und einem Kondensator am Ausgangsanschluss und puffern Sie ihn mit einem Operationsverstärker mit geringer Leistung. Stellen Sie sicher, dass Sie einen RC-Filter zwischen Operationsverstärker und ADC verwenden. Die Werte dieses RC-Filters liegen normalerweise bei 50-200 Ohm, 1000pf. Dies dient dazu, die Spannung stabil zu halten, wenn der ADC zwischen Kanälen umschaltet und die Ladung zwischen dem internen Kondensator des ADC und dem äußeren Pin übertragen wird. Ein Operationsverstärker allein kann dies nicht. Wenn Sie den hochohmigen Spannungsteiler nicht puffern, treten aufgrund des ADC-Leckstroms und der Ladungsübertragung Fehler auf.

  • Schalten Sie den Spannungsteiler um, z. B. verbinden / trennen Sie ihn mit der Versorgungsspannung, damit Sie dies nur gelegentlich tun können, wenn Sie möchten. Ein PFET würde funktionieren, seien Sie nur vorsichtig, wie Sie es fahren.

Jason S.
quelle
Das klingt großartig. Ich möchte nur hinzufügen, dass Sie eine Batterie laden (Strom daraus ziehen) müssen, um eine realistische Messung der verbleibenden Batterielebensdauer zu erhalten. Mit einem höheren Stromteiler mit einem Aus-Schalter sind Sie viel besser dran.
Kortuk
Ich habe gerade eine ähnliche Antwort gepostet und dafür gestimmt, sie zu löschen. Anscheinend hatte ich eine alte Version der Seite zwischengespeichert. Ich habe dafür gestimmt, es ist der richtige Weg.
Lou
+1 zum Schalten des Spannungsteilers. Ein sehr nützlicher Trick.
Clint Lawrence
@Kortuk: Sie haben einen sehr guten Punkt, aber ich würde den Spannungsteiler von der Batterieladung entkoppeln. Es ist wirklich einfach, einen N-Kanal-FET direkt von einem Mikrocontroller anzusteuern (naja ... es sollte einen kleinen Widerstand zwischen Mikroausgang + FET-Gatter geben, ich verwende normalerweise 10-100 Ohm) und einen Widerstand vom FET-Drain zur Stromversorgung . Viel einfacher als zu versuchen, diese beiden Funktionen zu kombinieren und einen umschaltbaren Spannungsteiler zu finden. Außerdem gibt es viele Fälle, in denen Sie eine Batteriespannung im Leerlauf oder nahezu im Leerlauf messen möchten. Wenn ich das eine oder das andere auswählen müsste, würde ich es im Leerlauf messen.
Jason S
6

Jason S hat einen guten Vorschlag gemacht, wie Sie die Leistung bei Bedarf reduzieren können. Aber bevor Sie sich das Leben komplizierter machen, können Sie feststellen, wie viel Leistung Sie sich wirklich leisten können.

Bei jedem Design mit geringem Stromverbrauch sollten Sie das gesamte Strombudget berücksichtigen. Bei einem batteriebetriebenen Gerät wird dies normalerweise durch die gewünschte Lebensdauer der Batterien bestimmt. Wenn die kombinierte Leistung des Restes der Schaltung erheblich höher ist als die des Widerstandsteilers, müssen Sie sich entweder keine Sorgen machen oder Sie müssen sich um andere leistungshungrige Teile der Schaltung kümmern.

Clint Lawrence
quelle
4
+1 für den Hinweis auf die Bedeutung der Perspektive. Ich würde hinzufügen, wenn es 1% Ihres Strombudgets ist, lohnt es sich nicht, sich Sorgen zu machen (es sei denn, Sie haben ein paar Spannungsteiler!) - wenn es 5-10% Ihres Strombudgets sind, kann es sich lohnen, sich Sorgen zu machen. wenn es 20% oder mehr ist, ist es. (nur mein 2c)
Jason S
Klingt für mich nach einer guten Faustregel. Der andere wichtige Punkt ist, dass wir diese Dinge messen und berechnen können. Und das ist hilfreicher als zu raten :)
Clint Lawrence
Guter Punkt Jason. Ein bisschen mehr über die Anwendung: Es handelt sich um ein Beleuchtungssystem, das längere Zeit unbenutzt bleibt und dann beim Einschalten mit einem Konstantstromkreis etwa 3 A aus der Versorgung zieht. Im Betrieb ist der Stromverbrauch für die Spannungsüberwachung ein unbedeutender Teil des gesamten Stromverbrauchs. Im Standby-Modus möchte ich jedoch, dass die Akkukapazität nicht so unnötig wie möglich entleert wird, oder ich möchte, dass ein unvermeidbarer parasitärer Stromverbrauch im Standby-Modus minimiert wird.
@Kheng: Ist es möglich, alles außer dem Mikrocontroller an einem separaten Netzteil zu haben? Sie schalten die Peripheriegeräte gleichzeitig mit einem Relais oder Fet unter der Kontrolle des uC ein. Es sollte dann einfach sein, den Standby-Strom des uC zu steuern, und Sie müssen sich nicht darum kümmern, die Leistung in einzelnen Schaltkreisen zu minimieren.
Clint Lawrence
@Kheng: "Ich möchte, dass die Batteriekapazität nicht unnötig entladen wird" ist für einen Ingenieur zu spitzhaarig. Was ist der durchschnittlich gezogene Strom? Um dies zu berechnen, müssen Sie den durchschnittlichen Arbeitszyklus und den Leerlaufstrom kennen. Wenden Sie dann die Faustregeln von Jason an, um festzustellen, ob es sinnvoll ist, etwas komplizierteres als einen Widerstandsteiler zu tun. Engineering tut NICHT das "bestmögliche", sondern "erfüllt die Anforderungen für die niedrigsten Kosten".
Wouter van Ooijen