/*
Showing number 0-9 on a Common Anode 7-segment LED display
Displays the numbers 0-9 on the display, with one second inbetween.
A
---
F | | B
| G |
---
E | | C
| |
---
D
This example code is in the public domain.
*/
// Invert HIGH and LOW on/off for Arduino HW
#define HIGH 0
#define LOW 1
#include "DHT.h"
#define DHTTYPE DHT22
int DHTPIN = 13;
DHT DHTSensor(DHTPIN, DHTTYPE); // Corrected capitalization
int on = 1, off = 0;
// Pin 2-8 are connected to the 7 segments of the display.
int TimeDisplay = 800;
int pinA = 2; // red
int pinB = 3; // grey
int pinC = 4; // brown
int pinD = 5; // purple
int pinE = 6; // pink
int pinF = 7; // yellow
int pinG = 8; // brown
int D1 = 9; // blue
int D2 = 10; // green
int D3 = 11; // orange
int D4 = 12; // black
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(9600); // Start serial communication
DHTSensor.begin(); // Start DHT Sensor
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);
}
void loop() {
float Temperatur = DHTSensor.readTemperature(); // Corrected variable name
Serial.print("Temperatur: ");
Serial.print(Temperatur);
Serial.println(" Celsius");
// Display number on D1
digitalWrite(D1, on);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, off);
choice(random(0, 10)); // Corrected function call with argument
delay(TimeDisplay);
// Display number on D2
digitalWrite(D1, off);
digitalWrite(D2, on);
digitalWrite(D3, off);
digitalWrite(D4, off);
choice(random(0, 10)); // Corrected function call with argument
delay(TimeDisplay);
// Display number on D3
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, on);
digitalWrite(D4, off);
choice(random(0, 10)); // Corrected function call with argument
delay(TimeDisplay);
// Display number on D4
digitalWrite(D1, off);
digitalWrite(D2, off);
digitalWrite(D3, off);
digitalWrite(D4, on);
choice(random(0, 10)); // Corrected function call with argument
delay(TimeDisplay);
}
// Define the display patterns for each digit
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);
}
// Function to select the number to display based on random number
void choice(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;
}
}