Arduino LED yakma devresi

Örnek 04 / 04
Soru:

Bir buton kullanarak LED'i kontrol etmek istiyorsunuz. Butona basıldığında LED yansın, buton bırakıldığında LED sönsün. Devre şeması aşağıdaki gibidir:

  • LED, 220Ω direnç ile seri bağlanmış ve Arduino'nun dijital pim 8'ine bağlanmıştır.
  • Buton, bir ucu 5V'a, diğer ucu ise 10kΩ bir çek-down (pull-down) direnci üzerinden GND'ye ve aynı noktadan Arduino'nun dijital pim 2'sine bağlanmıştır.

Bu devreye uygun Arduino kodunu yazınız.

Çözüm:

💡 Bu soruda, bir GİRİŞ (INPUT) piminin durumunu okuyup, buna göre bir ÇIKIŞ (OUTPUT) pimini kontrol edeceğiz. Buton basılı değilken, pim 2'ye çek-down direnci sayesinde GND (LOW) bağlanır. Butona basıldığında ise pim 2'ye 5V (HIGH) bağlanır. Biz de bu durumu okuyup LED'i yakarız.

  • ➡️ Adım 1 - Kurulum (setup): LED için pim 8'i OUTPUT, buton için pim 2'yi INPUT olarak tanımlıyoruz. Buton pimi için harici bir pull-down direnci kullandığımız için INPUT_PULLUP kullanmıyoruz.
  • ➡️ Adım 2 - Buton Durumunu Oku: loop() fonksiyonu içinde, sürekli olarak butonun bağlı olduğu pim 2'nin durumunu digitalRead(2) komutu ile okuyoruz.
  • ➡️ Adım 3 - Karar Ver ve LED'i Kontrol Et: Okunan değer HIGH ise (yani butona basılıyorsa), digitalWrite(8, HIGH) komutu ile LED'i yakıyoruz. Aksi takdirde (LOW), digitalWrite(8, LOW) komutu ile LED'i söndürüyoruz.

✅ Bu mantığa göre yazılan kod aşağıdaki gibidir:

void setup() {
  pinMode(8, OUTPUT); // LED bir ÇIKIŞ'tır
  pinMode(2, INPUT); // Buton bir GİRİŞ'tir
}

void loop() {
  int butonDurumu = digitalRead(2); // Butonun durumunu oku
  if (butonDurumu == HIGH) {
    digitalWrite(8, HIGH); // Butona basılıyorsa LED'i YAK
  } else {
    digitalWrite(8, LOW); // Butona basılı değilse LED'i SÖNDÜR
  }
}

1 2 3 4
Konuya Geri Dön: