PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : analoge Messung verfälscht ??



oderlachs
15.04.2013, 11:22
Hallo Freunde!

Für ein Messverfahren habe ich alle analogen Eingänge, per PullUp-R auf HIGH gelegt : digital.write(Ax, HIGH)
Soweit so gut, offene Eingänge = 1023, aber werden die Eingänge auf GND gelegt messe ich immer noch 14..15 anstatt NULL.

Mache ich was falsch oder ist das Normal ?

Gruss & Dank
OL

oberallgeier
15.04.2013, 15:40
... offene Eingänge = 1023 ... die Eingänge auf GND gelegt messe ich immer noch 14..15 ...Wieviel Volt mißt Du mit einem Messgerät am Eingang? Und was meldet der Controller, wenn Du einen bestimmten Messwert - welchen auch immer - am Messgerät hast? Immerhin ist ein "offener Eingang" im Prinzip irgendetwas aus der EMV-Wolke der Umgebung. Oder irre ich mich?

ichbinsisyphos
15.04.2013, 15:56
Aso ... ist das überhaupt garantiert, dass GND dort gleich Masse ist? Vielleicht nur innerhalb der üblichen Logik-Signalgrenzen.

oderlachs
15.04.2013, 17:34
Die Eingänge sind wie oben beschrieben mit internen PullUp-Widerstand an +5V gelegt, also nicht DIREKT OFFEN. Werde nachher gleich mal messen mit dem digitMM

Nachtrag:

Nach Einfügen einer CodeZeile :
int wert = map(sensorReading,0,1023,0,5);

komme ich sauber auf den Nullwert.

hat mich aber trotzdem etwas gelernt, der Vorfall.

Danke Euch für die Mitthilfe !!!

erik_wolfram
15.04.2013, 20:16
Hallo,

das Verhalten der Analog-Eingänge ist vollkommen normal wenn man den ADC für die Messung positiver Spannungen initialisiert hat.
Der Grund: die Masse ist für die Messung von Null Volt nach unten verschoben. Möchte man Null Volt Messen muss man vorher eine Offset-Kompensation durchführen. In den Atmel-Bibliotheken sind hierfür extra Funktionen enthalten. Die Verschiebung steht in Abhängigkeit zur Referenzspannung des ADC's.
Ansonsten kann man zunächst Null Volt Messen und den gemessenen Wert darf/soll man dann von allen Messergebnissen subtrahieren.

Möchte man auch negative Spannungen messen und initialisiert den ADC entsprechend sollte die Masse (Null Volt) richtig gemessen werden!
Die Verschiebung erfolgt nur für die Messung positiver Spannungen.

Gruß Erik

oderlachs
16.04.2013, 09:57
Hallo Erik !

Vielen Dank für Deine Infos, ich habe mich mal wieder Chip-intern befasst damit, der Hinweis war gut, ich komme zwar noch nicht so richtig damit klar, aber mal sehen.
Bei dem ADMUX-Reg. sehe ich noch nicht so ganz durch, was da die Voreinstellung L o. H an MUX3..0 an Bedeutung hat, vor allen was da Temperatursensor bedeutet: MUX3:0 = 1000 ??

Gerhard

ichbinsisyphos
16.04.2013, 19:21
int wert = map(sensorReading,0,1023,0,5);Irgendwie blick ich da nicht ganz durch. Was macht "map()" schon, das stellt einen Wert aus einer Skala in einer anderen dar, es rechnet 0 bis 1023 in 0V bis 5V um. Das Ding weiß doch nichts über irgendwelche offsets ...

oderlachs
16.04.2013, 19:50
Hallo ichbinssisyphos,
ja da gebe ich Dir recht, mir ging es in der Anwendung darum, wenn GND geschaltet, sollte auch Null "gemessen" werden. Die gerundeten "Voltzahlen" sollten in einer Case Anweisung ausgewertet werden...also brauch ich 0,1,2,3,4 u.5.
Über das andere was noch nebenbei so ans Tageslicht hier in den Beiträgen kam, bin ich auch nicht böse, da lernt man wieder was dazu, wenn man detailliertere Auswertungen vor hat...noch stehe ich vor dem grossen Rätsel mit einem Feuchte- u.Temperatursensor auch negative Temperaturen auswerten zu können, was ich noch nicht begriffen bzw erreicht habe...

Gruss
Gerhard

ichbinsisyphos
16.04.2013, 20:05
Aso, nur weil du den kleinen offset bei abgerundeten Ganzzahlen nicht mehr merkst?

Bei Temperatursensoren ist der Ausgang der meisten eh proportional zu Kelvin, also immer positiv. Wir hatten da vor langer Zeit mal einen thread am Arduino-board. Es gibt Celsius-Sensoren die die Ausgangsspannung verschieben, so dass mit positiven Spannungen negative Temperaturen dargestellt werden können. Und wenn nicht, dann gibts meistens irgendwelche Tricks um den Spannungsbereich zu verschieben.
Was gibts bei Feuchtesensoren für ein Problem?

oderlachs
17.04.2013, 08:53
Hallo IchBins...
ich melde mich mal zu den Thema, wenn ich wieder Zeit habe...momentan ist etwas knapp fürs Hobby, der Garten ruft mich bei diesem Wetter...
meine DHT11/22 Feuchte weicht ungemein von der am Haarhygrometer angezeigten ab..wer weiss warum?
Gruss
Gerhard

Hubert.G
17.04.2013, 09:49
Hallo Freunde!

Für ein Messverfahren habe ich alle analogen Eingänge, per PullUp-R auf HIGH gelegt : digital.write(Ax, HIGH)
Soweit so gut, offene Eingänge = 1023, aber werden die Eingänge auf GND gelegt messe ich immer noch 14..15 anstatt NULL.

Mache ich was falsch oder ist das Normal ?

Gruss & Dank
OL

Analoge Eingänge, wenn sie für den ADC verwendet werden, habe ich noch nie per PullUp auf high gelegt.
Auch wenn die internen PullUp etwa 50 - 70k haben, verfälschen sie doch das Messergebnis.
Das auf den Eingängen, ohne PullUp, dann auch was drauf sein muss ist klar, da sie sonst floaten.
Wenn die Eingänge dann auf GND liegen, ist die ADC-Ausgabe auch 0. Eine sauber AGND-Führung sollte natürlich auch sein.

seite5
17.04.2013, 16:40
Hallo,

Zitat: Analoge Eingänge, wenn sie für den ADC verwendet werden, habe ich noch nie per PullUp auf high gelegt. - Ich auch nicht.
Gerade bei ADC's die den Eingangsstrom über eine Zeit bewerten hängt der entstehende Fehler durch pull-up dann nur noch vom Ausgangs-
widerstand der Quelle ab, richtig lustig wird's aber erst, wenn dieser nichtmal konstant ist.
Genausowenig halte ich davon, Fehler (Offsets...) gleich mal wegzurechnen. Erst mal prüfen: Quellwiderstand zu hoch ?, C's (Tantal) an
Analog VCC und Referenz ?, Masse der C's kurz geführt und an einen Punkt gebracht ? Laufen grössere Digital-Ströme quer durch den
Analog-Teil ...
Ist alles bei 10bit sicherlich nicht so präkär, aber eine gute Übung !
mfg
Achim

oderlachs
18.04.2013, 07:44
Hallo Freunde,

eigendlich wollte ich gar nicht eine lange Diskussion hier starten, wenn mir jemand gesagt hätte, das mein Messergebnis normal sei, ich häte nicht nach dem Warum gefragt. Es war aber trotzdem alles sehr lehrreich und interessant mal zu lesen.
Es ging mir auch nicht darum , um exakte Messungen durchzuführen, es war eben mal bei einer Anwendung mir aufgefallen und ich konnte es mir nicht richtig erklären.

Vielen Dank Euch allen !

Gerhard