Startseite Skripte für das Wintersemester 2018/19 Projekt „Citizen Science“ Arduino Grundlagen Temperatur-Anzeige analog


Temperatur-Anzeige analog

Arduino

// Arduino Project Book, Seite 43ff
// http://www.oomlout.com/oom.php/products/ardx/circ-04

// Libary einfügen!
#include <Servo.h>

// create servo object to control a servo
// a maximum of eight servo objects can be created
Servo myservo;

// Analoger Eingang 0
int sensorPin = A0;

// Widerstand hier wieder 220Ω
int ledPin = 2;

// Grenzwert-Temperatur, wenn LED an/ausgehen soll
float grenzwert = 22.0;

void setup() {
  pinMode(ledPin, OUTPUT);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
  Serial.begin(9600);
}

void loop() {

  int sensorVal = analogRead(sensorPin); // roher Sensor-Wert
  float voltage = (sensorVal / 1024.0) * 5.0; // Umrechung in Volt
  float temperature = (voltage - 0.5) * 100; // Temperatur in Celsius

  Serial.print("Temperatur: ");
  Serial.print(temperature);
  Serial.println(" C\n"); // \n erzwingt eine Leerzeile

  // Wenn die Temperatur unter einen bestimmten Wert fällt, soll die LED angehen
  if (temperature < grenzwert) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  // zur Sicherheit Limits eingebaut, damit der Servo nicht kaputt geht
  // wenn die Werte < 0 oder > 180 werden
  // deswegen werden nur Werte zwischen 0° und 60° zugelassen
  if (temperature > 0 && temperature < 45) {
    // Temperatur mit 4 multipliziert, damit man merkt, wenn sich die Temperatur ändern
    // z.b. wenn man mit der Hand an das Termometer fasst
    myservo.write(temperature * 4);
  }

  // Messung alle 0.5 sek
  delay(500);
}

Analoge Temperaturanzeige

hier eingeschränkt auf den Bereich von 0° bis 45° Celsius – also ein Zimmerthermometer…

Hinter der Anzeige wäre dann der Servo-Motor verbaut…

Aufbau