#define SAVEN_A 12
#define SAVEN_B 14
#define SAVEN_C 25
#define SAVEN_D 26
#define SAVEN_E 27
#define SAVEN_F 32
#define SAVEN_G 33
#define SAVEN_DP 13
#define PUSHBUTTON 4
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(SAVEN_A, OUTPUT);
pinMode(SAVEN_B, OUTPUT);
pinMode(SAVEN_C, OUTPUT);
pinMode(SAVEN_D, OUTPUT);
pinMode(SAVEN_E, OUTPUT);
pinMode(SAVEN_F, OUTPUT);
pinMode(SAVEN_G, OUTPUT);
pinMode(SAVEN_DP, OUTPUT);
pinMode(PUSHBUTTON, INPUT);
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, HIGH);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, LOW);
}
void loop() {
// put your main code here, to run repeatedly:
static int currentDigit = 0;
if (digitalRead(PUSHBUTTON) == LOW) {
delay(160);
if (digitalRead(PUSHBUTTON) == LOW) {
if (currentDigit == 0) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 1) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 2) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 3) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 4) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 5) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 6) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 7) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 8) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
} else if (currentDigit == 9) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
digitalWrite(SAVEN_DP, LOW);
}
currentDigit = (currentDigit + 1) % 10;
if (currentDigit == 0) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, HIGH);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, LOW);
} else if (currentDigit == 1) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
} else if (currentDigit == 2) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, LOW);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, HIGH);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 3) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 4) {
digitalWrite(SAVEN_A, LOW);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 5) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 6) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, LOW);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, HIGH);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 7) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, LOW);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, LOW);
digitalWrite(SAVEN_G, LOW);
} else if (currentDigit == 8) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, HIGH);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, HIGH);
} else if (currentDigit == 9) {
digitalWrite(SAVEN_A, HIGH);
digitalWrite(SAVEN_B, HIGH);
digitalWrite(SAVEN_C, HIGH);
digitalWrite(SAVEN_D, HIGH);
digitalWrite(SAVEN_E, LOW);
digitalWrite(SAVEN_F, HIGH);
digitalWrite(SAVEN_G, HIGH);
}
while (digitalRead(PUSHBUTTON) == LOW) {
}
delay(160); // this speeds up the simulation
}
}
}