// Shift register pinleri
const int dataPin = 11; // DS
const int latchPin = 9; // STCP
const int clockPin = 8; // SHCP
// Segmentleri temsil eden bit dizisi (0-9)
const byte digitCodes[] = {
0b00111111, // 0
0b00000110, // 1
0b01011011, // 2
0b01001111, // 3
0b01100110, // 4
0b01101101, // 5
0b01111101, // 6
0b00000111, // 7
0b01111111, // 8
0b01101111 // 9
};
// Sayaç değişkeni
int counter = 0;
void setup() {
// Pin modlarını ayarla
pinMode(dataPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
}
void loop() {
int tens = counter / 10; // Onlar basamağı
int ones = counter % 10; // Birler basamağı
displayNumber(tens, ones); // Sayıyı display'lerde göster
delay(1000); // 1 saniye bekle
counter++; // Sayacı artır
if (counter > 99) { // Sayaç 99'u geçerse sıfırla
counter = 0;
}
}
// Sayıyı 7 segment display'lerde gösteren fonksiyon
void displayNumber(int tens, int ones) {
digitalWrite(latchPin, LOW);
// Onlar basamağını shift register 2'ye gönder
shiftOut(dataPin, clockPin, MSBFIRST, digitCodes[tens]);
// Birler basamağını shift register 1'e gönder
shiftOut(dataPin, clockPin, MSBFIRST, digitCodes[ones]);
digitalWrite(latchPin, HIGH); // Veriyi latche yükle
}