LİSE GRUBU 4.DERS : KODLAMANIN TEMELLERİ - SERİAL MONİTOR İLE ARDUİNOYA VERİ GÖNDERME - STRİNG FONKSİYONLARI - DEĞİŞKENLERİN (Veri Tiplerinin) DÖNÜŞTÜRÜLMESİ

ÖRNEK 1: (CHAR) DİZİ KULLANIMI - DİZİNİN KAPLADIĞI ALANI(sizeof) BULMAK VE FOR DÖNGÜSÜ İÇİNDE KULLANMAK.





char ad[] = {"HALDUN"};


void setup(){
  Serial.begin(9600);
}


void loop(){

for(int i=0; i<sizeof(ad); i++){
// i'yi 0 a eşitledik --- i küçükse ad değişkenimizin kapladığı alandan i yi birer birer arttıracağız.

  
      Serial.println(ad[i]); // ad değişkeni içerisindeki i.ci elemanı ekrana yazar. i 4'e eşit ise dizi içerisindeki 4.elemanı yazdırır. 
      delay(200); // 200 Milisaniye bekletme işlemi.

}
}




ÖRNEK 2: ARDUİNO(C) TABANLI KODLAMA DİLİNE AİT ÖZEL FONKSİYONLAR VE BU FONKSİYONLARIN NASIL KULLANILACAĞINA DAİR ÖRNEKLER.



void setup(){

  Serial.begin(9600);
  String adim = "Haldun";
  String soyad = "Tasdelen";

  Serial.println("Benim adım : " + adim); 
  /*

        Yukarıda 2 stringi topladık. 2 string toplandığı zaman otomatik olarak yan yana yazılır.
        Not: String ile int toplanamaz. String ile int toplayabilmeniz için ya int'ı stringe ya da string'i int'e çevirmeniz gerekir.
        int'i stringe stringi int'e çevirme ile ilgili örnekleri de aşağıda vericez.
        
        Örneğin
        a değişkeninde "ahmet", b değişkeninde ise "top oynuyor" yazdığını varsayalım.

        a+b = ahmettop oynuyor şeklinde bir çıktı verir. arasına boşluk vermek için bunu şu hale çevirebiliriz.

        a+" "+b = ahmet top oynuyor
        
  */

  
  Serial.println("Benim adım : " + String(adim.length()) + " karakterden oluşuyor");
  /*

    Yukarıda "Benim adım : " diye bir string yazısı mevcut.
    Bunun yanına adim degiskeni icerisindeki eleman sayısını yazdırmak istiyorum hemen yanına,
    adim.length() kodunu ekledim çalışmadı çalışmayan hali:

    "Benim adım : " + adim.length() + " karakterden oluşuyor" 
    
    Çalışmama sebebi adim.length() 'in bize döndüreceği değer sayısal değerdir yani int'dır. Biz int ile String'i toplayamıyoruz.
    O zaman birini birine çevirmemiz gerekiyor. Yazıları int'a çeviremeyeceğimize göre sayıyı int'a çevirdik ve sorunu yukarıdaki gibi
    çözmüş olduk.

   */
  

  Serial.println(adim.equals("Haldun"));

  /*

    Burada String içerisindeki eşitliği kontrol ediyoruz. 

    adim    .   equals    ("Haldun");
    adim içerisinde Haldun varsa true(sayısal değeri 1'dir) döndür.
    adim içerisinde Haldun yoksa false(sayısal değeri 0'dır) döndür.

    demiş oluyoruz. Kısacası iki String'in eşitliğini kontrol ediyoruz. 
    Bunu if else ile örneklendirebilirsiniz. Örn:

        if(adim.equals("Haldun") == true){
          Serial.println("Eşleşme var.");
        }
 
 */

  Serial.println(adim.charAt(4)); // adim değişkeni içerisinden 4.harfi buraya getir. Unutmayın !( saymaya 0 dan başlar. )
  
  

  Serial.println(adim.indexOf("H")); // adim değişkeni içerisindeki H harfini bul ve kaçıncı sırada olduğunu ekrana yaz.

  adim.remove(0,3);
  // adim değişkeni içerisindeki 0.harften 3.harfe kadar olan kısmı sil. yani "HAL"DUN  SİLİNECEK KISIM TIRNAK İÇİNDE.
  // 3.harf dahil değil unutmayın. 0 ile 3 arası diyoruz burada.

  Serial.println(adim); // Ekrana adim değişkenini yazdır.

  adim.replace("n","m"); // adim değişkeni içerisindeki n harfini m harfine çevir.

  Serial.println(adim); // Ekrana adim değişkenini yazdır.

  Serial.println(soyad.substring(0,3)); // soyad değişkeni içerisindeki 0 eleman ile 3 eleman arasındaki harfleri listeler.

  soyad.toUpperCase(); // soyad değişkeni içerisindeki harfleri büyük harfe çevir.

  Serial.println(soyad); // Ekrana soyad değişkenini yazdir.

  soyad.toLowerCase(); // soyad değişkeni içerisindeki harfleri küçük harfe çevir.

  Serial.println(soyad); // ekrana soyad değişkenini yazdır.

  String bir = "1"; 
  /* 
     String bir değişken oluşturduk ve içerisine 1 rakamını atadık ancak 1 rakamını atamamız onu int yapmaz. 
     Değişkenlerde tırnak içerisinde olan her ifade String'dir.
      
   */
  
  int sayi = bir.toInt();

  /*

    sayi diye bir int değişkeni oluşturduk. 

    oluşturduğumuz değişkeni bir stringe eşitledik bunu yapmadan önce stringi int'a çevirdik. aksi halde hata alırdık.
    
    
    
   */
  
    
}

void loop(){


}




ÖRNEK 3: KLAVYEDEN GİRİLEN SAYIYI OKUMAK - STRİNGİ İNT'E ÇEVİRMEK - STRİNG İLE STRİNGİ TOPLAMAK VE KLAVYEDEN GİRİLEN DEĞERİ EKRANA YAZDIRMAK.



int i;

void setup(){

  Serial.begin(9600);

  
}

void loop(){

  while(Serial.available() != 0){ // Seri ekrana veri girişi varmı kontrol ettiriyoruz. 0'a eşit değilse yani veri girişi yapılıyorsa

    i=Serial.parseInt(); // Seri kısma girilen değerin sadece int olan bölümünü al. Yani AHMET44 girseniz bile sadece 44 değerini alacaktır.
    Serial.println("Bastığın sayı" + String(i));
    // i değişkeni int olduğu için String ile toplarken String'e çevirdik.
    

    

    
  }
  
}




ÖRNEK 3: KLAVYEDEN GİRİLEN SAYIYI OKUMAK - STRİNGİ İNT'E ÇEVİRMEK - STRİNG İLE STRİNGİ TOPLAMAK VE KLAVYEDEN GİRİLEN HARFİ *(KOŞULLU BİR ŞEKİLDE) EKRANA YAZDIRMAK.


byte b;

void setup(){

  Serial.begin(9600);

  
}

void loop(){

  while(Serial.available() != 0){ // Seri ekrana veri girişi varmı kontrol ettiriyoruz. 0'a eşit değilse yani veri girişi yapılıyorsa

    b=Serial.read(); // Seri kısma girilen değeri oku.

    
    Serial.println("Bastığın harf " + String(b)); // Değiştirilecek kısım eğer istenirse.

    
    // b değişkeni byte olduğu için String ile toplarken String'e çevirdik.
    
    /*

      Not bastığınız harf olarak hep 10 çıkıyor ise ENTER'a karşılık gelen değer 10 olduğu için.
      Boş olarak enter'a bastığınızda da 10 değeri otomatik çıkıyor yani bunu engellemek için aşağıdaki kod ile yukarıdaki 
      kodu değiştirirseniz sorunu çözülür.

    if(b != 10){
    Serial.println("Bastığın harf " + String(b));
    }

    
    */
    
  }
  
}



Herkese iyi Kodlamalar
Abidin Haldun TAŞDELEN

Yorumlar