Lezzetli Robot Tarifleri Sosyal'e Hoş Geldiniz.. Devamı..

Giriş Yap Üye Ol


Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Tarifleri #14 - Switch Case Yapısı
#1
Video 
dX2RkL.gif


5YkBMq.gif
Arkadaşlar merhaba, 14. bölüme hoş geldiniz 1f642.png

Biliyorum hep aynısını diyorsun diyeceksiniz ama bu bölümde önemli bir konu olan ve kullanımı ile çok güzel işlere olanak sağlayan bir kodu “switch case” yapısını öğreneceğiz ve bu video gerçekten şu ana kadar çekilen Arduino tariflerinden belkide en etkili olanı olacak arkadaşlar 1f642.png

Neden etkili olacak peki bu video? Çünkü bu videoda “switch case” yapısını öğrenebilmek için, onu anlayabilmek için, ona input ( giriş ) verebilmek için yazacağımız yardımcı algoritma şu vakte kadar Arduino Tarifleri’ndeki nerede ise 13 videoda anlatılan her şeyi kullanmamızı gerektirecek. Eğer yazılan kodu iyi anlayabilir ve kendiniz yazmayı denediğinizde sıkıntı yaşamazsınız bilin ki şu vakte kadar hakkıyla gelmişsiniz 1f642.png Eğer sıkıntı varsa yine sevinin. Çünkü bu video sayesinde sıkıntılı olduğunuz kısmı görmüş olacaksınız ve onun üzerine düşebileceksiniz. Bu video bu manada çok zengin oldu arkadaşlar 1f642.png

Birazda kodun kendisinden bahsedecek olursak, aslında video kullanımı açısından gayet iyi ve yeterli bu aşamada. Fakat kendisinin bir seçilim kodu olduğundan bahsedebiliriz. İf-else ilişkisi ile yazılabilecek seçilim ifadelerini daha rahat yazmanızı sağlıyor. Bu demek değil ki if-else kodu ile yapılacak her şeyi yapar. if-else kodunu bildiğimiz için onun üzerinden bir örnek vereyim dedim 1f642.png Neyse nasıl olsa ileride kendisi kullanılacak ve daha iyi anlaşılacak. İyi seyirler dilerim, hoşça kalın, iyi çalışmalar 1f642.png

Not: Devre şeması çizilmiş olduğu için üzerinde oynama yapmak şimdi uğraştıracak arkadaşlar 1f642.png 1f642.png üşengeçlik değil aslında ama bir şey öğrenebiliriz bundan da. Aşağıdaki devrede switchin bağlı olduğu mavi renkli gnd kablosuna ihtiyaç yok aslında zaten sağda iken anahtar, en sağdaki bacaktan 5v alır, solda iken ortadan gnd alır.
MkyrLa.gif
14-2.jpg
QQl9ZV.gif
Kod:
const int arttir = 3; // artirma isini yapan buton 3. pine bağlı
const int azalt  = 4; // azatlma isini yapan buton 4. pine bağlı

const int dongu  = 2; // donguyu ayarlaya swtich 2. pine bağlı

int durum_arttir; // değişken tanımlandı
int durum_azalt ;// değişken tanımlandı
int durum_dongu ;// değişken tanımlandı

int sayac = 0;// değişken tanımlandı ilk değeri 0 verildi

void setup()
{
 pinMode(arttir , INPUT); // arttir butonu giriş pini olarak ayarlandı.
 pinMode(azalt  , INPUT); // arttir butonu giriş pini olarak ayarlandı.
 pinMode(dongu  , INPUT); // arttir butonu giriş pini olarak ayarlandı.

 Serial.println(9600); // seeri haberleşme başladı

}
void loop()
{
 durum_dongu = digitalRead(dongu); // dongu switchini oku durumu durum_dongu ye kaydet
 while (dongu == HIGH) // dongu Hıgh ise while döngüsüne gir
 {
   durum_arttir = digitalRead(arttir); // arttir butonunu oku durumunu durum_arttira kaydet
   durum_azalt  = digitalRead(azalt ); // azalt butonunu oku durumunu durum_azalta kaydet

   if (durum_arttir == HIGH) // eğer durum arttır hıgh ise çalış
   {
     sayac++; // sayacı arttır
     Serial.println("sayac = " ); // ekrana sayac kelimesini yaz
     Serial.println(sayac); // ekrana sayacın değerini yaz
     delay(200); // 200ms bekle
   }
   else if ( durum_azalt == HIGH)
   {
     sayac--; // sayacı azalt
     Serial.println("sayac = " ); // ekrana sayac kelimesini yaz
     Serial.println(sayac); // ekrana sayacın değerini yaz
     delay(200); // 200 ms bekle
   }
   durum_dongu = digitalRead(dongu); // dongu switcini tekrar oku (aksi halde while döngüsü sonsuz döngü olur(
 }
 switch (sayac) // sayaca göre switch kodunu çalıştır
 {
   case 1: // sayaca 1 ise
     Serial.println(" 1. motor calisiyor "); // ekrana cümleyi yaz
     break; // swtich den çık

   case 2: // sayaca 2 ise
     Serial.println("2. motor calisiyor "); // ekrana cümleyi yaz
     break;// swtich den çık

   case 3: // sayaca 3 ise
     Serial.println("3. motor calsiyor"); // ekrana cümleyi yaz
     break;// swtich den çık

   case 4: // sayaca 5 ise
     Serial.println("Tüm motorlar calsiyor"); // ekrana cümleyi yaz
     break;// swtich den çık

   default: // sayaca başka bir değer ise
     Serial.println("yanlis deger girildi "); // ekrana cümleyi yaz
 }
}

Ara
Cevapla
#2
ben iki tane switch case yapisi yaptim biri potansiyometre1 digeri ise potansiyometre2 toplam 59 case oldu ama 28. case te pot2 ye geciyor 
pot2 ye gectiginde tft lcd derki resim pot1 in case leri ile karisiyor nedendir benim bu su seviye sensoru iki analog pinden okuyor 2.pine gectiginde yani pot2 pot1 bosta kaliyor ve parazit yapiyor deger kafasina gore oynuyor nasil hallederim?
İnsan imkansızı başarabilir sözü yetersizdir çünkü insan imkansızın da ötesine ulaşabilir.
                                                                                                                                                          Nikola Tesla
Ara
Cevapla
#3
yardim edebilirmisiniz?
İnsan imkansızı başarabilir sözü yetersizdir çünkü insan imkansızın da ötesine ulaşabilir.
                                                                                                                                                          Nikola Tesla
Ara
Cevapla
#4
Kendine uygun bir aralik belirle o aralik icindeki degerleri dahil et o zaman parazitten bu kadar muzdarip olmazsin. Bunun switch case ile alakasi yok mantik hatasi sadece.
Ara
Cevapla
#5
nasil yani abi ornek verebilirsen guzel olur
İnsan imkansızı başarabilir sözü yetersizdir çünkü insan imkansızın da ötesine ulaşabilir.
                                                                                                                                                          Nikola Tesla
Ara
Cevapla
#6
Switch case yerine if kullanmalisin.

if( okunan_deger > 200 && okunan_deger < 300 )
{
// yapmak istedigin
}
if( okunan_deger > 400 && okunan_deger < 500 )
{
// yapmak istedigin
}

Bu ornege gore 300 ile 400 arasi isleme girmiyor sadece 200-300 arasi ve 400-500 arasi dikkate alinmis olur. Bunun gibi yani.
Ara
Cevapla
#7
tamam abi cok sag ol denicem
İnsan imkansızı başarabilir sözü yetersizdir çünkü insan imkansızın da ötesine ulaşabilir.
                                                                                                                                                          Nikola Tesla
Ara
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Video Arduino Tarifleri #10 - Temel matematik işlemleri LRT720 20 1,910 31-03-2017, Saat: 15:09
Son Yorum: Ozan Bayramoglu
Video Arduino Tarifleri #4 - Dijital Pinleri Giriş Olarak Kullanmak LRT720 19 2,098 28-03-2017, Saat: 23:23
Son Yorum: mahra
Video Arduino Tarifleri #1 - Arduino Nedir ? Nasıl Kurulur ? LRT720 2 851 04-03-2017, Saat: 22:28
Son Yorum: goko07
Video Arduino Tarifleri #3 - Dijital Pinleri Çıkış Olarak Kullanmak LRT720 5 1,049 09-12-2016, Saat: 21:17
Son Yorum: Blue High
Video Arduino Tarifleri #5 - IF-ELSE Komutunu Kullanmak LRT720 6 950 23-11-2016, Saat: 16:09
Son Yorum: z1rqdym

Hızlı Menü:


Konuyu Okuyanlar:
1 Ziyaretçi