1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

Arduino ile Switch Case Komutu Uygulaması

Konusu 'Pic Uygulama Ve Devreleri' forumundadır ve guclusat tarafından 23 Nisan 2016 başlatılmıştır.

  1. guclusat
    Online

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.754
    Ödül Puanları:
    48
    Uzun süreden sonra Arduino derslerimize tekrar devam ediyoruz. Bu uygulamada switch case komutuna giriş yapacağız. Switch case komutunu kullanarak bir buton yardımıyla sırayla beş LED'i yakacağız. Beş LED yandıktan sonra tekrar butona bastığımızda bütün LED'leri söndüreceğiz. LED'ler söndükten sonra istersek yine LED'leri sırasıyla yakabileceğiz. Bu programı switch case komutuyla yapmamız kod karmaşasını azaltıp daha basit bir kod yazmamızı sağlayacak. Şimdi devre şemasını hazırlayıp kodu yazmaya başlayalım.

    İlk olarak kullanacağımız malzemelerin listesini yazalım.
    • 1 adet Arduino (Ben bu uygulamada UNO modelini kullandım.)
    • 5 adet 330Ω direnç
    • 1 adet 10kΩ direnç
    • 5 adet LED
    • 1 adet buton
    • Yeterli sayıda kablo
    Breadboard Çizimi :

    switch case.jpg

    Malzemeleri temin ettikten sonra breadboard çizimine bakarak devreyi kendi breadboardumuza kuruyoruz. Kurulumdan sonra breadboardumuzda şöyle bir görüntü elde edeceğiz.

    Fotoğraf-0169.jpg

    Kurulum bittiğine göre şimdi kodu yazmaya başlayabiliriz.

    Kod:
    int buton1 = 8; //pinleri ayarladık.
    int L1 = 9; //pinleri ayarladık.
    int L2 = 10; //pinleri ayarladık.
    int L3 = 11; //pinleri ayarladık.
    int L4 = 12; //pinleri ayarladık.
    int L5 = 13; //pinleri ayarladık.
    
    int buton1kontrol; //buton1kontrol adlı bir değişken atadık.
    int sayma; //sayma adlı bir değişken atadık. Bu değişken butona basma sayımızı hafızasında tutacaktır.
    
    void setup() {
    pinMode(buton1, INPUT); //buton1'i giriş olarak tanımladık
    pinMode(L1, OUTPUT); //L1'i çıkış olarak tanımladık
    pinMode(L2, OUTPUT); //L2'i çıkış olarak tanımladık
    pinMode(L3, OUTPUT); //L3'i çıkış olarak tanımladık
    pinMode(L4, OUTPUT); //L4'i çıkış olarak tanımladık
    pinMode(L5, OUTPUT); //L5'i çıkış olarak tanımladık
    }
    
    void loop() {
      buton1kontrol = 0; //buton1kontrol değişkenini 0'a eşitledik.
      delay(500);
      buton1kontrol = digitalRead(buton1); //dijital olarak okuduğumuz buton1 değerini buton1kontrol değişkenine atadık.
    if(buton1kontrol == HIGH) {
      sayma=sayma+1; //eğer butona basılıysa sayma değişmenini 1 arttırdık.
    
    }
    switch(sayma)
    {
      case 1: digitalWrite(L1, HIGH); //sayma değerimiz bir ise 1.LED yakılacak.
      break; //kodun devam etmemesi için break koyduk.
      case 2: digitalWrite(L2, HIGH); //sayma değerimiz iki ise 2.LED yakılacak.
      break; //kodun devam etmemesi için break koyduk.
      case 3: digitalWrite(L3, HIGH); //sayma değerimiz üç ise 3.LED yakılacak.
      break; //kodun devam etmemesi için break koyduk.
      case 4: digitalWrite(L4, HIGH); //sayma değerimiz dört ise 4.LED yakılacak.
      break; //kodun devam etmemesi için break koyduk.
      case 5: digitalWrite(L5, HIGH); //sayma değerimiz beş ise 5.LED yakılacak.
      break;
    }
    if (sayma>5) //sayma değişkeninin 5'ten büyük olup olmadığını kontrol ettik. Eğer büyükse sayma değerini sıfırladık ve LED'leri söndürdük.
    {
       sayma=0;
       digitalWrite(L1, LOW);  //1.LED'i söndürdük.
       digitalWrite(L2, LOW);  //2.LED'i söndürdük.
       digitalWrite(L3, LOW);  //3.LED'i söndürdük.
       digitalWrite(L4, LOW);  //4.LED'i söndürdük.
       digitalWrite(L5, LOW);  //5.LED'i söndürdük.
    }
    }
    Kodumuzu derleyicide yazıp kartımıza yükledikten sonra devremiz çalışabilir duruma geliyor. Devrenin çalışma şeklini linkleki gif yardımıyla görebilirsiniz :http://www.gfycat.com/UnrulyAgitatedCoqui

    NOT: Switch case komutunu kullanırken break komutunu kullanmamızın sebebi Switch case komutunda ilk sağlanan değişkenden sonraki fonksiyonların yapılmasını engellemekti.
     

Sayfayı Paylaş