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…