#include "DHT.h" //DHT Bibliothek laden
#define DHTTYPE DHT22
int DHTPIN = A0;
DHT DhtSensor (DHTPIN, DHTTYPE);
//DHT11 HW: Mit Blick auf die Vorderseite des DHT11 wird der linke
// Kontakt mit Pin 3,
// der mittlere mit 5V und der rechte mit GND
// am Mikrocontroller verbunden.
int pinA = 2;
int pinB = 3;
int pinC = 4;
int pinD = 5;
int pinE = 6;
int pinF = 7;
int pinG = 8;
int D1 = 9;
int D2 = 10;
int D3 = 11;
int D4 = 12;
int DP = 13;
int RLed = A1;
int GLed = A2;
#define HIGH 1
#define LOW 0
int on = 0 , off = 1;
float Delta = 0;
void setup() {
pinMode(DHTPIN, INPUT);
DhtSensor.begin(); //DHT Sensor starten
Serial.begin( 9600); //Serielle Verbindung starten
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(D3, OUTPUT);
pinMode(D4, OUTPUT);
pinMode(DP, OUTPUT);
pinMode(RLed, OUTPUT);
pinMode(GLed, OUTPUT);
}
void loop() {
float Temp = DhtSensor.readTemperature();
int x = Temp*10 + Delta;
Serial.print("Die Temperatur beträgt: ");
Serial.print(Temp + Delta/10);
Serial.println("°C");
// wenn Temp < 21 °C (x < 210) GLed einschalten
// und schrittweise die Variable Delta um 1 erhöhen
// und zu x addieren
// (d.h. die Temperatur um 0.1 Grad erhöhen)
// wenn Temp > 21 °C (x > 200) GRed einschalten
// und schrittweise die Variable die Variable Delta um 1
// verkleinen und zu x addieren
// (d.h. die Temperatur um 0.1 Grad verkleinen)
if (x<210) { // if Temp < 21°C
digitalWrite(GLed, HIGH);
digitalWrite(RLed, LOW);
Delta= Delta +1;
}
else {
digitalWrite(RLed, HIGH);
digitalWrite(GLed, LOW);
Delta = Delta-1;
}
if (Temp >=0 ) {
digitalWrite(D1, on);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, off);
Auswahl(x/100);
delay (700);
digitalWrite(D1, off);
digitalWrite(D2, on);
digitalWrite(D3, off);
digitalWrite(D4, off);
digitalWrite(DP, HIGH);
Auswahl ((x%100)/10);
delay (700);
digitalWrite(DP, LOW);
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, on);
digitalWrite(D4, off);
Auswahl(x%10);
delay (700);
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, on);
Auswahl (10);
}
else {
digitalWrite(D1, on);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, off);
Auswahl(11);
delay (700);
digitalWrite(D1, off);
digitalWrite(D2, on);
digitalWrite(D3, off);
digitalWrite(D4, off);
Auswahl(-x/100);
delay (700);
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, on);
digitalWrite(D4, off);
Auswahl ((-x%100)/10);
delay (700);
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, on);
Auswahl (10);
}
delay (700);
}
void Auswahl (int Zahl) {
switch (Zahl) {
case 0:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
case 10:
LetterC();
break;
case 11:
Minus();
break;
}
}
void zero () {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
void one (){
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
void two () {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}
void three () {
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}
void four (){
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
void five (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
void six (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
void seven (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
}
void eight (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
void nine (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
}
void LetterC (){
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
void Minus (){
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}