void setup() {
Serial.begin(115200);
Serial.println("Hello, ESP32!");
pinMode(17, OUTPUT); //A
pinMode(5, OUTPUT); //B
pinMode(18, OUTPUT); //C
pinMode(19, OUTPUT); //D
pinMode(21, OUTPUT); //E
pinMode(22, OUTPUT); //G
pinMode(23, OUTPUT); //F
//switch
pinMode(16, INPUT_PULLUP);
}
long currentTime = 0;
long lastTime = 0;
long toogle7Segment = true;
int num=0;
void loop() {
currentTime = millis();
if(currentTime-lastTime>=500){
lastTime = currentTime;
if(digitalRead(16) == HIGH){
num=0;
showSevenSegment(num,toogle7Segment);
}
else{
if(num<=15){
showSevenSegment(num,true);
num++;
}
else{
num=1;
showSevenSegment(num,true);
num++;
}
}
toogle7Segment = !toogle7Segment;
}
}
void showSevenSegment(int num,bool status){
if(status == true){
if(num==0){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, LOW); //G
digitalWrite(23, HIGH); //F
}
if(num==1){
digitalWrite(17, LOW); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, LOW); //D
digitalWrite(21, LOW); //E
digitalWrite(22, LOW); //G
digitalWrite(23, LOW); //F
}
if(num==2){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, LOW); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, LOW); //F
}
if(num==3){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, LOW); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, LOW); //F
}
if(num==4){
digitalWrite(17, LOW); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, LOW); //D
digitalWrite(21, LOW); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==5){
digitalWrite(17, HIGH); //A
digitalWrite(5, LOW); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, LOW); //E
digitalWrite(22, HIGH); //G
digitalWrite(23,HIGH); //F
}
if(num==6){
digitalWrite(17, HIGH); //A
digitalWrite(5, LOW); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==7){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, LOW); //D
digitalWrite(21, LOW); //E
digitalWrite(22, LOW); //G
digitalWrite(23, LOW); //F
}
if(num==8){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==9){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, LOW); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==10){
digitalWrite(17, HIGH); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, LOW); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==11){
digitalWrite(17, LOW); //A
digitalWrite(5, LOW); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==12){
digitalWrite(17, HIGH); //A
digitalWrite(5, LOW); //B
digitalWrite(18, LOW); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, LOW); //G
digitalWrite(23, HIGH); //F
}
if(num==13){
digitalWrite(17, LOW); //A
digitalWrite(5, HIGH); //B
digitalWrite(18, HIGH); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, LOW); //F
}
if(num==14){
digitalWrite(17, HIGH); //A
digitalWrite(5, LOW); //B
digitalWrite(18, LOW); //C
digitalWrite(19, HIGH); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
if(num==15){
digitalWrite(17, HIGH); //A
digitalWrite(5, LOW); //B
digitalWrite(18, LOW); //C
digitalWrite(19, LOW); //D
digitalWrite(21, HIGH); //E
digitalWrite(22, HIGH); //G
digitalWrite(23, HIGH); //F
}
}
else{
digitalWrite(17, LOW); //A
digitalWrite(5, LOW); //B
digitalWrite(18, LOW); //C
digitalWrite(19, LOW); //D
digitalWrite(21, LOW); //E
digitalWrite(22, LOW); //G
digitalWrite(23, LOW); //F
}
}