// Pin untuk mengendalikan 74HC595
const int dataPin = 11; // DS
const int latchPin = 12; // ST_CP
const int clockPin = 13; // SH_CP
// Pola bit untuk angka 0-9 untuk common anoda
const byte digitPatterns[10] = {
0b11000000, // 0
0b11111001, // 1
0b10100100, // 2
0b10110000, // 3
0b10011001, // 4
0b10010010, // 5
0b10000010, // 6
0b11111000, // 7
0b10000000, // 8
0b10010000 // 9
};
// Fungsi untuk mengirim data ke 74HC595
void shiftOutData(byte data1, byte data2) {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, data2);
shiftOut(dataPin, clockPin, MSBFIRST, data1);
digitalWrite(latchPin, HIGH);
}
// Fungsi untuk menampilkan angka pada kedua 7-segment display
void displayNumber(int number) {
int tens = number / 10;
int ones = number % 10;
shiftOutData(digitPatterns[tens], digitPatterns[ones]);
}
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop() {
// Tampilkan angka 00 hingga 99 dengan jeda 1 detik
for (int i = 0; i < 100; i++) {
displayNumber(i);
delay(1000); // Jeda 1 detik
}
}