/*
Pinbelegung ESP32-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 darf von jeden für seine Zwecke verwendet werden.
Dieses Programm 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
Google translation:
Pin assignment ESP32-DevKitC Pin Layout on page 6 of:
https://asset.conrad.com/media10/add/160267/c1/-/gl/002490159DS00/adatlap-2490159-espressif-fejlesztoi-panel-esp32-devkitc-vie.pdf
This program is for testing the basics and can be used by anyone for their own purposes.
This program contains code fragments from:
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
*/
// der benutzen Anschl�sse or definitions of the used pins
#define Pin_Seg_A 21
#define Pin_Seg_B 23
#define Pin_Seg_C 17
#define Pin_Seg_D 18
#define Pin_Seg_E 19
#define Pin_Seg_F 22
#define Pin_Seg_G 16
#define Pin_Seg_DP 5
#define Pin_Display_Sel0 4
#define Pin_Display_Sel1 0
#define Pin_Display_Enable 2
#define Pin_Start_LED 12
#define Pin_Stop_LED 13
#define Pin_Reset_LED 14
#define Pin_Start_Button 25
#define Pin_Stop_Button 26
#define Pin_Reset_Button 27
int pinArray1[] = {Pin_Seg_A, Pin_Seg_B, Pin_Seg_C, Pin_Seg_D, Pin_Seg_E, Pin_Seg_F, Pin_Seg_G, Pin_Seg_DP};
int pinArray2[] = {Pin_Display_Sel0, Pin_Display_Sel1 };
int VarDig0; int VarDig1; int VarDig2; int VarDig3; int VarX;
int varButtonStart =1;
int varButtonStop =1;
int varButtonReset =1;
int VarZaehlen =0; // or VarCount
int numArray[11][8] = {
{ 1,1,1,1,1,1,0,0 },{ 0,1,1,0,0,0,0,0 },{ 1,1,0,1,1,0,1,0 }, // 0-2
{ 1,1,1,1,0,0,1,0 },{ 0,1,1,0,0,1,1,0 },{ 1,0,1,1,0,1,1,0 }, // 3-5
{ 1,0,1,1,1,1,1,0 },{ 1,1,1,0,0,0,0,0 },{ 1,1,1,1,1,1,1,0 }, // 6-8
{ 1,1,1,0,0,1,1,0 },{ 0,0,0,0,0,0,0,1 } // 9+Punkt or 9+dot
};
int DigitArray[4][2] = {{ 1,1 },{ 1,0 },{ 0,1 },{ 0,0 },};
void Display7Segment(int EnableTime) {
for (int forwiederholung = 0; forwiederholung < 10; forwiederholung++) { // or forrepeat
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(Pin_Display_Enable, 0);delay(EnableTime);digitalWrite(Pin_Display_Enable, 1);
}
varButtonStart = digitalRead(Pin_Start_Button);
digitalWrite(Pin_Start_LED, varButtonStart);
if ( varButtonStart == LOW ) { VarZaehlen = 1; }
varButtonStop = digitalRead(Pin_Stop_Button);
digitalWrite(Pin_Stop_LED, varButtonStop);
if ( varButtonStop == LOW ) { VarZaehlen = 0;}
varButtonReset = digitalRead(Pin_Reset_Button) + VarZaehlen;
digitalWrite(Pin_Reset_LED, varButtonReset);
if ( varButtonReset == LOW ) { VarDig0 = 0; VarDig1 = 0; VarDig2 = 0; VarDig3 = 0;
}
}
}
void setup() {
// put your setup code here, to run once:
pinMode(Pin_Display_Enable, OUTPUT);digitalWrite(Pin_Display_Enable, 1);
pinMode(Pin_Display_Sel0, OUTPUT);digitalWrite(Pin_Display_Sel0, 0);
pinMode(Pin_Display_Sel1, OUTPUT);digitalWrite(Pin_Display_Sel1, 0);
pinMode(Pin_Start_Button, INPUT_PULLUP);
pinMode(Pin_Stop_Button, INPUT_PULLUP);
pinMode(Pin_Reset_Button, INPUT_PULLUP);
pinMode(Pin_Start_LED, OUTPUT);digitalWrite(Pin_Start_LED, 1);
pinMode(Pin_Stop_LED, OUTPUT);digitalWrite(Pin_Stop_LED, 1);
pinMode(Pin_Reset_LED, OUTPUT);digitalWrite(Pin_Reset_LED, 1);
VarZaehlen = 0;
for (int i = 0; i < 8; i++) {
pinMode(pinArray1[i], OUTPUT);digitalWrite(pinArray1[i], 0);
}
Serial.begin(115200);
delay(1000);
Serial.println("Hello, ESP32!\nIch zähle von 0 bis 9999");
}
void loop() {
// put your main code here, to run repeatedly:
// Zähler 0 - 9999 or Counter 0 - 9999
VarDig0 = VarDig0 + VarZaehlen;
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;
}}}}
Display7Segment (25);
}