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:
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.
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.loop() fonksiyonu içinde, sürekli olarak butonun bağlı olduğu pim 2'nin durumunu digitalRead(2) komutu ile okuyoruz.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
}
}