Spannungsteiler Dimensionierung ADC

Hallo,

ich brauche mal etwas Hilf bei der Dimensionierung der Spannungsteiler, um sie mit dem ADC einzulesen.

Folgende Situation:
Gemessen werden sollen 3 Spannungen. 28V, -28V und 12V.
Allerdings bin ich mir noch nicht sicher, ob die Schaltung später mit 3,3V oder 5V versorgt wird.
Daher habe ich die Spannungsteiler nicht nach Masse sondern VCC bezogen.
Ich denke der Schaltplan kann das besser beschreiben. (Ich war mal so frei und hab die Abgänge zum ADC nicht eingezeichnet! :smiling_imp: )

Ich möchte ohne große Änderung an der Hardware zwischen 3,3V und 5V Betriebsspannung wählen können.
Ich nutze also die Interne Referenzspannung (VCC).

Irgendwie glaub ich nicht, dass das funktionieren wird...
Wie könnte außerdem die Funktion zum Einlesen aussehen? Ich könnte auch noch die VCC mit dem ADC einlesen...

Gibt es sonst noch andere Möglichkeiten?
Ich könnte auf interne 2,56V umschalten. Kann ich die außen abgreifen um sie auf den Spannungsteiler für die negative Spannung zu legen? Die anderen Spannungsteiler kann ich dann ja auf Masse beziehen.

Oder lieber gleich eine Referenzspannungsquelle, die am Spannungsteiler und am AREF-Pin hängt?

Vielen Dank!
Gruß Danie

Kauf Dir viele Arduinos weil Du sie der Reihe nach kaputtmachen wirst.
Wenn Du einen Spannungsteiler mit Vin verbindest wird die Spannung immer größer als Vin sein und darum immer außerhalb des zulässigen Bereichs der Eingangsspannungen der Pins des Arduins. Außerdem kann der Arduino keine negativen Spannungen messen.

Grüße Uwe

Vin ist die Versorgungsspannung des Arduino.
Warum soll die Spannung am ADC denn größer werden?

Angenommen VIN = 3,3V und ich hab eine Messspannung von 15V angeschlossen. Dann fließt ein Ausgleichsstrom. Zwischen Vin und 15V sind 11,7V effektiv Unterschied. Diese 11,7V bewirken nun einen Stromfluss über die beiden Widerstände des Spannungsteilers in Richtung Vin.

Die Spannung am ADC = I durch die beiden Widerstände * 10k unten (11,7V/10k+25,5k) * 10k = 3,29V.

sinkt die Messspannung ab, wird die Differenz kleiner. Dadurch fließt weniger Strom und die Spannung am ADC kann nur kleiner werden...

Bei der negativen Spannung funktioniert es auch so. liegen -30V an ergibt sich hier eine Differenz von 33,3V. Diese bewirken einen Stromfluss hin zur negativen Spannung.
Am ADC können also in jedem Fall nur positive Spannungen anliegen.

Bitte korrigiert mich, wenn ich falsch liege!

Kauf Dir noch mehr Arduinos.

Wenn Du den Spannungsteiler mit Vin verbindest ist die Spannung IMMMER größer als Vin.

Grüße Uwe

Ach, Uwe, das geht alles schon so.....
Ist aber wirklich mit Problemen verbunden.

  1. Vcc ist eher nicht stabil genug, um als Referenz zu dienen.
  2. Vin erst recht nicht.

Der eine Spannungsteiler zieht Vcc hoch, der andere runter. So baut man Zufallsgeneratoren. Aber zum Glück kann der typische AVR seine Versorgungsspannung messen. Damit kann man dann alle Werte passend rechnen.

Besser wäre es vermutlich mit Operationsverstärkern zu arbeiten. Z.B. als invertierender Addierer für die negative Spannung.

Das dachte ich mir schon...aber wenigstens stimmte der ansatz. Dachte schon 3,5 Jahre Ausbildung waren für die Katz :slight_smile:

OPV fällt aufgrund von Platzmangel leider weg.

Wäre es eine Option, als Referenz eine Referenzspannungsquelle mit 2,5V zu verwenden?.
Die positiven Spannungen würde ich dann mit Spannungsteiler gegen GND machen und so dimensionieren, dass max. 2,5V am ADC anliegen können. AREF vom Arduino dann natürlich auch an die 2,5V.

Die -28V über die 2,5V Referenz?
So würde es für 3,3V und 5V Betriebsspannung funktionieren, da die Ref ja 2,5V hat.

Wie erzeuge ich denn am besten die 2,5V Referenz? LM336-2,5?

Gruß Danie

Welcher Arduino?
Einige haben eine eingebaute 2,5V Referenz.

Warum überhaupt eine 2,5V Referenz?

Tipp:
Referenzspannungsquellen betreibt man mit geringer und möglichst gleichbleibender Last.
Es tut also selten gut, Spannungsteiler daran anzuschließen.
Ein Impedanzwandler würde das Problem mildern, schafft aber auch weitere neue.

Beziehen sich die drei VAMP Spannungen auf deinen Arduino-GND?
oder ist der gemeinsame VAMP-GND auch mit Vin verbunden?
oder garnicht?

Ich war mal so frei und hab die Abgänge zum ADC nicht eingezeichnet

Ich nehme mal an, die Spannungen die du mit dem Arduino messen willst, willst du jeweils zwischen den Widerstands-Pärchen abgreifen ?

Um die zwei positiven Spannungen zu messen, müsste VAMP-GND mit Arduino-GND verbunden sein.
Für die negative Spannung könnte VAMP-GND = Vin evtl. einen messbaren Wert liefern, das geht aber natürlich nicht in einer gemeinsamen Schaltung.

Such mal selber nach Negative Spannung invertieren

Einziger Trost:
Bei 100k / 30V = 0.3 mA geht ein Arduino normalerweise nicht kaputt.

Ein Nano. Also nen Atmega328.

Warum 2,5V? Gute Frage. Kann eigentlich alles bis 3,3V verwenden, da die AREF ja nicht höher sein darf als VCC?

Ich brauch halt irgendeine positive Hilfsspannung, um den Spannungsteiler nach -28V zu realisieren...
Da die 12V immer da sind, könnte ich auch einen LDO einsetzten. Die Last wird aber vermutlich so gering, dass die Spannung auch nicht gerade stabil sein wird...

Wie wäre denn dein Plan?

@michael_x:
Masse vom Arduino und der zu messenden Spannung sind natürlich verbunden.

Wie wäre denn dein Plan?

Habe keinen...

Wie bekommt man Gott zum lachen?
Mach Pläne!

Wenn ich das tun wollte:
Dann würde ich mir erstmal Gedanken um die erforderliche Auflösung und Genauigkeit machen.
Auch habe ich noch einige LM324 in de Schublade. Vielleicht nicht die besten für solche Zwecke, haben mir aber bisher gereicht.

Danie_:
Dachte schon 3,5 Jahre Ausbildung waren für die Katz :slight_smile:

Lass' dir dein Geld zurückgeben!

Deine Schaltung ist falsch.

Wenn du einen Spannungsteiler zwischen zwei positiven Spannungen bildest, wird das Ergebnis IMMER zwischen den beiden Spannungen liegen.

Wenn du also einen Spannungsteiler zwischen +28V und 5V bildest, dann wird die Spannung am Abgriff immer höher sein als 5V. In deinem Beispiel:
Uad = (28V-5V)*10k/(10k+73,2k)+5V= 7,76V

Wenn der Arduino mit 5V versorgt wird, kann der AD diese Spannung nicht messen.
Kaput gehen wird er wohl nicht, einfach weil die alte AT-Mega Serie sehr robust ist und über kräftige Schutzdioden verfügt.

Dein Prinzip funktioniert aber mit negativen Spannungen (allerdings nicht mit diesem Spannungsteiler!)

du könntest also die positiven Spannunge mit bezug auf Masse messen, die negative mit Bezug auf VCC. Das ist zwar nicht sehr genau aber vielleicht reicht es.

guntherb:
du könntest also die positiven Spannunge mit bezug auf Masse messen, die negative mit Bezug auf VCC. Das ist zwar nicht sehr genau aber vielleicht reicht es.

Das aber nur, wenn die Spannungen massefrei sind, das heist nicht gemeinsame Masse mit Arduino oder untereinander haben.
Grüße Uwe

Doch, auch dann.

Spannungsteiler von 5V auf -28V.
5V --- 4,7k --- AD_pin --- 33k --- -28V

Spannung am AD-Pin:
(-28V - 5V)/(4,7k+33k)*4,7k + 5V = 0,88V

die 5V gehen mit in den Messung ein, werden quasi aufaddiert.
Ist nicht gut für die Genauigkeit, aber geht.

combie:
Auch habe ich noch einige LM324 in de Schublade. Vielleicht nicht die besten für solche Zwecke, haben mir aber bisher gereicht.

Viele Operationsverstärker können den Ausgang nicht ganz auf die Versorgungsspannungen bringen sondern bleiben 1,5-2V darüberbzw darunter. Der LM324 kann (bei angenommener Versorgungsspannung GND und 5V) von 0V bis 3,5V aussteuern.

Das ist beim Entwurf der Schaltung zu berücksichtigen bzw ein anderer Operationsverstärker (Rail to Rail) zu wählen.

Grüße Uwe

Kann man denn die interne Referenzspannung außen abgreifen?
Ich würde den Arduino dann auf 2,56V Referenz stellen und für die Messung der -28V "missbrauchen"

Den Rest dann auf Masse bezogen. War natürlich Stuss, was ich da gemacht habe! :frowning:

Teoretisch kannst Du die Referenzspannung am AREF pin abgreifen, würde Dir das aber nicht raten da durch den Strom durch den Spannungsteiler die Referenzspannung wahrscheinlich verfälscht wird.
Nicht alle Arduino-Modelle haben eine interne 2,56V Referenz.

Grüße Uwe

Okay. Nochmal zum Verständnis:

  • AVCC = VCC vom ADC = gleiche VCC wie für den Atmega selbst (am besten über L entkoppelt)
  • AREF = Referenzspannung für den ADC

Die AREF darf nicht höher als VCC und AVCC sein, richtig?

je kleiner ich die Referenz mache, desto kleiner ist meine Auflösung, richtig?
Sollte die Referenzspannung allgemein so groß oder klein wie möglich gewählt werden?

Für hohe Genauigkeit natürlich so klein wie möglich. Aber durch das runterteilen mit einem Spannungsteiler hab ich bei einer kleinen Auflösung doch das Problem, das der Wert ziemlich stark "zappeln" könnte, oder?

Also brauche ich eine externe, stabile Referenzspannung <= 3,3V?
Wie stell ich das am besten an? LM317 wird wohl nix werden? Also ein spezielles Referenzspannungs-IC?

Oder Plan B die -28V mittels OPV so anpassen, dass ich keine Hilfsspannung mehr brauche und die interne 2,56V Referenz nehmen.

Was macht eurer Meinung nach weniger Probleme?

Danke schon mal für eure Hilfe!

Plan B fällt aus, wg. 328 hat nix "interne 2,56V".

Danie_:
Was macht eurer Meinung nach weniger Probleme?

Du hast du Grundfrage nicht beantwortet:
Wie genau muss es den sein?

Solange das unklar ist kann man die Frage nicht sinnvoll beantworten.

Wenn vermute, dass die Genauigkeitsanforderungen auf Bastlerniveau liegen, dann nimm die 5V des Arduino auch als AREF (Standardeinstellung) und messe die -28V wie oben beschrieben gegen 5V.

Du kannst auch die Versorgung des Arduino zurückmessen und ggf die Formeln anpassen, wenn er mit 3.3V betrieben wird.

Schwierig zu beantworten. Schön, wenn es so genau wie irgendmöglich geht. ABER: Je nach Aufwand. Wenn der zu groß wird, leb ich auch mit etwas weniger Genauigkeit. (Bastlerzeug eben :wink: )

Was wäre denn so drin:

  • AREF auf Default -> Eingangsspannung = Referenz (3,3V oder 5V)
  • Dann dimensionier ich alle Spannungsteiler so, dass ich max. 3,3V am ADC bekommen kann.
  • Eingangsspannung (3,3V oder 5V) >---||---- ADC ----||----> -28V
  • die Betriebsspannung leg ich auch an einen ADC

Müsste doch so gehen?
Was wäre da an Genauigkeit drinnen?

Falls mir das nicht reicht, muss ich eben eine Referenzspannungsquelle verwenden (z.B. ADR366B?)