Analogeingänge gegeneinander abschirmen

Hallo,

ich betreibe an meinem Uno Wifi, 2 Analoge (0.5-4.5V) Drucksensoren.
Nun habe ich festgestellt, dass wenn nur 1 Analogeingang belegt ist, der 2. AI aus irgendeinen Grund nicht "null" bleibt sondern immer ca. 100INT (ReadAnalog) unter dem AI1 liegt.

Sind die Analogeingänge untereinander nicht abgeschirmt oder woran kann dies liegen?
Kann man dieses Verhalten irgendwie unterbinden?

Die 5V Versorgungsspannung sowie den GND erhalten die Sensoren von der Analogseite des Arduino.

Gruß robotSox

Offener Eingang = gaaaanz schlecht. Häng nen Pull-Up oder -Down dran und alles wird gut.

Der Arduino besitzt nur einen A/D wandler und einen Multiplexer der abwechselnd die Eingänge auf der A/D Wandler schaltet.
Wahrscheinlich ist der Spannungsteiler der Drucksensoren zu hochohmig. Dadurch bekommt der analoge Eingang nicht genug Strom um innerhalb der Ladezeit des Sample and Hold Kondensators des AD Wandlers diesen auf Endspannung zu laden (entladen). Dadurch bleibt eine Restspannung der vorherigen Messumg im Kondensator.
Abhilfen:

  • Mehrfachmessung des gleichen analogen Eingangs und nur den letzten Meßwert nehmen.
  • Kondensator von 0,1µF zwischen analogen Eingang und Masse schalten
  • Operationsverstärken in Spannungsfolgerschaltung zwisehn Spannungsteiler und Eingang schalten.
  • Niederohmigeren Spannungsteiler (hängt aber vom Drucksensor ab).

Die ersten 2 Möglichkeiten verringern die Dynaik des Meßsignale.

Grüße Uwe

Und dann die Frage, wozu wertest du den analogen Eingang aus, wenn kein Spannung bzw. Sensor dran hängt ?

Also beide Eingänge richtig beschalten und deine Werte sollten stimmen.

Vielen Dank für eure Antworten.

Nun stellt sich mir die Frage, ob ich die restlichen "offenen" im Sketch nicht ausgewerteten Programme auch gegen Masse schließen soll, damit diese "null" ergeben, oder ob dies egal ist?

Nun stellt sich mir die Frage, ob ich die restlichen "offenen" im Sketch nicht ausgewerteten Programme auch gegen Masse schließen soll, damit diese "null" ergeben, oder ob dies egal ist?

Was du mit Programmen meist ist sicher der Eingang ?

Wenn du diese nicht nutzt, also nicht auswertest, brauchst du auch keine Beschaltung.

Ungenutzte Eingänge ist es besser einen Spannungspegel zu geben. Am einfachsten ist es den internen Pullupwidestand zu aktivieren (auch wenn das niemand macht).
Grüße Uwe

uwefed:
Ungenutzte Eingänge ist es besser einen Spannungspegel zu geben. Am einfachsten ist es den internen Pullupwidestand zu aktivieren (auch wenn das niemand macht).
Grüße Uwe

Wie aktiviert man diesen PullUp denn?

robotsox:
Wie aktiviert man diesen PullUp denn?

Grundlagen lernen!

Im Setup:
"pinMode(Pin_Nr, INPUT_PULLUP);"

Am einfachsten ist es den internen Pullupwidestand zu aktivieren (auch wenn das niemand macht).

Doch, ich mache das!
Aber auch nur, wenn der AVR über Monate mit einer Knopfzelle auskommen muss.

Kann man dieses Verhalten irgendwie unterbinden?

Warum willst du ein Verhalten unterbinden, welches niemanden stört
Selbst dich nicht, denn nutzbare Werte wirst du niemals aus einem ungenutzten Anschluss raus bekommen.

Mit Pullup bekommst du immer 1023.
Der Wert ist nix schöner, als ein schwankender.

Außerdem verlängerst du durch den Pullup u.U die Samplezeit, wenn du weiterhin die taube Nuss abfragen willst.

Wie aktiviert man diesen PullUp denn?

pinMode(A3,INPUT_PULLUP);

Bei A6 und A7 geht das allerdings nicht.
Da gibts aber auch keinen Grund für, denn die fressen keinen Strom, wenn sie floaten.

Wenn die Eingänge nicht mehr floaten, kann man sie aber nicht mehr als Basis für Random nehmen.

Das ist richtig.

Gruß Tommy