Butona 3 saniye basınca LED’i yakan Arduino kodu
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
}