const int digit1Pin = 8;
const int digit2Pin = 9;
const int segmentPins[] = {1, 2, 3, 4, 5, 6, 7, 0};
const byte digits[] = {
B11000000, // 0
B11111001, // 1
B10100100, // 2
B10110000, // 3
B10011001, // 4
B10010010, // 5
B10000010, // 6
B11111000, // 7
B10000000, // 8
B10010000, // 9
};
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) {
// Matikan semua digit
digitalWrite(digit1Pin, LOW);
digitalWrite(digit2Pin, LOW);
// Tampilkan angka pada segmen-segmen yang sesuai
for (int i = 0; i < 8; i++) {
if (bitRead(digits[number], i)) {
digitalWrite(segmentPins[i], HIGH);
} else {
digitalWrite(segmentPins[i], LOW);
}
}
// Aktifkan digit yang sesuai
digitalWrite(digitPin, HIGH);
}