Ich versuche, die Spannung eines 2-Zellen-Li-Ionen-Akkus zu messen, der einen nutzbaren Bereich von 2,5 bis 4,4 Volt pro Zelle hat (nominal 3,0 - 4,2 V). Der ADC, den ich habe, hat einen Bereich von 0 - 1,8 V und ist 12 Bit. Ich konnte keine Lösung finden, die den ADC-Bereich effektiv nutzt und die Batteriespannung linear skaliert. Idealerweise möchte ich eher 5 - 8,8 V Volt als 0 - 8,8 V erfassen. Ich habe eine Vielzahl von Widerständen und einen Operationsverstärker (LM324) zur Verfügung und habe 12 V, 5 V und 3,3 V (und GND) Schienen zur Verfügung zu.
Was sind also praktikable Lösungen, die innerhalb der Einschränkungen gut funktionieren?
Einige andere Antworten haben das Maximum als 4,2 V falsch gelesen, für 8,8 V, wenn Sie durch fünf teilen, was dem ADC einen Eingangsbereich von 0 - 1,76 V ergibt. Für einen 12-Bit-ADC (vorausgesetzt, er ist unipolar) sind insgesamt 4096 diskrete Messwerte möglich. Für das Maximum von 1,8 V oder einen Messwert von 4095 am ADC sind das 440 uV pro Messwert multipliziert mit fünf = 2,2 mV pro Messwert.
Die meisten ADCs neigen dazu, einen Fehler zu haben, der ungefähr dem Wert des niederwertigsten Bits entspricht, der nutzlos ist, weshalb ich im Kommentar auf die ungefähre Zahl von 5 mV effektiver Auflösung gekommen bin. Wie Andy jedoch erwähnte, kann dies durch Dithering verbessert werden. In diesem Fall würde ich wahrscheinlich die Summe von vier Samples nehmen und durch zwei teilen, um ein effektives Bit an Auflösung zu erhalten.
Der Atmel Application Note AVR121: Enhancing ADC resolution by oversampling bietet eine leicht verständliche Einführung in Dithering. Ein paar andere Dinge, die es wert sind, im Auge zu behalten, sind:
Stellen Sie sicher, dass Sie keinen zu hohen Wert für den Widerstandsteiler verwenden (siehe Eingangsimpedanz für Ihren ADC) oder anderweitig einen Spannungsfolger verwenden. Manchmal können Sie damit davonkommen, die übliche empfohlene Impedanz zu überschreiten, indem Sie den ADC-Kanal frühzeitig auswählen und der Sample-and-Hold-Kappe genügend Zeit zum Aufladen geben, bevor Sie die Messung vornehmen. Das ist oft eine nützliche Technik in Niedrigleistungssystemen.
Stellen Sie sicher, dass der Eingang von der Batterie zum ADC gut gefiltert und entkoppelt ist. Das ist normalerweise so einfach wie das Hinzufügen eines oder zweier Kondensatoren nach dem Widerstandsteiler, um ein Tiefpass-RC-Filter zu bilden.
Wenn Ihr System über Komponenten mit kurzen, aber hohen Stromspitzenanforderungen verfügt (z. B. ein GSM-Modem), ist es möglicherweise nützlich, einen Medianfilter zu implementieren, um die dadurch verursachten Einbrüche und potenziellen Spitzen durch das Umschalten von Netzteilen und dergleichen zu ignorieren.
Sollen 4V4 das Maximum sein und 1V8 ergeben, sollte man die Spannung mit 2 Widerständen teilen.
Nehmen wir an, Sie möchten maximal 1 V1, dann können Sie einen 330-K-100-K-Widerstand in Reihe verwenden, die Spannung über Ihren 100 K beträgt 1/4. Ein 12-Bit-ADC gibt Ihnen eine hervorragende Auflösung :) Wahrscheinlich reicht ein 33K - 22K aus.
D.
Wenn Sie es auf die Spitze treiben, erhalten Sie mit einem 4: 1-Spannungsteiler 1,1 Volt für einen Eingang von 4,4 Volt. Wenn 1,8 Volt die maximale Eingangsspannung ist, dann stellen 1,1 Volt 61,1 % des Skalenendwerts dar, und bei einer Auflösung von 12 Bit haben Sie ein Bit = 4 x 268 = etwa 1 mV.
Da aufeinanderfolgende Messungen nicht genau das gleiche Ergebnis liefern, können Sie mitteln, um eine bessere Auflösung zu erhalten – dies wird als Dithering bezeichnet und nutzt die zufällige Natur des Rauschens in Ihrem Messsystem.
Anderer Hinweis auf Dithering von Wikipedia hier
PeterJ
Herr Anderson