/*
PinbelegungESP32-DevKitC Pin Layout auf Seite 6 von:
https://asset.conrad.com/media10/add/160267/c1/-/gl/002490159DS00/adatlap-2490159-espressif-fejlesztoi-panel-esp32-devkitc-vie.pdf
Dieses Programm ist zum testen der Grundlagen und
enthält Codefragmente von:
https://www.youtube.com/watch?v=90qKWsqUikg
https://github.com/Edistechlab/DIY-Heimautomation-Buch/blob/master/Aktoren/7_Segment_Display_No_library/7_Segment_Display_No_library.ino
https://www.youtube.com/@EdisTechlab
Dispplay Pin
Funktion ESP32P
Seg_A 21
Seg_B 23
Seg_C 17
Seg_D 18
Seg_E 19
Seg_F 22
Seg_G 16
Seg_DP 5
Sel0 4
Sel1 0
Enable 2
*/
int pinArray1[] = {21, 23, 17, 18, 19, 22, 16, 5};
int pinArray2[] = {0, 4 };
int VarDig0;
int VarDig1;
int VarDig2;
int VarDig3;
int VarX;
int numArray[11][8] = {
{ 1,1,1,1,1,1,0,0 }, // 0
{ 0,1,1,0,0,0,0,0 }, // 1
{ 1,1,0,1,1,0,1,0 }, // 2
{ 1,1,1,1,0,0,1,0 }, // 3
{ 0,1,1,0,0,1,1,0 }, // 4
{ 1,0,1,1,0,1,1,0 }, // 5
{ 1,0,1,1,1,1,1,0 }, // 6
{ 1,1,1,0,0,0,0,0 }, // 7
{ 1,1,1,1,1,1,1,0 }, // 8
{ 1,1,1,0,0,1,1,0 }, // 9
{ 0,0,0,0,0,0,0,1 } // Punkt
};
int DigitArray[4][2] = {
{ 1,1 }, // Digit 1
{ 1,0 }, // Digit 2
{ 0,1 }, // Digit 3
{ 0,0 }, // Digit 4
};
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!\nIch zähle von 0 bis 9999");
pinMode(2, OUTPUT);
digitalWrite(2, 1);
pinMode(0, OUTPUT);
digitalWrite(0, 0);
pinMode(4, OUTPUT);
digitalWrite(4, 0);
for (int i = 0; i < 8; i++) {
pinMode(pinArray1[i], OUTPUT);
digitalWrite(pinArray1[i], 0);
}
}
/* -- Alter Programmcode
void numWrite1(int number) {
for (int i = 0; i < 8; i++) {
digitalWrite(pinArray1[i], 1 - numArray[number][i]);
}
}
void numWrite2(int number) {
for (int i = 0; i < 2; i++) {
digitalWrite(pinArray2[i], DigitArray[number][i]);
}
}
*/
void loop() {
// put your main code here, to run repeatedly:
// Zähler 0 - 9999
VarDig0 += 1;
if ( VarDig0 > 9 ) { VarDig0 = 0; VarDig1 +=1;
if ( VarDig1 > 9 ) { VarDig1 = 0; VarDig2 +=1;
if ( VarDig2 > 9 ) { VarDig2 = 0; VarDig3 +=1;
if ( VarDig3 > 9 ) { VarDig3 = 0;
}}}}
/* Anzeige des Zählers
VarX = VarDig3;
VarX = VarX * 10 + VarDig2;
VarX = VarX * 10 + VarDig1;
VarX = VarX * 10 + VarDig0;
Serial.println(VarX);
*/
for (int forwiederholung = 0; forwiederholung < 10; forwiederholung++) {
for (int fordigit=0;fordigit<4;fordigit++) {
switch (fordigit) {
case 0:
VarX = VarDig0;
break;
case 1:
VarX = VarDig1;
break;
case 2:
VarX = VarDig2;
break;
case 3:
VarX = VarDig3;
//break;
}
for (int forsegment = 0; forsegment < 8; forsegment++) {
digitalWrite(pinArray1[forsegment], 1 - numArray[VarX][forsegment]);
}
for (int forselect = 0; forselect < 2; forselect++) {
digitalWrite(pinArray2[forselect], DigitArray[fordigit][forselect]);
}
digitalWrite(2, 0);
delay(25);
digitalWrite(2, 1);
}
/* -- Alter Programmcode
numWrite1(Var0);
numWrite2(0);
digitalWrite(2, 0);
delay(25);
digitalWrite(2, 1);
numWrite1(Var1);
numWrite2(1);
digitalWrite(2, 0);
delay(25);
digitalWrite(2, 1);
numWrite1(Var2);
numWrite2(2);
digitalWrite(2, 0);
delay(25);
digitalWrite(2, 1);
numWrite1(Var3);
numWrite2(3);
digitalWrite(2, 0);
delay(25);
digitalWrite(2, 1);
*/
}
}