Ich versuche, die beiden Temperatursensoren TMP36 (aus dem Sparkfun Inventor-Kit) und KEYES LM35 zu verwenden.
Lesen Sie TMP36 Sensor und konvertieren Sie das Ergebnis mit dem folgenden Code in Celsius:
// TMP36 input sensor -> degrees Celsius calculation
TM36reading = analogRead(TM36sensor);
TM36voltage = (TM36reading/1024.0)*5.0;
//converting from 10mv per degree with 500 mV offset
// (TMP36 voltage - 500mV) times 100)
TM36degreesC = (TM36voltage - 0.5) * 100;
Beim Lesen des LM35-Sensors konvertieren ich das Ergebnis mit dem folgenden Code in Celsius:
// LM35 input sensor -> degrees Celsius calculation
LM35reading=analogRead(LM35sensor); // reads the LM35 output
LM35voltage = (LM35reading/1024.0)*5.0;
LM35degreesC=LM35voltage*100.0;
Ich habe auch ein LCD-Display angeschlossen, um die Werte dieser beiden Sensoren visuell zu überwachen. Hier ist mein vollständiger Code . Ich benutze auch ein serielles Protokoll. Hier ist ein Beispiel aus diesem seriellen Protokoll (wie Sie sehen können, gibt es einen Unterschied / Versatz zwischen 0,5 und 0,9 Grad Celsius).
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.89, LM35: 16.11 diff -> 0.78
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.87, LM35: 16.60 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 17.09 diff -> 0.20
TM36: 17.38, LM35: 17.09 diff -> 0.29
mean difference between sensors: 0.48
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.41, LM35: 17.58 diff -> 1.17
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 16.89, LM35: 17.09 diff -> 0.20
mean difference between sensors: 0.71
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 16.89, LM35: 16.60 diff -> 0.29
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.60 diff -> 0.78
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 16.11 diff -> 1.27
TM36: 17.38, LM35: 17.09 diff -> 0.29
TM36: 16.89, LM35: 16.11 diff -> 0.78
mean difference between sensors: 0.93
Ich schalte den Arduino über das USB-Kabel vom Computer aus ein. Wenn der Computer eingeschaltet ist, haben wir den Offset, den ich oben bereits demonstriert habe. Wenn der Computer ausgeschaltet wird (nach dem Herunterfahren des Computers), fällt der Sensor des TMP36 sofort um 1 Grad Celsius. Und dann haben beide Sensoren eine ähnliche Temperatur.
Warum gibt es diesen Temperaturunterschied zwischen TMP36- und LM35-Sensoren? Wie können wir diese Sensoren "fein einstellen", um die tatsächliche Temperatur zu überwachen?