#define BUTTON_PIN 2
int counter = 0;
unsigned long lastPressTime = 0;
bool buttonState = false;
bool lastButtonState;
byte sevenSegment[] = {
0x3F, // 0
0x06, // 1
0x5B, // 2
0x4F, // 3
0x66, // 4
0x6D, // 5
0x7D, // 6
0x07, // 7
0x7F, // 8
0x6F, // 9
0x77, // A
0x7C, // b
0x58, // C
0b01011110, // d
0x79, // E
0x71 // F
};
int segmentPins[] = {3, 4, 5, 6, 7, 8, 9};
void setup() {
pinMode(BUTTON_PIN, INPUT);
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
displayNumber(counter);
}
void loop() {
bool currentButtonState = digitalRead(BUTTON_PIN);
if (currentButtonState != lastButtonState && currentButtonState == HIGH && buttonState == false) {
lastPressTime = millis();
counter++;
if (counter > 15) {
counter = 0;
}
displayNumber(counter);
buttonState = true;
}
if (currentButtonState == HIGH && buttonState == true) {
if (millis() - lastPressTime >= 500) {
counter++;
if (counter > 15) {
counter = 0;
}
displayNumber(counter);
lastPressTime = millis();
}
}
// Butondan el çekildiğinde
if (currentButtonState == LOW && buttonState == true) {
buttonState = false;
counter++;
if (counter > 15) {
counter = 0;
}
displayNumber(counter);
}
lastButtonState = currentButtonState;
delay(50);
}
void displayNumber(int num) {
byte segments = sevenSegment[num];
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], (segments & (1 << i)) ? HIGH : LOW);
}
}