Gestern habe ich verschiedene Teile für meinen Arduino bekommen. Zum Warmwerden habe ich die Temperatur mit dem LM 35 ausgelesen. Linkes Bein an +5V, mittleres Bein an A0 (Analogeingang 0) und rechtes Bein an GND (Masse). Ein paar Zeilen Code und schon kann ich auf dem Monitor der Arduino-Software die aktuelle Temperatur sehen.
Ich lese fünf mal die Temperatur im Abstand von 1 Sekunde (1000ms) und bilde darüber den Mittelwert. Bei der Temperaturausgabe verwende ich nur die erste Stelle nach dem Komma.
Hardware
Watterott LM35 CZ – Temperatursensor
Bei amazon.de: Arduino Uno Board REV 3
Code
int LM35 = A0;
float SensorValue = 0;
float temperatur = 0;
float temp[5];
void setup() {
Serial.begin(9600);
}
void loop() {
SensorValue = analogRead(LM35);
temp[1] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000); // 1 Sekunde Pause zwischen den Messungen machen
temp[2] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[3] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[4] = (5.0 * analogRead(LM35) * 100.0) / 1024;
delay(1000);
temp[5] = (5.0 * analogRead(LM35) * 100.0) / 1024;
temperatur = (temp[1] + temp[2] + temp[3] + temp[4] + temp[5])/5; //Mittelwert aus 5 Messungen bilden
//Serial.print(SensorValue, DEC);
//Serial.print(“ –> „);
Serial.print(temperatur, 1); //Ausgabe der Temperatur mit einer Nachkommastelle
Serial.println(„Grad Celsius“);
}
Ausblick
Software aufhübschen
Genauigkeit erhöhen -> http://www.arduino.cc/playground/Main/LM35HigherResolution
Links
Sehr ausführlicher und hilfreicher Artikel: Noch ein LM35 Temperatursensor an nem Arduino
http://www.mats-vanselow.de/arduinotemperatur
http://learn.adafruit.com/tmp36-temperature-sensor (englisch)