logo
Samet Karaca    14.05.2017    945 Görüntüleme     Yorum
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; img/dersler/1494728761.png
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
  • Ekleme Tarihi : 14.05.2017
  • Görüntülenme : 945
  • Kategorideki diğer Dersleri : Arduino
  • Facebook Twitter Google Plus Freelyshout Youtube Web Site
Bu Dersi Beğendiniz mi?

0% YARARLI

KATEGORİLER