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