Butonla LED Kontrolü: Dijital Giriş

Arduino sadece çıkış vermez, dışarıdan bilgi de okur. Buton ile dijital giriş okumayı, pull-up direncini ve if-else yapısını devrede uygulayın.

Butonla LED Kontrolü: Dijital Giriş

Giriş ve çıkış

Önceki projelerde pinleri çıkış olarak kullandık. Bu projede bir pini giriş yaparak butonun basılı olup olmadığını okuyacağız.

Malzemeler

  • Arduino UNO, breadboard, jumper kablolar
  • 1 adet push buton
  • 1 adet LED ve 220 ohm direnç

Pull-up direnci neden gerekli?

Hiçbir yere bağlı olmayan bir giriş pini "havada" kalır ve rastgele değerler okur. Arduino'nun içinde bu sorunu çözen bir direnç vardır: INPUT_PULLUP. Bu ayarla pin normalde HIGH okur; buton basılıp pini GND'ye bağladığında LOW okur.

Bağlantı

  • Butonun bir ucu 2. pine, diğer ucu GND'ye
  • LED direnç üzerinden 8. pine, kısa bacağı GND'ye

Kod

// Codebil Campus - Proje 3: Butonla LED
// Buton basılıyken LED yanar. Dahili pull-up direnci kullanılır.
const int BUTON = 2;
const int LED = 8;
void setup() {
  pinMode(BUTON, INPUT_PULLUP);  // basılı değilken HIGH, basılıyken LOW okur
  pinMode(LED, OUTPUT);
}
void loop() {
  if (digitalRead(BUTON) == LOW) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

Dikkat: ters mantık

INPUT_PULLUP kullanıldığında "basılı" durumu LOW olarak okunur. Başlangıçta ters gibi gelse de bu yöntem ek bir direnç takmadan kararlı bir devre kurmayı sağlar.

Geliştir: aç-kapa düğmesi

Şu an LED sadece buton basılıyken yanıyor. Bir değişken kullanarak her basışta LED'in durumunu değiştirin: bir basışta yansın, bir sonrakinde sönsün. İpucu: bool ledAcik = false;

Konuyu pekiştir

3 soruluk kısa test. Bir seçeneğe dokunduğunuzda doğru cevap ve açıklaması görünür.

0 / 3 cevaplandı
  1. INPUT_PULLUP ayarlı bir pinde buton basılıyken hangi değer okunur?

  2. Hiçbir yere bağlı olmayan giriş pininin sorunu nedir?

  3. Buton durumunu okumak için hangi komut kullanılır?

Aynı dersten diğer konular

Tüm konular