Arduino – Veri Tipleri – Bilişim & Programlama
Arduino

Arduino – Veri Tipleri

C’deki veri türleri, değişkenlerin veya farklı tür fonksiyonlarınbildirilmesi için kullanılan kapsamlı bir sistemi ifade eder. Bir değişkenin tipi, bellekte ne kadar yer kapladığı ve depolanan bit modelinin nasıl yorumlanacağını belirlemektedir. Arduino sitesinden veri tipleri ile iligi daha fazla detay için buradaki linki tıklayabilirsiniz.

Aşağıdaki tablo Arduino programlama sırasında kullanacağınız tüm veri tiplerini mevcuttur.

void boolean char unsigned char byte int unsigned int word
long unsigned long short float double array string-char array string-object

 

void

void anahtar kelime yalnızca fonksiyon bildirimlerinde kullanılır. Bu fonksiyonun çağrıldığında geriye her hangi bir bilgi döndürmeyeceğini gösterir.

boolean

Bir bool, iki değerden birini true veya false tutar. (Her bool değişkeni bir bayt bellek kaplar.)

Not: boolean Arduino tarafından tanımlanan bool için standart dışı bir takma addır. Bunun yerine, aynı tür standart bool kullanmanız önerilir.

char

Bir karakter saklamak için belleğin 1 baytını tutan bir veri türüdür. Karakter değerleri, aşağıdaki gibi tek tırnak içine yazılır: ‘A’ (çoklu karakterler için – dizeler için – çift tırnak kullanın: “ABC”).

Harf olarak yazılsa da ancak karakterler sayı olarak saklanır.  ASCII şemasında özel kodlamayı görebilirsiniz. Bu, karakterin ASCII değerinin kullanıldığı karakterlerde aritmetik yapmanın mümkün olduğu anlamına gelir (örn. ‘A’ + 1, A büyük harfinin ASCII değeri 65 olduğu için işlem sonucu: 65+1 yani 66 olur). Karakterlerin sayılara nasıl çevrildiği hakkında daha fazla bilgi için Serial.println referansına bakabilirsiniz.

Char veri türü, -128 ile 127 arasındaki sayıların kodlandığı bir imzalı örnektir. İmzasız(unsigned) bir tek baytlık (8 bit) veri türü için bayt veri türünü kullanır.

 

unsigned char

1 bayt bellek kaplayan işaretsiz bir veri türüdür. Bayt veri türü ile aynıdır.

unsigned char veri türü, 0 ile 255 arasındaki sayıları kodlar.

Arduino programlama stilinin tutarlılığı için bayt veri tipi tercih edilir.

String

Metin Dizgileri iki şekilde gösterilebilir. 0019 sürümünden itibaren çekirdeğin bir parçası olan String veri tipini kullanabilir veya bir dizi char türünden bir String oluşturabilir ve null-sonlandırıcı ile kullanılır. Daha fazla bellek tasarrufu için String nesnesi hakkında daha fazla bilgi için sayfasına bakın.

 

byte

Bir bayt,0-255 arasındaki 8 bit işaretsiz bir sayıları saklar.

 

int

Tamsayıları sayı depolamak için birincil veri tipidir.

Arduino Uno’da (ve diğer ATmega tabanlı anakartlarda) bir int, 16 bitlik (2 bayt) bir değer depolar. Bu, -32,768 ila 32,767 (minimum -2 ^ 15 değeri ve maksimum (2 ^ 15) – 1) değeri sağlar. Arduino Due ve SAMD tabanlı kartlarda (MKR1000 ve Sıfır gibi) bir int, 32 bit (4 bayt) değeri saklar. Bu, -2,147,483,648 ila 2,147,483,647 (en düşük -2 ^ 31 değeri ve maksimum (2 ^ 31) – 1) aralığını verir.

int, negatif sayıları (2’nin tamamlayıcı matematik) adlı bir teknikle saklar. Bazen “işaret” biti olarak adlandırılan en yüksek bit, sayıyı negatif bir sayı olarak işaretler. Bitlerin geri kalanı ters çevrilmiş ve 1 eklenmiştir.

unsigned int

Uno ve diğer ATMEGA tabanlı kartlarda, imzasız satırlar (işaretsiz tamsayılar), 2 baytlık bir değer depoladıkları için int ile aynıdır. Ancak negatif sayıları depolamak yerine, sadece pozitif değerler saklarlar ve 0 ile 65.535 arasında bir aralık elde ederler ((2 ^ 16) – 1).

Due, 0 ile 4,294,967,295 (2 ^ 32 – 1) arasında değişen 4 bayt (32 bit) değeri saklar.

 

word

Bir word, 16 bit işaretsiz bir sayıyı 0 ile 65535 arasında saklar. İmzasız bir int ile aynıdır.

 

long

long değişkenler, sayı depolama için genişletilmiş boyutlu değişkenlerdir ve -2 bit, 483,483,648’den 2,147,483,647’ye 32 bit (4 bayt) depolar.

Tamsayılarla matematik yapıyorsanız, sayılardan en az biri bir L tarafından takip edilmeli ve uzun olmalıdır.

 

unsigned long

unsigned long değişkenler, sayı depolama için genişletilmiş boyutlu değişkenlerdir ve 32 bit (4 bayt) depolar. Standart long’un aksine, unsigned long negatif sayıları saklamamakta ve 0 ile 4.294.967.295 (2 – 32 – 1) arasındadır.

 

short

Bir short 16 bitlik veri tipidir.

Tüm Arduinolarda (ATMega ve ARM tabanlı) 16 bit (2 bayt) değerindedir. Bu, -32,768 ila 32,767 (minimum -2 ^ 15 değeri ve maksimum (2 ^ 15) – 1) değeri sağlar.

 

float

Ondalık noktası olan bir sayı sayılar için veri türüdür, . Kayan noktalı sayılar genellikle tam sayılardan daha fazla rakama sahip oldukları için analog ve sürekli değerlere yaklaşmak için kullanılır. Kayan noktalı sayılar, 3.4028235E + 38 ve -3.4028235E + 38 kadar düşük olabilir. Bunlar 32 bit (4 bayt) bilgi olarak saklanır.

Değiştirilebilir  6-7 ondalık basamak hassasiyeti vardır. Bunun anlamı, ondalık sayının sağındaki sayı değil, toplam rakam sayısıdır. Arduino’da bir çift (ör. 15 haneye kadar) kullanarak daha fazla hassasiyet elde edebileceğiniz diğer platformlardan farklı olarak, double, float ile aynı boyuttadır.

Kayan nokta sayıları kesin değerler değildir ve kıyaslandığında garip sonuçlar verebilir. Örneğin 6.0 / 3.0  sonucu 2.0 olmayabilir. Sayılar arasındaki farkın mutlak değerinin küçük bir sayıdan az olduğunu kontrol etmelisiniz.

Kayan nokta matematiği, hesaplamaların gerçekleştirilmesinde tamsayı matematikten çok daha yavaştır, bu nedenle, örneğin bir döngünün kritik bir zamanlama fonksiyonu için en yüksek hızda çalışması gerekiyorsa bundan kaçınılmalıdır. Programcılar genellikle, kayan nokta hesaplamalarını, hızı artırmak için tamsayı matematiğine dönüştürmek için bazı uzunluklara giderler.

 

double

double kayan nokta sayısı Uno ve diğer ATMEGA tabanlı kartlarda, bu 4 bayt kaplar. Yani, bir kazanç olmadan float ile aynıdır.

Arduino Due’da, doublelar 8 bayt (64 bit) hassasiyete sahiptir.

 

array

Dizi, bir index numarası ile erişilen değişkenler koleksiyonudur. Arduino’nun dayandığı C programlama dilinde diziler karmaşık olabilir, ancak Arduinoda dizileri kullamak nispeten basittir.

 

 

 

Yorum yap

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: