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
}


Benzer Temrinler & Yazılar

  • |

    ARDUİNO İLE PARK SENSÖRÜ YAPAMI

    https://youtu.be/z5Z8c2HNMo0     const int trig = 12; const int echo = 11; const int buzer = 2; long sure; int uzaklik; void setup() {  pinMode(trig, OUTPUT);  pinMode(echo, INPUT);  pinMode(buzer, OUTPUT);  Serial.begin(9600); } void loop() {  digitalWrite(buzer, 1);  delay(5 * uzaklik);  digitalWrite(buzer, 0);  delay(5 * uzaklik);  digitalWrite(trig, 0);  delayMicroseconds(10);  digitalWrite(trig, 1);  delayMicroseconds(10);  sure = pulseIn(echo,…

  • nRF24L01+ modülü test etme

    Verici kodu #include <SPI.h> // nRF24L01+ ile SPI iletişim. #include <RF24.h> // v1.4.2 RF24 radio(7, 8); // radio isimli nesne oluştur. CE ve CSN pinleri. void setup() {  Serial.begin(9600); // Hataları seri monitörde görebilmek için seri iletişimi başlat.  if (!radio.begin()) { // nRF24L01+’yı başlat.    Serial.println(“nRF24L01+ bağlantıları yanlış veya temazsızlık var. nRF24L01+ bozulmuş olabilir.”); //nRF24L01+ modülü…

  • ew

    A Summary of Rules and Guidelines for Waves From a theoretical standpoint, we must be careful not to confuse Elliott waves with their measures, which are as a thermometer is to heat. A thermometer is not designed to gauge rapid short-term fluctuations in air temperature and neither is an index of 30 stocks constructed so…

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.