DHT11-Binärschaltung:
Dieser Programmcode steuert die Ansteuerung von 8 LEDs mit Hilfe der DHT11-Messwerte. Einerseits werden am DHT11 die Umgebungstemperatur und die Luftfeuchtigkeit gemessen und zum andererseits können diese Werte binär mit Hilfe der 8 LEDs angezeigt werden. Momentan ist der Programmcode lediglich auf die Anzeige der Temperatur ausgelegt, doch könnte der Code mit wenig Aufwand auch die Luftfeuchtigkeit anzeigen.
///////////////////////////////////*DEFINITIONEN*///////////////////////////////////
/*DHT 11*/
#include <DHT.h> //DHT11-Bibliothek wird eingebunden
#define DHTPIN 13 //Der DHT11 wird am Pin13 angeschlossen
#define DHTTYPE DHT11 //Hier wird angegeben, dass der verwendete DHT ein DHT11 ist
DHT dht(DHTPIN, DHTTYPE); //Der DHT wird initialisiert
int hum = 0; //Zu Beginn wird die Variable hum auf 0 gesetzt
int temp = 0; //Zu Beginn wird die Variable temp auf 0 gesetzt
/*LED binär*/
//In diesem Abschnitt werden 8 LEDs zu 8 Pins des Arduinos zugeordnet.
#define LED1 5
#define LED2 6
#define LED4 7
#define LED8 8
#define LED16 9
#define LED32 10
#define LED64 11
#define LED128 12
///////////////////////////////////*SETUP*///////////////////////////////////
void setup() {
/*DHT 11*/
dht.begin(); //Startet den DHT
/*LED binär*/
//In diesem Abschnitt werden die Pins am Ardunio als Ausgänge definiert.
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED8, OUTPUT);
pinMode(LED16, OUTPUT);
pinMode(LED32, OUTPUT);
pinMode(LED64, OUTPUT);
pinMode(LED128, OUTPUT);
}
///////////////////////////////////*LOOP*///////////////////////////////////
void loop() {
/*DHT 11*/
hum = dht.readHumidity(); //Hier wird die Luftfeuchtigkeit aus der Datenmatrix in die Variable hum abgespeichert
temp = dht.readTemperature(); //Hier wird die Temperatur aus der Datenmatrix in die Variable temp abgespeichert
/*LED binär*/
//In diesem Abschnitt wird der Wert, der in der Variable "temp" gespeichert ist, in Binärteile umgerechnet und dem jeweiligen Pin als HIGH-Wert oder LOW-Wert gesendet
digitalWrite(LED1, (temp/1)%2);
digitalWrite(LED2, (temp/2)%2);
digitalWrite(LED4, (temp/4)%2);
digitalWrite(LED8, (temp/8)%2);
digitalWrite(LED16, (temp/16)%2);
digitalWrite(LED32, (temp/32)%2);
digitalWrite(LED64, (temp/64)%2); //nicht nötig
digitalWrite(LED128, (temp/128)%2); //nicht nötig
delay(1000);
}