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)
Hallo,
ich bin gerade dabei den Code für meine Projektarbeit mit dem Arduino zu schreiben.
Dabei messe ich auch die Temperatur mit dem LM35.
Ich bin neu in dem Gebiet und ich frage mich, warum man den Wert mal 5.0 und mal 100 macht?
Danke im voraus für die Hilfe
Gruß