const int digit1Pin = 8;
const int digit2Pin = 9;
const int segmentPins[] = {1, 2, 3, 4, 5, 6, 7, 0};
const byte digits[] = {
B11000000,
B11111001,
B10100100,
B10110000,
B10011001,
B10010010,
B10000010,
B11111000,
B10000000,
B10010000,
};
void setup() {
pinMode(digit1Pin, OUTPUT);
pinMode(digit2Pin, OUTPUT);
for (int i = 0; i < 8; i++) {
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
for (int i = 9999; i >= 0; i--) {
displayNumber(digit1Pin, i / 1000);
delay(5);
displayNumber(digit2Pin, (i / 100) % 10);
delay(5);
}
}
void displayNumber(int digitPin, int number) {
digitalWrite(digit1Pin, LOW);
digitalWrite(digit2Pin, LOW);
for (int i = 0; i < 8; i++) {
if (bitRead(digits[number], i)) {
digitalWrite(segmentPins[i], HIGH);
}else {
digitalWrite(segmentPins[i], LOW);
}
}
digitalWrite(digitPin, HIGH);
}