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);
pinMode(4, INPUT);
}
long currentTime = 0;
long lastTime = 0;
long toogle7Segment = true;
int num=0;
int r =0;
int state = 0;
void loop() {
currentTime = millis();
Serial.println(r);
if(state = 0){
if(currentTime-lastTime>=1000){
lastTime = currentTime;
if(digitalRead(16) == LOW && digitalRead(16) == LOW){
showSevenSegment(0,toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(1,toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(2,toogle7Segment);
}if(digitalRead(16) == HIGH && digitalRead(16) == HIGH){
showSevenSegment(3,toogle7Segment);
}
if(r == 3){
state = 1;
}
r++;
toogle7Segment = !toogle7Segment;
}
}
else if(state = 1){
if(currentTime-lastTime>=2000){
lastTime = currentTime;
if(digitalRead(16) == LOW && digitalRead(16) == LOW){
showSevenSegment(0,!toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(1,!toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(2,!toogle7Segment);
}if(digitalRead(16) == HIGH && digitalRead(16) == HIGH){
showSevenSegment(3,!toogle7Segment);
}
r++;
toogle7Segment = !toogle7Segment;
}
}
else if(state = 2){
if(currentTime-lastTime>=300){
lastTime = currentTime;
if(digitalRead(16) == LOW && digitalRead(16) == LOW){
showSevenSegment(0,toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(1,toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(2,toogle7Segment);
}if(digitalRead(16) == HIGH && digitalRead(16) == HIGH){
showSevenSegment(3,toogle7Segment);
}
r++;
toogle7Segment = !toogle7Segment;
}
}
else if(state = 3){
if(currentTime-lastTime>=1000){
lastTime = currentTime;
if(digitalRead(16) == LOW && digitalRead(16) == LOW){
showSevenSegment(0,!toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(1,!toogle7Segment);
}if(digitalRead(16) == LOW && digitalRead(16) == HIGH){
showSevenSegment(2,!toogle7Segment);
}if(digitalRead(16) == HIGH && digitalRead(16) == HIGH){
showSevenSegment(3,!toogle7Segment);
}
r++;
toogle7Segment = !toogle7Segment;
}
}
else if(r>12) r=0;
}
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
}
}