Absenkspannung linear [duplizieren]

Mögliches Duplikat:
Wie kann ich einen 12-V-Eingang an einem digitalen Arduino-Pin verwenden?

Ich möchte die Spannung einer Autobatterie messen (Bereich liegt zwischen 10-13 V). Aber mein AVR akzeptiert analoge Eingänge von 0-5V. Wie kann ich die Eingangsspannung senken, damit ich die 3-V-Spannungsdifferenz (10-13 V) in etwa 1024 Schritten (0-5 V vom Mikrocontroller) messen kann?

Grundsätzlich brauche ich einen Spannungsabwärtswandler, der linear arbeitet, die, die ich kenne, geben nur eine feste Spannung aus (5-20 V wandeln immer wie der 7805 in 5 V um).

Ich möchte keinen Spannungsteiler verwenden, weil ich dann niemals diese 3-V-Auflösung erreichen kann, denke ich.

Antworten (3)

Sie können einen einfachen Widerstandsteiler verwenden , um die 0..13 V auf 0..5 V herunterzuskalieren.

v Ö u T = R 2 R 1 + R 2 v ich N

also für R 1 = 16 kΩ und R 2 = 10 kΩ erhalten Sie 0..5 V out für 0..13 V in.

Das ist die einfachste Lösung, aber sie bildet die 10..13 V auf 3,85..5 V anstatt auf 0..5 V ab. Die Frage ist: Brauchen Sie wirklich den vollen Bereich des ADC? Ein 10-Bit-ADC liefert eine Auflösung von 13 mV für einen Eingangsbereich von 13 V. Wollen Sie wirklich die Spannung der Batterie auf 3 mV genau wissen?

Wie auch immer, wenn Sie den vollen Bereich des ADC nutzen möchten, ist die Lösung ein Differenzverstärker , der einen 10-V-Offset von der Eingangsspannung subtrahiert:

Wenn R 1 = R 2 Und R F = R G Dann

v Ö u T = R F R 1 ( v 2 v 1 )

Sie legen eine 10-V-Referenzspannung an v 1 und schließen Sie die Batterie an v 2 . Wählen Sie 25 kΩ für R F Und R G , und 15 kΩ für R 1 Und R 2 , und Sie erhalten 0..5 V out für 10..13 V in.

Um den vollen Bereich bis hinunter zu 0 V zu nutzen, benötigen Sie einen RRIO (Rail-to-Rail I/O) Operationsverstärker.


Hinweis:
Sie können die Optokopplerlösung aus der Frage, auf die ich mich hier beziehe, nicht verwenden , da diese nur digital ist. Sie sättigt den Ausgang bei anliegender Eingangsspannung und ist keineswegs linear. Wenn Sie möchten, dass der Eingang vom Ausgang isoliert wird, können Sie einen linearen Optokoppler verwenden , wie den IL300, auf den ich mich in dieser Antwort beziehe .

Wenn Ihre Anforderung etwas gelockert werden könnte, um die Vollbereichs-ADC-Anzeige auf 9-13 Volt statt 10-13 Volt zu übersetzen, wo Sie wissen, dass Ihre Batterie nicht unter 10 V fällt, würde dies besser funktionieren: Der ADC-Bereich unter 10 V bleibt ungenutzt , aber der von @stevenvh vorgeschlagene Differenzverstärker würde bis zur 10-Volt-Leitung zuverlässig funktionieren.

Ein Spannungsreferenz-IC oder eine Kombination von Zenern könnte für die 9-V-Referenz (oder 9,5 V, wenn Sie darauf bestehen) verwendet werden, da eine von der Batterie gespeiste 10-V-Referenz wahrscheinlich instabil werden oder ausfallen würde, wenn die Stromschiene tatsächlich 10 V erreicht.

Ebenso könnte es ratsam sein, einen Bereich etwas über 13 Volt (abgebildet auf 0-5 V für den ADC) zu berücksichtigen: Während des Ladevorgangs oder bei Temperaturänderungen könnte die Batterie eine höhere Spannung als ihre nominelle obere Zahl erreichen.

Benötigen Sie eine 10-Bit-Auflösung oder eine 10-Bit-Genauigkeit?

Um eine 10-Bit-Genauigkeit zu erreichen, muss der 10-V-Abfall auf >> 0,1 % genau sein, was schwer zu erreichen ist. 0,1-%-Widerstände sind nicht so schwer zu bekommen, aber sobald Sie die Genauigkeit eines TL431 oder die verschiedenen Fehler eines Operationsverstärkers (und der 10-V-Referenz) in die Gleichung eingerechnet haben, werden Sie wahrscheinlich eher 1 % als 0,1 % erhalten. Und vergessen Sie nicht, dass Sie wahrscheinlich gegen Ihre 5-V-Versorgung als Referenz messen, die wahrscheinlich ein 7805 ist, der nur zu 5% genau ist.

Wenn OTOH nur eine Auflösung von 10 Bit benötigt, kann ein TL431 „programmierbarer“ Zener verwendet werden, um 10 V von Ihrem Eingang zu subtrahieren. Oder gehen Sie mit Stevens Opamp Summer, aber dafür benötigen Sie eine stabile 10-V-Referenz.