Veri Tipi Nedir?
Programlama yaparken, programımızda
kullanacağımız değişkenleri tanımlarız. Bu tanımlamalar için programımız belli
bir yer ayırır. Yani Arduino için konuşacak olursak 32KB’lık Arduino UNO
hafızasının belli bir bölümü bu değişkenlere ayrılır. Bu tanımlamaları
yaparken, tanımlayacağımız sayının veya karakterin hangi sayı aralığında yer
aldığına göre bir veri tipi seçmeliyiz.
Veri Tipi Neden Önemli?
Atadığımız her değişkenin hafızada belli
bir yer tuttuğunu söylemiştik. Belli sayı aralıkları belli yerler tutar. Daha
büyük sayıları kullanmamıza imkân veren veri tipleri hafızada daha çok yer
kaplar. Dolayısıyla gerekmediği takdirde hafızada fazladan yer kaplamamızın
anlamı yok. Arduino için konuşacak olursak, her ne kadar alternatifleri olsa
da, UNO’nun 32KB’lık hafızası için her bir değişkenin harcadığı alan bizim için
“büyük projelerde” çok önemli.
Şimdi gelelim veri tiplerine,
1) boolean
Tek bitlik bir değişkendir. İçerisinde
sadece 0 veya 1 verilerini barındırabilir. Yani TRUE veya FALSE. Eğer bir yerde
yalnızca iki ihtimal varsa bu veri tipini kullanabiliriz. Kısaca bool şeklinde
de tanımlama yapılabilir. Kişinin isteğine bağlıdır.
bool durum;
bool led1=TRUE;
bool led1=TRUE;
2) byte
8-bit negatif işaretsiz sayıyı
içerisinde tutar. Bu da 0-225 arasına denk gelir.
Not: 1 byte 8 bitlik veri tutar. Makine
dilinde veriler 0 ve 1’ler ile saklanır. Mesela, 01101001 verisi aslında bir
sayının makine dilinde karşılığıdır. Buradaki 0 ve 1’lerin her biri bir bittir.
Byte kullanımına örnek verecek olursak;
byte x=21;
3) int
Uzun ismi Integer’dır ve tamsayı
anlamına gelir.
16-bit yani 2 byte’lık alan kaplar. Byte
veri tipine göre çok daha büyük sayılar barındırabilir. Tutabildiği sayı
aralığı ise -32,768 ile 32,767‘dir.
Tam sayıları saklamak için en sık
kullanılan veri tipidir. Arduino Due gibi 32-bit sistemlerde
32 bit yani 4 byte’lık veri tutarak -2,147,483,648 ile 2,147,483,647 arasındaki
sayıları içinde barındırabilir.
int deger=96; // deger adında, int
türündeki değişkene 96 atansın
4) unsigned int
Integer veri tipi ile aynı özelliklere
sahiptir. Yalnız negatif değerlere yer vermediği için, negatif değer için
ayırdığı hafızayı pozitif değere ekleyerek 0 ile 65,535 arası
değer alabilir. 32-bit sistemlerde ise 0 ile
4,294,967,295 arasında değer alabilir.
unsigned int sayi=146798;
5) char
Bir byte yani 8-bit genişliğindedir.
İçinde karakter verisi bulundurur. -128’den 127‘ye kadar sayı
verisi alabilir. Karakter değerleri numara şeklinde saklanmaktadır. Bunun
anlamı da karakter değerleri üzerinde aritmetik işlem yapabileceğinizdir.
Herhangi bir karakterin sayı değerini öğrenmek isterseniz ASCII tablosuna
bakmalısınız. char değişkenine değer harf veya sayı olarak verilebilir.
char karakter = 'T';
char karakter = 84;
Bu kod satırlarının ikisi de aynı anlama gelmektedir.
char karakter = 84;
Bu kod satırlarının ikisi de aynı anlama gelmektedir.

6) unsigned char
Negatif işareti olmayan char değişkeni
tanımlar. Karakter verileri negatif değerler almazlar. Dolayısıyla char
değişkeni sadece 127’ye kadar değer alabilir. unsigned char ile farklı karakter
verilerine erişim olsa da Arduino dilinde byte verisiyle aynı anlama gelir
ve 0 ile 255 arasında değer alır.
unsigned char karakter3 = 247;
7) word
Uno ve Atmega mikrodenetleyici
bulunduran kartlarda unsigned int ile aynı özelliğe sahiptir. Fakat Due ve Zero
kartlarda 32 bitlik negatif işaretsiz veri depolayabilir.
word deger=1200;
8) long
Tanımlayacağımız sayı çok uzunda bu tip
bir değişken işimizi görecektir. 32 bitlik yani 4 byte’lık yer kaplayan bu veri
tipi -2,147,483,648 ile 2,147,483,647 arasında değer alabilir.
long uzunsayi;
9) unsigned long
long veri tipinin negatif işareti
kaldırılmış versiyonu da diyebiliriz. Yine long gibi 32 bitlik yer kaplar fakat
negatif işaret için ayrılmış kısmı pozitifte de kullanabileceğimiz için 0
ve 4,294,967,295 arası bir tamsayı değeri atayabiliriz.
unsigned long cokuzunsayi=4325283;
10) short
Bütün sistemlerde kapladığı alan 16
bittir. Bu da -32,768 ile 32,767 arasına tekabül etmektedir.
short deger=7000;
11) float
Bu veri tipi ondalık sayıları da içinde
barındırır. Eğer bir işlemde virgülden sonra da sayı varsa değişkenimizi bu
veri tipiyle atamak zorundayız. float değişkeni -3.4028235E+38 ile
3.4028235E+38 arasında ondalık değer alabilir. Bu değer hafızada 32 bitlik yer
tutar. float değişkeninde en fazla 6 veya 7 hane bulunabilir. Daha uzunu için
double kullanmak lazımdır.
float sensor=3.2354;
12) double
Arduino’nun ATMEGA tabanlı kartlarında
float değişkeninden farksızdır. Due kartında 64 bitlik yer tutar ve saklayabildiği
ondalık sayı çok daha yüksek olabilir.
double ondalikdeger=2.4323;
Önemli Olan Veri Tipleri :
1)Boolean (mantıksal)
2)int (tam sayılarda)
3)long (tam sayılarda)
4)float (ondalık sayılarda)
Arduino Operatörler
Bir operatör, derleyiciye belirli matematiksel veya mantıksal
işlevleri gerçekleştirmesini söyleyen bir semboldür. C dili yerleşik operatör
açısından zengindir ve aşağıdaki operatör türlerini sağlar.
·
Aritmetik Operatorler
·
Karşılaştırma Operatorleri
·
Mantıksal Operatorleri
·
Bitsel Operatorler
·
Bileşik Operatorler
Aşağıdaki
operatör işlemlerini A ve B değişkenleri üzerinden yapacağız. A değişkeni 10 ve
B değişkeni 20 olduğunu varsayarak operatör işlemleri ve sonuçları
gösterilmiştir.
Arduino Aritmetik Operatörler
Operator adı
|
Operator
sembolü
|
Tanımı
|
Örnek
|
atama
operatörü
|
=
|
Operatörün
sağındaki değeri solundaki değişkene aktarır.
|
A
= B
|
toplama
|
+
|
İşlenen
iki değeri toplar
|
A
+ B sonuç: 30
|
fark
|
–
|
İlk
değerden ikincisini çıkarır
|
A
– B sonuç: -10
|
çarpma
|
*
|
iki
değeri çarpar
|
A
* B sonuç: 200
|
bölme
|
/
|
Bölme
işlemi yapar
|
B
/ A sonuç: 2
|
mod
|
%
|
Kalan
alma operatörüdür. B’nin A’ya bölümünden kalını verir.
|
B
% A sonuç: 0
|
Örnek:
1
2
3
4
5
6
7
8
|
void loop () {
int a = 9,b = 4,c;
c = a + b;
c = a - b;
c = a * b;
c = a / b;
c = a % b;
}
|
Arduino Karşılaştırma Operatörleri
Operator adı
|
sembolü
|
Tanımı
|
Örnek
|
eşitlik
|
==
|
İki
değerin bir birine eşit olup olmadığına bakar. Değeler bir birine eşitse
sonuç trueolur.
|
(A
== B) sonuç: false
|
eşitsizlik
|
!=
|
İki
değerin bir birinden farklı olup olmadığını bakar. Değerler bir birindenf
farklı ise sonuç true olur.
|
(A
!= B) sonuç: true
|
küçüktür
|
<
|
Soldaki
değerin sağdakinden küçük olup olmadığına bakar. Soldaki değer küçükse
sonuç true olur.
|
(A
< B) sonuç: true
|
büyüktür
|
>
|
Soldaki
değerin sağdakinden büyük olup olmadığına bakar. Soldaki değer büyükse
sonuç true olur.
|
(A
> B) sonuç: false
|
küçük
eşittir
|
<=
|
Soldaki
değerin sağdakinden küçük-eşit olup olmadığına bakar. Soldaki değer
küçük-eşitse sonuç true olur.
|
(A
<= B) sonuç: true
|
büyük
eşittir
|
>=
|
Soldaki
değerin sağdakinden büyük-eşit olup olmadığına bakar. Soldaki değer
büyük-eşitse sonuç true olur.
|
(A
>= B) sonuç: false
|
Karşılaştırma
operatörleri
Karşılaştırma operatörleri genellikle döngülerin
içinde kullanılır. Mesela şu değer bu değer eşitse şunu yap gibi. Bu
operatörler aşağıdaki gibidir.
x == y; // x eşittir y
x != y; // x eşit değildir y
x < y; // x değeri y değerinden küçük
x > y; // x değeri y değerinden büyük
x <= y; // x değeri y değerinden eşit veya küçük
x >= y; // x değeri y değerinden eşit veya büyük
x != y; // x eşit değildir y
x < y; // x değeri y değerinden küçük
x > y; // x değeri y değerinden büyük
x <= y; // x değeri y değerinden eşit veya küçük
x >= y; // x değeri y değerinden eşit veya büyük
Örnek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
void loop () {
int a = 9,b = 4
bool c = false;
if(a == b)
c = true;
else
c = false;
if(a != b)
c = true;
else
c = false;
if(a < b)
c = true;
else
c = false;
if(a > b)
c = true;
else
c = false;
if(a <= b)
c = true;
else
c = false;
if(a >= b)
c = true;
else
c = false;
}
|
Arduino Mantıksal Operatörler
Operator adı
|
Operator sembolü
|
Tanımı
|
Örnek
|
ve
|
&&
|
Lojik VE işlemi yapar.
İşlenen iki değer de sıfırdan farklı ise sonuç true olur.
|
(A
&& B) true
|
veya
|
||
|
Lojik VEYA işlemi
yapar. İşlenen iki değerden biri sıfırdan farklı ise sonuç true döner.
|
(A
|| B)
true
|
Örnek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
int a = 9,b = 4
bool c = false;
if((a > b)&& (b < a))
c = true;
else
c = false;
if((a == b)|| (b < a))
c = true;
else
c = false;
if( !(a == b)&& (b < a))
c = true;
else
c = false;
|
Mantık
Operatörleri:
Mantık Ve
Operatörü :
if ( x > 0 && x < 5 )
if ( x > 0 && x < 5 )
Yukarıdaki kodun gerçekleşebilmesi için 2 şart vardır
. Bunların ikisininde sağlanması durumunda istenen komuta geçilir. Yani x
sayısı 0 ile 5 arasında ise kod bir alt satıra geçebilir.
Mantık Veya Operatörü :
if ( x > 0 || y > 0 )
Mantık Veya Operatörü :
if ( x > 0 || y > 0 )
Mantık veya komutunda şartlardan biri sağlanması kodun
devam etmesi sağlanır. Yani x değeri sıfırdan büyükse veya y değeri sıfırdan
büyükse şart sağlanır.
Hiç yorum yok:
Yorum Gönder
Katkılarınız için şimdiden teşekkür ederim.