If-Else Komutları ve Çalışma Mantığı

If-Else komutları, bir devreyi yönetebilmek için en çok kullanılan kalıptır. if ve else programdaki görevlerini anlamları ile karşılasalar da yine de kullanımını ve mantığını anlatmamız gerekiyor. Birçok programlama dilinde karşınıza çıkan if ve else deyimleri bir olayın gerçekleşme durumunu bu komutlar içerisindeki kodlarla gerçekleştiren iki deyimdir. If komutundan sonra açılan parantezler ( ) içerisine gerçekleşmesi beklenen durum yazılır. Bunu günlük hayatımızla şu şekilde ilişkilendirebiliriz. Bir odaya girdiniz eğer oda karanlıksa ışığı açarsınız. Buradaki “eğer oda karanlıksa” kısmı parantezler içerisindeki durumu ifade eder. Durum değerlendirildikten sonra verilecek komutlar da if ‘den sonra gelen küme parantezleri  { } içerisine yazılır. Işığı aç kısmı da burada yer alır. Else durumu ise if komutu içerisinden farklı durumda gerçekleşecek olayları kontrol eder. Odaya girdiğinizde oda aydınlıksa içeri gir şeklinde düşünebiliriz. Else komutuyla vereceğimiz komutları da yine küme parantezleri içerisine yazarız. Basit bir şekilde if ve else komutlarını açıklamaya çalıştım. Yazının devamında arduino ile yapacağımız projelerde if ve else komutlarının mantığı çok işimize yarayacak. Okumaya devam edin 🙂

Proje: Simülasyonlu If-Else Uygulamaları (Buton Kontrollü Led Devresi)

Projemizi online simülasyon sunan bir siteden gerçekleştireceğiz. Yazının sonuna eklediğim videoda devreyi nasıl kurduğumu, kodların nasıl çalıştığını simülasyon ile göstermeye çalıştım. Siz de bu simülasyonu yapabilir ya da devreyi kendiniz kurabilirsiniz.

Projede Kullanılacak Malzemeler:

1 Adet Arduino

4 adet buton

3 adet led (tercihen kırmızı)

4 adet 10K direnç

3 adet 220Ohm direnç

1 adet breadbord

Yeterli sayıda erkek-erkek jumper kablo.

Projenin Amacı:

Bu projede butonları kullanarak butonların durumlarına göre ledlere komut yazma olayı gerçekleştireceğiz. Daha önceki yazılarımızda arduino giriş çıkış fonksiyonlarından bahsetmiştik. Bu yazımızda kodları yazarken bu fonksiyonlardan da faydalanacağız. Yazıyı okumadıysanız linke tıklayıp mutlaka inceleyiniz.

Butonlarla ledleri nasıl kontrol edeceğimizi belirleyelim:

buton1 ismini verdiğimiz butona bastığımız zaman, 3 ledin tamamını yakalım.

buton2 ismini verdiğimiz butona bastığımızda sadece 2 led yakalım.

buton3 ismini verdiğimiz butona bastığımızda sadece 1 led yakalım.

buton 4 ismini verdiğimiz butona bastığımızda ise ledlerin tamamını sırayla yakıp sönmesini sağlayalım.

Öncelikle devremizin bağlantı şeması şekildeki gibi olmalıdır:

arduino-simulasyonu

 

Devre her ne kadar karışıkmış gibi görünse de oldukça basit devreyi kurma aşamalarını şu şekilde anlatayım:

*Öncelikle butonları breadboarda yerleştiriyoruz.

*Butonların bir bacağını 5V’un geldiği kutba bağlıyoruz.

*Buton diğer bacağını pinlerlere bağlıyoruz ve bu pinlerle buton arasına 10K’lık direnç koyuyoruz.(Dirençlerin diğer bacakları toprağa bağlanıyor)

*Daha sonra ledleri breadboarda yerleştiriyoruz.

*Ledlerin anot bacaklarını pinlere bağlıyoruz.

*Ledlerin katot bacaklarını dirençle GND kutba yani (-) kutba bağlıyoruz.

Devreyi bu şekilde kurduktan sonra kodları yazmaya gelelim;

int buton1=2;
int buton2=3;
int buton3=4;
int buton4=5;
int case1,case2,case3,case4;

int led1=8;
int led2=9;
int led3=10;

void setup () {

pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT); // Butonları giriş ledleri çıkış olarak ayarladık
pinMode(5,INPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);



}


void loop() {

case1=digitalRead(buton1);
case2=digitalRead(buton2);
case3=digitalRead(buton3); // case ismindeki olaylara butonların durumunu kaydettik
case4=digitalRead(buton4);
//Sonraki satırlarda butonların durumlarına göre işlemler yaptık //
if(case1==HIGH){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
}


if(case2==HIGH){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
}



if(case3==HIGH){
digitalWrite(led1,HIGH);
}


if(case4==HIGH){

digitalWrite(led1,HIGH);
delay(1000);
digitalWrite(led1,LOW);
delay(1000);

digitalWrite(led2,HIGH);
delay(1000);
digitalWrite(led2,LOW);
delay(1000);

digitalWrite(led3,HIGH);
delay(1000);
digitalWrite(led3,LOW);
delay(1000);



}



}
 

 

Kodlar yukarıda belirtildiği gibi kullanıldığında devre simülasyonu çalışmaktadır. Simülasyonu ve devre kurmayı görmek için videoyu izleyiniz.

(720p izlemenizi tavsiye ederiz)