Arduino - AnalogInput - Problem

Hallo,

habe mir ein Arduino-Micro zugelegt und bin bis jetzt recht zufrieden.

Leider habe ich momentan ein Problem mit dem Analog-Eingang, bei dem ich nicht weiter komme.

Ich möchte mit dem Arduino Spannungen messen (0 - 24V).
Habe bereits eine kleine Schaltung dazu aufgebaut (siehe Anhang)
Das funktioniert schon mal alles…

Das Problem:

Wenn ich beim Spannungsteiler keine Spannung (0V) anliegen habe, dann gibt mir Arduino z.B. den Wert 150 , 100 , 120 usw. aus… (Wert schwankt)
Warum ist dieser nicht auf 0?

Bei z.B.: 12 Volt gibt mir das Board ca. 350 aus
Müsste dieser Wert nicht 512 sein? (Analog-Eingang 0…1024 ; beim Spannungsteiler liegt 2,5 Volt an ; also die Hälfte vom Eingang?)

Dadurch wird immer eine falsche Spannung ausgegeben

Muss ich den Analog-Eingang auf GND setzen?
Wenn ja, wie?

Danke für eure Hilfe…

MfG Snake

Schaltung.png

Ein offener Eingang fängt immer was auf, das ist normal. Deinen Spannungsteiler hab ich jetzt erstmal nicht weiter angeschaut, aber die Dimensionierung finde ich merkwürdig. Absicht?

Was meinst du mit Dimensionierung (Spannung die gemessen wird?)

Warum bekomme ich bei 12V (Messspannung) keine 512, sondern nur 350?

Wo ist der gemeinsame Bezugspunkt ?

Ich sehe + , - und GND. Der Arduino misst den Analogeingang gegen GND.

Hab ich total vergessen einzuzeichnen:

Der GND ist (bei beiden Spannungen) zusammengefasst

Seltsam. Wenn am Analogpin 2,5Volt anliegen, dann muss das Ergebnis etwa 512 sein. Nimm mal ein Poti und versoge den Analogpin über das Poti mit der 5V Spannung vom Arduino. Musst sauber 0-1023 angezeigt bekommen.

Miss dazu auch mal die Spannung am Analogpin gegen GND mit einem Multimeter. Du musst logisch vorgehen. :)

Toleranz der Widerstände würde ich sagen. Also Spannung messen, siehe Realizer. Und/oder Widerstände messen. Die Dimensionierung empfinde ich als zu niederohmig, aber das hängt sicher am Einsatzbereich. Wo kommt denn die Spannung her die Du messen möchtest?

Die Spannung kommt z.B. von einem Akku

Kann es sein das der Analog-Input nur 3,3 Volt verträgt?

Hallo,

Deine Widerstandsdimensionierung stimmt schon. Aber die Widerstandswerte sind laut meiner Meinung generell zu niedrig gewählt.
Wenn Du 12 Volt anlegst fließen 5mA durch den Spannungsteiler. Deine Meßspannung wird da schon generell stark belastet.

Ich vermute auch das Du ein Masseproblem hast. Sind alle Massen wirklich verbunden?

Ansonsten nehme mal nur 2 gleich große Widerstände, so 5kOhm rum oder größer, diese in Reihe, Anfang und Ende direkt an die Arduino 5V und Masse und Mittelabgriff an den Analogeingang. Bekommste ca. 512 angezeigt? Das muß funktionieren. Statt der beiden Widerstände kannste auch ein 10K Poti nehmen.

Ansonsten nochmal Schaltplan überprüfen und uns samt Sketch zeigen.

Hallo,

die analoge Eingangsspannung darf so groß sein wie die Betriebsspannung vom µC. In Deinem Fall 5V.

Beim Widerstand funktionierts, aber:

Warum funktioniert das mit dem Spannungsteiler nicht? GND ist überall vorhanden...

Hallo,

nochmal, welche Widerstände funktionieren mit welchen Sketch und was nicht. Wir können nur das lesen wa da steht.

Hast Du in dem Bsp. auch den analogen Eingangspin geändert den Du verwendest?

Vielen Dank für eure Hilfe !!!

Habe das Problem gefunden...

Hatte am Minus-Pol eine Diode (Verpolschutz). Anscheinend hat das GND gestört...

MfG Snake

Hallo,

und warum fehlte die Diode im obigen Schaltplan? Dann wäre alles klar gewesen. Die müßte in Flussrichtung drin gewesen sein, dann fallen immer ca. 0,7V ab und zieht damit Dein Massepotential auf 0,7V hoch. Drunter hat Dein Arduino am A0 nie gesehen.

Doc_Arduino:
Hallo,

Deine Widerstandsdimensionierung stimmt schon. Aber die Widerstandswerte sind laut meiner Meinung generell zu niedrig gewählt.
Wenn Du 12 Volt anlegst fließen 5mA durch den Spannungsteiler. Deine Meßspannung wird da schon generell stark belastet.

Ich vermute auch das Du ein Masseproblem hast. Sind alle Massen wirklich verbunden?

Ansonsten nehme mal nur 2 gleich große Widerstände, so 5kOhm rum oder größer, diese in Reihe, Anfang und Ende direkt an die Arduino 5V und Masse und Mittelabgriff an den Analogeingang. Bekommste ca. 512 angezeigt? Das muß funktionieren. Statt der beiden Widerstände kannste auch ein 10K Poti nehmen.

Entschuldige aber Du schreibst einiges falsch.

Der Querstrom durch einen Spannungsteiler kann nie zu groß sein, damit der Ausgangstrom die Ausgangsspannung verändert. Es ist umgekehrt, wenn der Querstrom im Verhältnis zum Ausgangsstrom des Spannungsteilers zu groß ist wird dei Ausgangsspannung verfälscht.
Wenn Die Batterie genug Strom liefern kann daß die Battereispannung nicht einbricht dann ist ein Querstrom von 5mA kein Problem.

@RedSnake64
Welche Spannung mißt Du am Ausgang des Spannungsteilers?

Wenn Du mehrmals mit analogRead mißt, bleibt der Wert stabil oder nähert er sich an 512?

Ich kann mir den ADC Wert von 150 , 100 , 120 bei 0V nicht erklären.
Kontrolliere mal die Schaltung.

Grüße Uwe

Vielen Dank!!!

Problem wurde bereits gelöst :-)

Hatte durch eine Diode ein Masse-Problem, wie Doc_Arduino bereits erklärte.

Das erklärt auch die Werte, da die Diode immer 0,7 durchgelassen hat.

Deswegen ist es immer sehr wichtig, genau die Schaltung zu posten die man tatsächlich verwendet hat. Sonst wundern sich nämlich die Experten. Das ist jetzt auch keine negative Kritik an Dir, sondern eine gutgemeinte Anregung.

Naja, nun funktioniert es und Du hast den Fehler gefunden. :slight_smile:

LG, Realizer

Werd ich mir für das nächste Mal merken! :-)

Ich dachte dass die Diode keine große Rolle spielt. Ich weiß zwar das je nach Diode ca 0,7 V abfallen, aber nicht dass dadurch das Massepotential verändert wird...

Wieso hast Du den eine Diode dazwischengeschaltet? Grüße Uwe

uwefed:

Doc_Arduino: Hallo,

Deine Widerstandsdimensionierung stimmt schon. Aber die Widerstandswerte sind laut meiner Meinung generell zu niedrig gewählt. Wenn Du 12 Volt anlegst fließen 5mA durch den Spannungsteiler. Deine Meßspannung wird da schon generell stark belastet.

Ich vermute auch das Du ein Masseproblem hast. Sind alle Massen wirklich verbunden?

Ansonsten nehme mal nur 2 gleich große Widerstände, so 5kOhm rum oder größer, diese in Reihe, Anfang und Ende direkt an die Arduino 5V und Masse und Mittelabgriff an den Analogeingang. Bekommste ca. 512 angezeigt? Das muß funktionieren. Statt der beiden Widerstände kannste auch ein 10K Poti nehmen.

Entschuldige aber Du schreibst einiges falsch.

Der Querstrom durch einen Spannungsteiler kann nie zu groß sein, damit der Ausgangstrom die Ausgangsspannung verändert. Es ist umgekehrt, wenn der Querstrom im Verhältnis zum Ausgangsstrom des Spannungsteilers zu groß ist wird dei Ausgangsspannung verfälscht. Wenn Die Batterie genug Strom liefern kann daß die Battereispannung nicht einbricht dann ist ein Querstrom von 5mA kein Problem.

Grüße Uwe

Hallo Uwe,

habe lange überlegt wie ich jetzt antworte ohne jemanden zu verärgern. Ich möchte Dir auch nicht auf die Füße treten, deswegen lies Dir das alles nochmal genau durch und überfliege nicht immer alles nur so nebenbei. Ich habe nichts falsches geschrieben, Du hast das aus irgendwelchen Gründen falsch verstanden. Ich habe auch nichts von Querströmen geschrieben. 5mA Laststrom mögen für die 24V Batterie nicht viel sein, stellt aber schon eine Belastung dar. Wenn die schwächer wird, kann man schon durch anschließen eines niederohmigen Meßgeräts, wie in dem Fall hier, den Meßwert selbst verfälschen. Selbst frühere analoge Meßgeräte hatten Eingangswiderstände von mehreren kOhm. Im Zeitalter unserer digitalen Meßgeräte mit 10MOhm Eingangswiderstand denkt da vielleicht niemand mehr dran.

Für Dich besser zum Ausdruck gebracht. ;) Deine Widerstandsdimensionierung stimmt schon. Aber die Widerstandswerte sind laut meiner Meinung generell zu niedrig gewählt. Wenn Du 12 Volt anlegst fließen 5mA durch den Spannungsteiler. Deine zu messende Spannung wird da schon generell stark belastet.

Friedenspfeife liegt schon bereit. :D