Uno versus Nano Temperaturmessung

Hallo und noch ein gutes neues Jahr 2019!

Da nun meine Nanos da sind, mache ich damit einige grundlegende Einsteiger-Versuche, die ich schon mit dem Uno gemacht habe.

Was ich dabei festgestellt habe, verwundert mich. Z.B. mit dem Tempsensor TMP36 messe ich beim Nano im seriellen Monitor 29 Grad, der Uno zeigt da nur 22 Grad an, was auch mit anderen Referenzmessgeräten mit ca. +/- 1 Grad stimmt.

Wohlgemerkt immer mit dem gleichen TMP36, den ich mit der 20cm Anschlussleitung vom Uno dann an den Nano stecke. Die Spannungsversorgung ist mit den 30cm USB Kabel und gleichem Notebook auch identisch an gleicher USB Buchse.

Natürlich habe ich zuvor auch in der IDE den jeweils anderen Arduino korrekt eingestellt. Ebenso ist der Sketch identisch.

An was könnte der 7 Grad Temperaturunterschied liegen, bei wohlgemerkt dem gleichen Sensor, den ich nur umstecke?

Haben denn nur die Boards untereinander so große Hardwaretoleranzen etc.?

Hi,

wenn irgendwo in der Auswertung die Betriebsspannung == Referenzspannung auftaucht, dann solltest Du die mal messen, da die Spannungsversorgung unterschiedlich gelöst ist. Die interne Refenzspannung kann natürlich auch von Chip zu Chip variieren 1.0 - 1.1 - 1.2V

Gruß André

Wenn die Spannung die der Sensor max liefert unter 1,1V, ist sprich Du Temperaturen bis 60°C messen willst, dann kannst Du die interne Referenz des AD-Wandlers von 1,1V benutzen. analogReference() - Arduino Reference Es kann sein, daß die Referenzspannung nicht genau 1,100V ist. Du kannst diese Referenzspannung aber am Pin AREF messen und gegebenefalls den Spannungswert in der Temperaturumrechnung korrigieren. Die Referenzspannung ist zeitlich gesehen sehr konstant, also immer gleich ungenau. Bei einer Referenzspannung von 1,1V mißt der AD-Wandler aller Spannungen über 1,1V den Wert 1023. Am Analogeingang kannst Du Spannungen bis zur Versorgungsspannung (meistens 5V) anlegen ohne etwas kaputt zumachen.
Grüße Uwe

Danke für die Infos.
Ich habe einmal bei beiden Arduinos am gleichen Notebook USB-Anschluss die Ref-Spannungen an den Modulen gemessen.
Dabei habe ich am Uno 4,88 Volt, am Nano 4,60 Volt.
Den Tempsensor habe ich an die Versorgungsspg. 5V und Gnd der Module angeschlossen, die Messwertleitung an A0.
Im Sketch wird die Referenzspg. nicht verändert bzw. angepasst.
Es wird mit der map-Anweisung gearbeitet.

Ist es also so, dass bei geringerer Uref eine höhere Temperatur angezeigt wird?
Ist es egal, ob die Versorgungsspannung des Sensors an den Pin 5V oder Ref angeschlossen wird, da diese ja die gleiche Spannung haben!?
Der Nano ist ein Clone, ist da speziell bei Analog-Digital-Anwendungen die Qualität der Genauigkeit geringer bzw. die Uref schlechter/geringer wegen größeren Bauelementen-Toleranzen?

Hi,

wenn Du eine niedrigere Uref hast, ist bei gleicher Temperatur/Messspannung der Wert höher.
Es ist normal, daß von Chip zu Chip die Uref unterschiedlich ist, der jeweilige Wert aber sehr stabil, da die Uref bei der Herstellung vermutlich nicht auf einen genauen Wert getrimmt wird.
Du kannst ja mal schauen, was hochgenaue und temperaturstabile Referenzspannungsquellen so kosten :wink:

Gruß André

1, 96€ hier für Amateurzwecke durchaus ausreichend.

Gruß Tommy

Tommy56:
... für Amateurzwecke durchaus ausreichend.

ja, für einen 12bit ADC reichen 30ppm/Grad Celsius. Und wenn man Glück hat bekommt man beim FC einen refurbished AD584JH.
Wo ich aber hin wollte ist, daß eine getrimmte Vref den Preis eines Atmel-IC ordentlich heben würde.

Gruß André

Ist es also so, dass bei geringerer Uref eine höhere Temperatur angezeigt wird?

Wenn du auch die Betriebsspannung messen würdest, dann kannst du den Fehler rausrechnen.

Alternativ, die interne Referenz verwenden und eine EinPunkt oder ZweiPunkt Kalibrierung durchführen.

Ist es egal, ob die Versorgungsspannung des Sensors an den Pin 5V oder Ref angeschlossen wird, da diese ja die gleiche Spannung haben!?
Der Nano ist ein Clone, ist da speziell bei Analog-Digital-Anwendungen die Qualität der Genauigkeit geringer bzw. die Uref schlechter/geringer wegen größeren Bauelementen-Toleranzen?

Alles unerheblich, aus meiner Sicht, der falsche Gedankengang.

Der TMP36 gibt eine Spannung aus die proportional zur temperatur ist. Das ist unabhängig von der Versorgungsspannung.
Die Referenzspannung geht direkt auf die Berechnung der Temperatur ein.

float voltage = reading * 5.0/1024.0;
float temperatureC = (voltage - 0.5) * 100 ;

Der Wert "5.0" im oberen Sketchauszug ist dei Referenzspannung des AD-Wandlers.

Ist die Refeenzspannung nun nicht 5,0V sondern in Deinen Fällen 4,88 V bzw 4,60 V. so ist die Spannungsmessung der Temperatursensors falsch, und zwar 1-(5/4,88) bzw 1-(5/4,6) zu hoch.

Grüße Uwe