const int butonPin = 2; // Butonun bağlı olduğu pin numarası
const int ledPin = 13;  // Ledin bağlı olduğu pin numarası
bool butonDurum = LOW;  // Buton durumu, varsayılan olarak basılı değil

void setup() {
  pinMode(butonPin, INPUT_PULLUP);  // Buton pinini input_pullup olarak ayarla
  pinMode(ledPin, OUTPUT);   // Led pinini çıkış olarak ayarla
}

void loop() {
  if (digitalRead(butonPin) == LOW) { // Buton basıldığında
    butonDurum = !butonDurum; // Buton durumunu tersine çevir
    delay(10); // Debouncing için kısa bir gecikme ekle
  }

  if (butonDurum == HIGH) { // Eğer buton basılıysa
    int basmaSuresi = butonuBasmaSuresi(); // Butonun basılı kaldığı süreyi al
    if (basmaSuresi >= 3000) { // Eğer buton 3 saniye veya daha uzun süre basılı kaldıysa
      digitalWrite(ledPin, HIGH); // Ledi yak
    } else {
      digitalWrite(ledPin, LOW); // Ledin yanışını iptal et
    }
  } else {
    digitalWrite(ledPin, LOW); // Buton basılmadığında ledi kapat
  }
}

int butonuBasmaSuresi() {
  int baslangicZamani = millis(); // Başlangıç zamanını kaydet
  while (digitalRead(butonPin) == LOW) {} // Buton serbest bırakılıncaya kadar bekle
  int bitisZamani = millis(); // Bitiş zamanını kaydet
  return bitisZamani - baslangicZamani; // Butonun basılı kaldığı süreyi hesapla ve döndür
}


Categories:

Tags:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dersler