// Pin bağlantıları
const int buttonPin = 2;
const int segmentPins[] = {3, 4, 5, 6};
// 7 segment göstergenin rakam değerleri
const byte segmentData[] = {
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, d, E, F
B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000,
B11111110, B11110110
};
int buttonState = 0;
int counter = 0;
void setup() {
// Dijital pinleri ayarla
pinMode(buttonPin, INPUT_PULLUP);
for (int i = 0; i < 4; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// Başlangıç değeri olarak 0'ı göster
displayNumber(0);
}
void loop() {
// Buton durumunu kontrol et
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) { // Butona basıldığında
delay(50); // Buton debounce
if (buttonState == LOW) { // Buton hala basılı durumdaysa
// 500ms'lik aralıklarla sayıyı artır
while (buttonState == LOW) {
counter++;
if (counter > 9) {
counter = 0;
}
displayNumber(counter);
delay(500);
buttonState = digitalRead(buttonPin);
}
}
}
}
void displayNumber(int number) {
// 7 segment göstergede rakamı göstermek için ilgili segmentleri aç/kapa
for (int i = 0; i < 4; i++) {
if (bitRead(segmentData[number], i)) {
digitalWrite(segmentPins[i], HIGH);
} else {
digitalWrite(segmentPins[i], LOW);
}
}
}