Steuerung für DHT11-Binäranzeige

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