Herkese tekrardan merhaba. Bu yazımızda değişken tiplerine giriş hakkında bilgiler vereceğim. Girişe başlamadan önce belirtmek istiyorum ki değişken tiplerini tam olarak kavramak için değişken tiplerini tam olarak anlayıp ne işe yaradıklarını iyi analiz etmek gerekiyor. Arduinomuzun 8 bitlik bir mikrodenetleyici oldugunu göz önünde bulundurursak kullanacagımız değişkenlerin boyutlarının bizim için ne derece önemli oldugunu bir kez daha gözler önüne serebilmiş oluruz.
Arduino Eğitim
Kısaca arduino eğitim için girişimizi yaptıktan sonra değişken tiplerinin kendilerinin nasıl seçilmesi gerektigindende bahsedelim. Arduino değişken tiplerimizi seçerken bizim neye ihtiyacımız oldugunu ve değişken tipinin bize neler sunduğunu bilmemiz gerekiyor. Mesela biz ondalık sayılarla işlem yapacaksak yani sayılarımızda virgül barındıracaksak değişken tipi olarak “float” kullanmamız gerekiyor. Aşağıda vereceğim resimde değişken tiplerinin detaylı bir şekilde görüp inceleyebilirsiniz.
Değişken tipi gelişi güzel seçilirse ne olur?
Değişken tiplerinin gelişigüzel seçilmesi proğramlarınızda taşmalara ve hatalı sonuçlara sebebiyet verecektir. Buda her programcının karşılaşmak istemedigi bir olaydır.
Değişken tiplerini nasıl seçmeliyim?
Bu sorunun kısa cevabını giriş yaparken belirtmiştim. Şimdi ise detaylı bir şekilde bu konuya deginelim. Örneğin tamsayılarla işlem yapmak istiyorsanız yani sizin işlem yapacağınız sayılar tamsayılarsa bu durumda seçmeniz gereken değişken tipine en uygun aday “int” degişken tipidir. Neden sorusunu soranlar içinse resimde paylaştığımız “int” değişkeni -32768 ila 32767 aralıgındaki degerler alabiliyor. Bu durumda tamsayılar üzerinde çalışılabilecek en uygun değişken tipi “int” haline dönüşüyor.
Sadece 0 ve 255 arasındaki tam sayılarla çalışmak istiyorum, ne yapmalıyım?
Bu durumda ise “int” değişken tipi yine kullanılabilir. Sizlerde değişken tiplerine dair biraz mantık geliştirmek için “int” in neden kullanılmaması gerektiğini anlatacağım. Yani şöyle bir durum söz konusu “int” kullanmak programda her hangi bir hataya sebebiyet vermeyecektir ancak “int” degişkenin boyutu resimdede görüldüğü gibi 4 KB dır. Ancak bu durumda biz 0-255 aralıgında değer alabilen “byte” 1 KB boyutunda ki değişken tipini kullanırsak 3KB kazanç sağlamış oluruz. Arduinomuzun kısıtlı bir işlemcisinin olmasını göz önüne alırsak uygun değişkeni seçip alandan kazanmak en büyük kârımız olacaktır.
Değişken tiplerini oluştururken dikkat edilmesi gerekenler nelerdir?
Degişken isimleri rakamlarla başlamamalıdır ayrıca değişken isimlerinde türkçe karakter içermemelidir. Örnegin (ö,ç,ş).. vs gibi. Değişken isimleri ayrık yazılmamalıdır. Örneğin sayı 1c (Arada boşluk olduğu için yanlış bir kullanımdır.)
Bu kadar bilgiden hemen sonra hadi değişkenlerle ilgili ilk programımızı yazalım! Sitemizde yazı kopyalamak bazı nedenlerden dolayı yasaktır. Bu yüzden kodları yorum kısmına kopyalacağım. Oradan kopyalayabilirsiniz.
/* Degişken kullanım örnegimiz-1
www.muhendisbeyinler.net
Hasan Basri Karakaya
*/
int sayi1 = 8; // 1. sayımızı 8 olarak seçtik.
int sayi2 = 5; // 2. sayımızı 5 olarak seçtik
int sonuc; // bu sayılarla yapacagımız işlemlerin sonucu içinse sonuc fonksiyonunu cagıracagız.
long int buyuksayi = 0;
void setup(){
Serial.begin(9600); // Seri haberleşme hızını 9600 olarak belirledik
}
void loop(){
Serial.print("8+5="); // 8+5= kısmını ekrana yazdırıyoruz.
sonuc = sayi1 + sayi2; // sayi1 ve sayi2 yi toplattık
Serial.println(sonuc); // sonuc fonksiyonumuzu okutuyoruz.
sayi1 = 1500; // sayi1'e 1500 degerini verdik
sayi2 = 1200; // sayi2'ye 1200 degerini verdik
sonuc = sayi1 * sayi2; // sayi1 ve sayi2 yi çarpıyoruz.
Serial.print("1500*1200="); // 1500*1200= kısmını ekrana yazdırıyoruz.
Serial.println(sonuc); // sonuc fonksiyonunu ekrana yazdırıyoruz
// Degisken tipi kullanılmadan yaptıgımız islemler
Serial.print("Donusum yapilmadan 1500*1200=");
buyuksayi = sayi1 * sayi2; // sayi1 ve sayi2 yi çarpıyoruz.
Serial.println(buyuksayi); // sonucu ekrana yazdiriyoruz.
/*
Yukarıda yaptıgımız işlemlerin tamamının sonucu yanlış çıkacaktır.
sebebi ise degişken tiplerini uygun şekilde kullanmamış olmamızdır.
şimdi aşagıda degişken tiplerini düzgün bir şekilde kullanarak,
dogru sonucu ekrana yazdıracagız.
*/
Serial.print("Donusum yapilarak 1500*1200=");
buyuksayi = (long)(sayi1) * (long)(sayi2);
/*
sayi1 ve sayi2 nin önlerinden yer alan (long) degiskenimiz bu sayilari o türe dönüştürüyor.
bu sayede dogru sonucu elde etmemizi sagliyor.
*/
Serial.println(buyuksayi);
while(1); // programımızı kitledik.
}
Programımızda neler yaptığımızı yanlarına yorum kısımları açarak belirttim. Eğer yine anlamadığınız bir kısım olursa yorum üzerinden sorabilirsiniz. Degişken tanımlamaları ile ilgili ilk yazımızın sonuna geldik, bir sonraki yazımızda görüşmek üzere esen kalın. Arduino ile ilgili diğer yazılarımızı Arduino kategorisinden takip edebilirsiniz.