Temperatur messen mit Arduino

Ich habe mir aufgrund eines Abverkauf ein Arduino Duemilanove zugelegt. Das Board gibt es relativ günstig z. B. bei Watterott für ungefähr 22 Euro. Zusätzlich zu dem Arduino habe ich mir einen Temperatur-Sensor LM 35 CZ bei Reichelt besorgt. Dieser kostet ca. 3,20 Euro. Da ich noch zu den Elektronik-Anfängern zähle, tat ich mich zuerst etwas schwer mit dem Anschließen des Sensors. Legt man den LM 35 mit der flachen Seite nach oben und den Beinen zum Körper zeigend hin, so ist der Kontakt links V+, Mitte ist der Output und rechts ist Gnd (Ground). Großer Vorteil des Sensors ist, dass man ihn direkt an das Board anschließen kann. Ich habe V+ an den Anschluß 5V, Mitte an A5 und Ground logischerweise an GND angeschlossen. Legt man den Arduino mit dem USB Anschluß links vor sich hin, dass ist das der 3 (5V), 5 (Gnd) und 12 bzw. letzte Steckkontakt (A5) von links aus gesehen. Ist alles schön verkabelt  kann der Sensor mit folgenden Code bereits ausprobiert werden:

int analogPort = 5;
float temperatur;
int idx;
// setup
void setup()
{
  Serial.begin(9600);
}
// loop
void loop()
{
  Serial.println(getTemperatur());
  // 1000ms wartem
  delay(1000);
}
// helper
float getTemperatur()
{
 
  temperatur = 0;
  // 5 Messungen vornehmen und aufsummieren.
  for(idx = 0; idx<5; idx++)
  {
    temperatur = temperatur + analogRead(analogPort);
    // Wartezeit zwischen Messungen 20ms
    delay(20);
  }
  temperatur = temperatur / 5 / 2;
  return(temperatur);
}

Der ADC (Analog-to-Digital-Converter) hat eine 10Bit Auflösung, d. h. bei 5V Referenzspannung sind das 1024 Wertausprägungen. Der Teiler 2 kommt von 10 mV pro Grad Celsius (LM35) und 5 Volt Meßbereich oder andersrum, wenn man 5V durch 1024 teilt und mit zwei multipliziert kommt man auf die ca. 10mV.

Fakten zum Sensor aus dem Datenblatt:

  • Linear + 10.0 mV/°C scale factor
  • 0.5°C accuracy guaranteeable (at +25°C)
  • Rated for full −55° to +150°C range

Kommentar verfassen