Arduino ile Buton ve Led Kontrolü (IF-ELSE Yapısı)

Güncelleme tarihi: 2 May 2020

Bu uygulamamızda Arduino kartımıza bağladığımız bir butonu dijital olarak okuyup, gelen veriye göre LED imizin yanıp sönmesini sağlayacağız. Bu işlemi yaparken çoğu programlama dilinde en çok kullanılan yapılardan olan IF-ELSE yapısını kullanacağız. Bu uygulamada kullanacağımız malzemelerimiz;


  • Arduino UNO

  • 5mm LED

  • 220R veya 330R Direnç

  • Push Buton

  • 10K Direnç

  • Jumper Kablolar (E-E)

  • Breadboard




Devremizi bu şemaya göre kurup bağlantılarımızı yapıyoruz.


Kodumuza geçmeden önce IF-ELSE(EĞER-DEĞİLSE) yapısının nasıl çalıştığına bakalım. IF-ELSE yapısını bir koşul belirteci olarak düşünebilirsiniz. Tasarladığınız sistemin hangi durumlarda çalışıp çalışmayacağını bu yapıyı kullanarak belirtebilirsiniz.


Öncelikle dikkat edilmesi istenen koşul durumumuzu “if” (EĞER) parantezi içinde belirtmemiz gerekiyor. Bu parantez içinde bir sorgulama işlemi yaratıyoruz. Yani;

if (butondurum==1) { 
digitalWrite(13,HIGH);    }

şeklinde bir ifade gördüğümüz zaman bunun anlamı; “butondurum değişkenimizin değeri 1 e eşit mi?” demektir.


Eğer bu sorumuzun cevabı evet ise yani koşul sağlanıyorsa, if bloğuna ait olan küme parantezi içinde yazılan kodlar geçerli olacak ve bu kısım çalışarak 13 dijital pinine HIGH (1) (5V) değerini gönderecektir.

else {
digitalWrite(13,LOW);    }

Sorumuzun cevabı hayır ise yani koşul sağlanmıyorsa, bu durumda else bloğuna ait olan küme parantezi içinde yazılan kodlar geçerli olacak ve bu kısım çalışarak 13 dijital pinine LOW (0) (0V) değerini gönderecektir.


Bu örnekte dijital bir işlem yaptığımız için sadece 2 durumlu bir ihtimalimiz var. Farklı durumlarda birden fazla ihtimal için birden fazla if yapısı kurabilirsiniz. Aynı koşula bağlı else durumu ise yalnızca 1 tane olabilir. Else durumu belirttiğiniz koşul dışında kalan tüm durumları kapsar.

Şimdi uygulama kodumuzun tamamına bakalım.


int buton = 2; // integer (tamsayı) tipinde buton değişkeni tanımlandı ve değeri 2 olarak belirlendi.
int butondurum;// integer (tamsayı) tipinde butondurum değişkeni tanımlandı.
int led = 13;// integer (tamsayı) tipinde led değişkeni tanımlandı ve değeri 13 olarak belirlendi.

void setup() {
  Serial.begin(9600); // Seri haberleşme protokolü başlatıldı.
  pinMode(led, OUTPUT); // led değişkeni yani 13 numaralı pin ÇIKIŞ olarak tanımlandı.
  pinMode(buton, INPUT);  // buton değişkeni yani 2 numaralı pin GİRİŞ olarak tanımlandı.
}

void loop() {
  butondurum = digitalRead(buton);  // buton değişkeni yani 2 numaralı pin dijital olarak okunarak gelen değer butondurum değişkenine eşitlendi.
  Serial.println(butondurum); // butondurum değişkeni seri monitor ekranına yazdırıldı.
  delay(100); // 100ms gecikme uygulandı.

  // IF-ELSE Döngüsü sürekli olarak butonun basılı olup olmadığını kontrol ediyor.
  // Eğer buton basılır ve 1 değeri gelirse led değişkenine bağlı 13 numaralı pine HIGH değeri gönderilecek.
  // Eğer buton basılmaz ve 0 değeri gelirse led değişkenine bağlı 13 numaralı pine LOW değeri gönderilecek.
  if ( butondurum == 1) {
    digitalWrite(led, HIGH);
  }
  else {
    digitalWrite(led, LOW);
  }
}

Projenizi yaparken karşılaştığınız problemleri yorumlar kısmında belirtirseniz ekibimiz en kısa sürede size yardımcı olacaktır

Son Paylaşımlar