Değişken tiplerinden bahsetmeden önce değişkenlere isim verirken dikkat etmemiz gereken noktaları inceleyelim.
Değişkene isim verirken dikkat edilmesi gereken noktalar:
Değişkene isim verirken Türkçe karakter kullanılmaz (ç,ğ,ı,İ,ö,ş,ü)
Değişken isimlerinde boşluk kullanılmaz.
Değişken isimlerinde büyük küçük harf duyarlılığı vardır. Yani ortalama değişkeni ile ORTALAMA değişkeni farklı algılanır.
Alt çizgi ile başlamaz, özel karakter içeremez, mutlaka harf ile başlamalıdır.
Programlama diline ait komutlar değişken ismi olarak tanımlanamaz. (not, or, and gibi)
Değişken tanımlama: int a=15; Burada yer alan int değişken tipini, a değişken adını, = değişken atama operatörünü, 15 değişkenin değerini temsil eder.
Başlamadan önce bilgisayardaki en küçük birimin bit olduğunu ve bunun 0 ve 1 lerden herhangi birini temsil ettiğini hatırlatalım.
8 bit =1 byte
1024 byte=1 Kilobyte
1024 Kilobyte= 1 Megabyte
1042 megabyte=1gigabyte
Arduino uno 32 kilobyte hafızaya sahiptir.
Değişken Tipleri
https://www.arduino.cc/reference/en/#variables
Değişken Tipi |
|
Değişkenin Alacağı Aralık |
Açıklama |
int |
2 |
-32768 ile 32767 arasında |
Negatif tam sayıları da içerir. |
unsigned int |
2 |
0 ile 65535 arasında |
Belirtilen değer ile gösterilen pozitif tamsayılar |
long |
4 |
-2147483648 ile 2147483647 arasında |
Negatif tam sayıları da içerir. |
unsigned long |
4 |
0 ile 4294967295 arasında |
Belirtilen değer ile gösterilen pozitif tamsayılar |
char |
1 |
-128 ile +127 arasında |
işaretli -128 ile +128 arasındaki sayılar veya tek bir karakter. Sayıları ascii kodlarına göre karaktere dönüştürür. |
string |
boyutu karakter sayısına göre değişkenlik gösterir |
Karakter (metin) |
tırnak işareti(” “) içerisine yazılan karakter dizisidir. Örneğin; “Merhaba” |
byte |
1
|
0 ile 255 arasında |
0 ile 255 arasında tam sayılar |
float |
4 |
-3.4028235E+38 ile 3.4028235E+38 arasında |
ondalık sayılar |
double |
4 |
-3.4028235E+38 ile 3.4028235E+38 arasında |
float veri tipiyle aynı. (arduino için) |
boolean |
1 |
true(1) ya da false(0) |
mantıksal |
Global ve Yerel değişkenler
Değişken tanımlarken programın tamamında geçerli olan bir değişken tanımlamak istiyorsak bunu setup bloğunun üstünde yapmalıyız. Aksi halde setup içinde tanımladığımız değişkeni loop bloğu içinde kullanamayız. Setup bloğu içinde tanımlanan bir değişken sadece o blokta kullanılır.
void setup() {
int a=5;
Serial.begin(9600);
}
void loop() {
Serial.println(a);
}
programı çalışmayacaktır. int a=5; satırını programın ilk satırına kaydırırsak çalışacaktır.
int a=5;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(a);
}
Char değişken tipi
8 bit yani 1 bytelık değişkendir. Bir karakter verisi bulundurur.
char a=65;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(a);
}
Bunun çıktısı A olacaktır. Çünkü ascii kod tablosuna göre 65 sayısı A harfini temsil etmektedir.
Diziler
Diziler programlama dillerinde çok kullanılan bir değişken yapısıdır. Normalde bir değişkenin bir değer tutabileceğini belirtmiştik. Dizilerde ise birden fazla değer tutabilmektedir.
Tek boyutlu dizi örneğiyle devam edelim:
Kullanımı:
int sayilar[5] = {10,15,20,25,30};
Değişken tipi int yani tam sayı olan 5 değer tutan sayilar isminde bir dizi tanımladık. Burada dikkat edilmesi gereken nokta, dizilerden değer okurken her bir değerin bir indis numarasının olmasıdır. 5 değerden oluşan yukarıdaki dizide, 10 sayısını ekrana yazdırmak için (seri porta göndermek için) Serial.println(sayilar[0]); ifadesini kullanırız. Yani dizilerde indis numaraları 0’dan başlar ve bir artarak devam eder. Aynı örnekte 30 sayısını ekrana yazdırmak için Serial.println(sayilar[4]); ifadesini kullanırız.
Somutlaştırmak adına şöyle bir tablo çizebiliriz.
int sayilar[5]={10,15,20,25,30}; //sayilar isminde 5 değerden oluşan bir dizi tanımladık
void setup() {
Serial.begin(9600); //seri ekran başlatıldı
}
void loop() {
Serial.println(sayilar[0]); //dizinin 0 indis numaralı değerini ekrana yazdırdık yani 10
delay(2000); //2 saniye bekle
Serial.println(sayilar[4]); //dizinin 4 indis numaralı değerini ekrana yazdırdık yani 30
delay(2000);
}
sayilar |
|
İndis no |
Değer |
0 |
10 |
1 |
15 |
2 |
20 |
3 |
25 |
4 |
30 |
İki boyutlu diziler: Tek boyutlu dizilerle aynı mantıkta kullanılmaktadır. Burada keypad örneğine bakabilirsiniz. for döngüsünü anlattıktan sonra, for döngüsü ile dizileri birlikte kullanacağız.
Konuyla ilgili aşağıdaki youtube videolarını izleyebilirsiniz.
Lezzetli Robot Tarifleri
https://www.youtube.com/watch?v=lsksPnHu22k
Sen de Kod yaz
https://www.youtube.com/watch?v=vMsaeRlNR_8