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); }