const int buttonPin = 2; // Butonun bağlı olduğu pin
const int redLEDPin = 9; // Kırmızı LED'in bağlı olduğu pin
int buttonState = 0; // Butonun mevcut durumu
int lastButtonState = 0; // Butonun önceki durumu
bool ledState = false; // LED'in durumu (açık veya kapalı)
unsigned long lastDebounceTime = 0; // Son sarsıntı (debounce) zamanı
unsigned long debounceDelay = 50; // Sarsıntı süresi (ms)
void setup() {
pinMode(buttonPin, INPUT);
pinMode(redLEDPin, OUTPUT);
digitalWrite(redLEDPin, LOW); // Başlangıçta LED kapalı
}
void loop() {
int reading = digitalRead(buttonPin);
// Buton durumunda bir değişiklik oldu mu?
if (reading != lastButtonState) {
lastDebounceTime = millis(); // Zamanı kaydet
}
if ((millis() - lastDebounceTime) > debounceDelay) {
// Okuma durumunda bir değişiklik olduysa, bu durumu sakla
if (reading != buttonState) {
buttonState = reading;
// Sadece buton HIGH olduğunda (basıldığında) işlem yap
if (buttonState == HIGH) {
ledState = !ledState; // LED durumunu değiştir
digitalWrite(redLEDPin, ledState ? HIGH : LOW); // LED'i aç/kapat
}
}
}
lastButtonState = reading; // Mevcut buton durumunu sakla
}