Bauvorschlag 1:
Beim Bauvorschlag 1 wird die Anzeige mit 8 LEDs ermöglicht. Die zuvor am DHT11 gemessene Umgebungstemperatur wird binär über die 8 LEDs angezeigt. Damit nicht nur die momentane Temperatur angezeigt wird, sind zusätzlich noch drei Spielereien im Code hinzugefügt. Die Spielereien bringen mehr Leben in die Anzeige und können natürlich je nach Bedarf angepasst werden. Lass dich vom Bauvorschlag 1 inspirieren!
///////////////////////////////////*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 LED-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*/ /*Hier werden abwechslend die Temperatur angezeigt und Spielereien gestartet.*/ temperaturanzeige(); delay(10000); addierer(); temperaturanzeige(); delay(10000); blinklicht(); temperaturanzeige(); delay(10000); lauflicht(); } ///////////////////////////////////*WEITERE FUNKTIONEN*/////////////////////////////////// /*Temperaturanzeige*/ void temperaturanzeige(){ //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 } /*Spielereien*/ void addierer(){ //In diesem Abschnitt wird von 0 bis zur momentanen Temperatur in binärschritten raufaddiert for (int i = 0; i < temp; i++){ digitalWrite(LED1, (i/1)%2); digitalWrite(LED2, (i/2)%2); digitalWrite(LED4, (i/4)%2); digitalWrite(LED8, (i/8)%2); digitalWrite(LED16, (i/16)%2); digitalWrite(LED32, (i/32)%2); digitalWrite(LED64, (i/64)%2); digitalWrite(LED128, (i/128)%2); delay(100); } } void blinklicht(){ //In diesem Abschnitt wird 4x mit allen LEDs geblinkt for (int i = 0; i < 4; i++){ digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); digitalWrite(LED4, LOW); digitalWrite(LED8, LOW); digitalWrite(LED16, LOW); digitalWrite(LED32, LOW); digitalWrite(LED64, LOW); digitalWrite(LED128, LOW); delay (500); digitalWrite(LED1, HIGH); digitalWrite(LED2, HIGH); digitalWrite(LED4, HIGH); digitalWrite(LED8, HIGH); digitalWrite(LED16, HIGH); digitalWrite(LED32, HIGH); digitalWrite(LED64, HIGH); digitalWrite(LED128, HIGH); delay (500); } } void lauflicht (){ //In diesem Abschnitt wird 4x eine Led von der LED1 zur LED128 gejagt und zurück for (int i = 0; i < 4; i++){ for (int j = 5; j < 13; j++){ digitalWrite(j, HIGH); delay(100); digitalWrite(j, LOW); } for (int k = 12; k > 4; k--){ digitalWrite(k, HIGH); delay(100); digitalWrite(k, LOW); } } }