Arduino ile Buton Kontrolü

Güncelleme 20/03/2020

Arduino programında const int veri tipinde butonun bağlı olduğu 12.pini butonPin olarak, LED’in bağlı olduğu 13.pini ledPin olarak isimlendirdik. Bundan böyle tüm program içerisinde butonPin etiketini 12.pin yerine, ledPin etiketini 13.pin yerine kullanmak istediğimizi söylüyoruz.

void loop() kısmında yazılan if……else komutları bir koşul söz konusu olduğunda kullanılır. Arduinoya butona basılırsa LED’i yak, basılmazsa söndür diyebilmek için bu komutlar kullanılır.
Devrede Pull-Down direnci kullanıldığından dolayı butona basılmadığı sürece Arduinonun 12.pini Lojik0(LOW) konumunda tutulur.
Butona basıldığı anda 12.pine enerji gider Lojik1(HIGH) olur. Arduino bunu digitalRead komutuyla algılar ve if şartı sağlanır, LED’in bağlı olduğu 13.pine digitalWrite komutuyla enerji gönderir. 13.pin Lojik1(HIGH) olur, LED yanar.

Butondan elinizi çektiğinizde Arduinonun buton bağlı olan 12.pinine enerji gitmez Lojik0(LOW) olur. İf şartı sağlanmadığından else’den sonraki komut çalıştırılır. digitalWrite komutuyla 13.pine bağlı olan LED’in enerjisi kesilir, Lojik0(LOW) olur ve LED söner. else komutuyla if ile belirtilen şart sağlanmadığında, başka bir durum söz konusu olduğunda yapılacak şey yazılır.

Bu uygulamada Pull-Down direnci kullanarak butonu bağladık. Yani butona basılmadığı sürece Arduinonun 12 nolu pini Lojik0 konumunda tutuluyor, butona basılınca 12 nolu pine Lojik1 bilgisi gidiyor. Pull-Up direnci kullanarak buton bağlantısını yaparsak Hem devre şemasında hem de Arduino programında küçük değişiklikler yapmamız gerekir.

Devre Şeması:

buton pull down

Arduino programında değişmesi gereken sadece if (butonDurumu == LOW) komutudur. Çünkü Pull-up direnci kullanarak yapılan buton bağlantısında butona basılmadığı sürece Arduinonun 12 nolu pini Lojik1 konumunda tutuluyor. Butona basılınca 12 nolu pine Lojik0 bilgisi gidiyor, bizde bunu if komutuyla sorguluyoruz.

Eğer 12 nolu pin Lojik0(LOW) olduysa butona basılmış demektir. LED’i yak, değilse butona basılmamıştır LED’i söndür.

Arduino Programı:

// Buton ile LED kontrolü. Buton pull-down dirençle bağlı
const int butonPin = 12;   // buton bağlanan pini isimlendir.
const int LEDPin =  11;   // LED bağlanan pini isimlendir.

int butonDurumu;  
// butona basılıp basılmadığını okuduktan sonra kaydetmek için değişken tanımla. 

void setup() {
  
  pinMode(LEDPin, OUTPUT);    // LED bağlanan pini çıkış olarak ayarla.
  
  pinMode(butonPin, INPUT);   // buton bağlanan pini giriş olarak ayarla.
}

void loop() {
 
  butonDurumu = digitalRead(butonPin);  
  // butona basılıp basılmağını okuyup sonucu butonDurumu değişkenine kaydet.
  
  if (butonDurumu == HIGH) {    
  // butona basıldı mı? basıldıysa butonDurumu lojik1 olur.
    
     digitalWrite(LEDPin, HIGH);   // butona basıldıysa LED'i yak.
  } 
  else {                           // basılmadıysa!
   
    digitalWrite(LEDPin, LOW);     // LED'i söndür.
  }
}

Yazar: Ali Celal

5f59ca35fd9ac7f00cde62f0b0cd0d07?s=90&d=blank&r=g- Elektronik Mühendisi
- E.Ü. Tıp Fakültesi Kalibrasyon Sorumlusu Test kontrol ve kalibrasyon sorumlu müdürü (Sağ.Bak. ÜTS)
- X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.)
- Usta Öğretici (MEB)
- Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin