const int digit1Pin = 8;
const int digit2Pin = 9;
int M = 13;
int K = 12;
int H = 11;
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);
pinMode(M, OUTPUT);
pinMode(K, OUTPUT);
pinMode(H, OUTPUT);
for (int i = 0; i < 8; i++){
pinMode(segmentPins[i], OUTPUT);
}
}
void loop() {
digitalWrite(M, HIGH);
for (int i = 9000; i >= 0; i--){
displayNumber(digit1Pin, i / 1000);
delay(2);
displayNumber(digit2Pin, (i / 100) % 10);
delay(2);
}
digitalWrite(M, LOW);
digitalWrite(K, HIGH);
for (int i = 3000; i >= 1; i--){
displayNumber(digit1Pin, i / 1000);
delay(2);
displayNumber(digit2Pin, (i / 100) % 10);
delay(2);
}
digitalWrite(K, LOW);
digitalWrite(H, HIGH);
for (int i = 6000; i >= 0; i--){
displayNumber(digit1Pin, i / 1000);
delay(2);
displayNumber(digit2Pin, (i / 100) % 10);
delay(2);
}
digitalWrite(H, LOW);
}
void displayNumber(int digitPin, int number) {
// Matikan semua digit
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);
}