Wie wäre es mit einem Ventilator, den du nicht selbst einschaltest, wenn es zu warm in deinem Zimmer wird? In diesem Projekt übernimmt das der Arduino für dich. Der Temperatursensor DHT11 misst die Temperatur – und wenn ein von dir festgelegter Wert überschritten wird, startet der Arduino den Gleichstrom-Motor.
Zunächst zum Aufbau. Vielleicht hast du den Motor samt H-Brücke ja noch von der letzten Lektion auf deinem Breadboard installiert. Baue nun einfach den DHT11 wie folgt daneben.
___STEADY_PAYWALL___
Der passende Sketch
Im Prinzip passiert im folgenden Sketch nichts, das du nicht schon kennst. Zu Beginn des Sketchs bindest du die Bibliothek für den DHT11 ein, definierst die Pins zur Kommunikation zwischen Sensor, Motor und Arduino und deklarierst eine Variable für die Temperatur.
#include "DHT.h"
#define DHTPIN 7
#define DHTTYPE DHT11
#define ENABLE 5
#define DIRA 3
#define DIRB 4
float temp;
DHT dht(DHTPIN, DHTTYPE);
Im Setup legst du die pinModes fest und startest den Seriellen Monitor sowie den DHT11.
void setup() {
pinMode(ENABLE, OUTPUT);
pinMode(DIRA, OUTPUT);
pinMode(DIRB, OUTPUT);
Serial.begin(9600);
dht.begin();
}
Im Loop misst du im Sekundentakt die Temperatur und gibst das Ergebnis im Seriellen Monitor aus. Mit einer bedingten Anweisung prüfst du, ob die Temperatur über einem bestimmten Wert (hier 22) liegt und startest in diesem Fall den Gleichstrom-Motor. Liegt die Temperatur darunter, bleibt der Motor aus.
void loop() {
temp = dht.readTemperature();
Serial.print("Temperatur: ");
Serial.print(temp);
Serial.println(" *C");
if (temp > 22) {
digitalWrite(ENABLE, HIGH);
digitalWrite(DIRA, HIGH);
digitalWrite(DIRB, LOW);
}
else {
digitalWrite(ENABLE, LOW);
}
delay(1000);
}
Und das war auch schon alles an Code. Lade dir den gesamten Sketch aus den Downloads dieser Lektion herunter und speichere ihn auf deinem Arduino. Experimentiere etwas mit dem Schwellenwert herum und freue dich auf eine frische Brise. 🙂