logo
Kontrol Yapıları
Kontrol yapıları bir şartın doğru olup olmadığını kontrol ederek doğru olduğu sürece bir takım işlemler, doğru olmadığı sürece ise başka işlemler yapmamıza yardımcı olur. İki adet kontrol yapısı vardır. Bunlar; 1- if - else yapısı 2- switch - case yapısıdır. 1- if - else Yapısı : if - else yapısı bir karşılaştırma sonucunda dönen değerin doğru olması durumunda if (eğer) parantezi içerisindeki değerin, yanlış olması durumunda else (değilse) parantezi içerisindeki değerin çalışmasını sağlar. Örnek;

if (i < 3) { // eğer i değişkeni 3'ten küçükse
    digitalWrite(2, HIGH); // 2 numaralı dijital çıkışı 1 yap
  }
  else { // değilse 
    digitalWrite(2, LOW); // 2 numaralı dijital çıkışı 0 yap
  }
else yapısı isteğe bağlı olarak kullanılabilir. Yani else kısmını kullanmadan da kontrol sağlayabiliriz. Bu kontrol yapımızda birde else if yapımız var ki aynı yapı üzerinde birden fazla sorgu yaparak çalışabiliriz. Örnek;

if (i < 3) { // i değşikeni 3'den küçük ise
    digitalWrite(2, HIGH); // 2 numaralı dijital çıkışı 1 yap

  }
  else if (i == 3) { //değilse i değişkeni 3'e eşitse
    digitalWrite(3,HIGH);  // 3 numaralı dijital çıkışı 1 yap

  }
  else {// yukarıdakilerin hiçbiri değilse
    digitalWrite(4, HIGH); // 4 numaralı dijital çıkışı 1 yap
}
switch - case Yapısı : switch - case yapısı switch alanında belirtilen değişken değerini her bir case yapısındaki değerle karşılaştırır. karşılaştırma sonucunda eşitlik sağlanan case alanındaki kod çalıştırılır ve karşılaştırma break komutuyla sona erer. Eğer case değerlerinde eşitlik sağlanmamışsa, default kapsamındaki kodlar çalıştırılır. Örnek;

int i = 3;
  switch (i) { // i değişkeninin değerini hafızada tut
    case 1: // i değişkeni değeri 1 ise
      digitalWrite(1, HIGH); // 1 numaralı dijital çıkışı 1 yap
      break; // kontrolü sonlandır
    case 2: // i değişkeni değeri 2 ise
      digitalWrite(2, HIGH); // 2 numaralı dijital çıkışı 1 yap
      break; // kontrolü sonlandır
    case 3: // i değişkeni değeri 3 ise
      digitalWrite(4, HIGH); // 4 numaralı dijital çıkışı 1 yap
      break; // kontrolü sonlandır
    default: // yukarıdaki şartların hiçbirinde eşitlik sağlanmazsa
      digitalWrite(5, HIGH); // 5 numaralı dijital çıkışı 1 yap
      break; // kontrolü sonlandır
  }
switch - case yapısında default kısmı isteğe bağlı olarak kullanılmayabilir. Şimdi bir buton kullanarak led yakma uygulamamızı yapalım. Biz butona bastığımız sürece ledimiz yansın, butondan elimizi çekince ledimiz sönsün. Program kodları aşağıdaki gibi olacaktır.

void setup() {
  pinMode(2, OUTPUT);  // 2 numaralı pin çıkış ayarlandı
  pinMode(3, INPUT);  // 3 numaralı pin giriş ayarlandı
}

void loop() {
  if (digitalRead(3) == 1) { // eğer 3 numaralı girişte +5V varsa
    digitalWrite(2, HIGH); // 2 numaralı çıkışı Lojik 1 (+5V) yap
  } else { // değilse
    digitalWrite(2, LOW); // 2 numaralı çıkışı Lojik 0 (0V) yap
  }
}
Devremizin şeması ise aşağıdaki gibi olacaktır;
Yukarıdaki devrede 330 ohm direnç ile led seri bağlanmıştır. Bunun sebebi ise bizim ledimiz 2V ile çalışıyor olmasıdır. Butona ise 1K değerindeki direnç Pull-Down şeklinde bağlanmıştır. Bunun sebebi ise elimizi butondan çekince pinimizin GND değerini görmesidir. Bazı mikrodenetleyiciler boş olan pini +5V değerinde algılamaktadır. Pull-Down bağlantı şeklinde butona basmadığımız sürece giriş 0V olacaktır.
  • Yazar Samet Karaca
  • Son Ders Ekleme Tarihi 14.05.2017
  • Görüntülenme 433
  • Kategorideki diğer Dersleri Arduino
  • Facebook Twitter Google Plus Freelyshout Youtube Web Site

0% YARARLI

Kategoriler