Arduino veri türleri. Arduino’yu programlarken önemli bir rol oynarlar. Bir bilgisayar olan Arduino, veri iletiminin nasıl yapıldığını bilmez veya umursamaz (veri aldığı şekli bilmez veya umursamaz).
Veri türleri olmadan, o değişkene ayrılan bellek miktarını belirleyemezsiniz ve değişkende hangi tür verilerin saklanabileceğini belirlemek, değişkenin veri türünü önemli kılar.
Bir veri türü, bir değişkenin tuttuğu değeri ve üzerinde gerçekleştirebileceğimiz işlemleri tanımlayan bir sınıflandırma olarak tanımlanabilir. Değişkenlerin yanı sıra, döndürdükleri değerlere bağlı olarak fonksiyonların da veri türleri vardır.
Bu eğitimde, Arduino’nuzu programlarken kullanacağınız farklı veri türlerini öğreneceksiniz. Veri türleri şunlardır:
- void
- boolean
- char
- Unsigned char
- byte
- int
- Unsigned int
- Word
- Long
- Unsigned long
- short
- float
- double
Bu eğitim ARRAY’LERİ, işaretçileri veya dizeleri kapsamayacaktır çünkü bunlar daha özel ve daha fazla temel kavram içerir.
Daha fazla uzatmadan, ilk veri türümüze, void‘a geçelim.
void
void, yalnızca fonksiyonlar tanımlanırken kullanılır. Fonksiyonun çağrıldığında hiçbir değer döndürmemesi beklendiğini belirtmek için kullanılır.
Setup ve Loop fonksiyonlarının void türünde olduğunu ve herhangi bir bilgi döndürmediğini belirtmek önemlidir.
Örnek void kodu
void setup()
{
Serial.begin(9600);
}
void loop()
boolean
Bir boolean, ya true ya da false olan iki boolean değerinden birini tutar. boolean, Arduino tarafından tanımlanan bool için standart dışı bir tür takma adıdır.
Bu Arduino veri türü 8 bit / 1 byte bellek kullanır.
Örnek boolean kodu
int LEDpin = 5; // LED pin 5'te
int switchPin = 13; // 13'te anlık anahtar, diğer tarafı toprakla bağlı
boolean running = false;
void setup()
{
pinMode(LEDpin, OUTPUT);
pinMode(switchPin, INPUT);
digitalWrite(switchPin, HIGH); // pullup direncini aç
}
void loop()
{
if (digitalRead(switchPin) == LOW)
{ // anahtar basılı - pullup normalde pini yüksek tutar
delay(100); // anahtarı debounce etmek için gecikme
running = !running; // running değişkenini değiştir
digitalWrite(LEDpin, running); // LED ile göster
}
}
char
char, karakterin kısaltmasıdır ve bir karakter değerini (A, B, C) saklamak için kullanılan bir veri türüdür. Birden fazla karakter başlatıldığında, tek tırnak içinde yazılır (örneğin, ‘A’), ancak dizeler çift tırnak kullanır (örneğin, ”ABC”)
Karakterler sayılar olarak saklanır. Belirli kodlama için, aşağıda gösterilen ASCII Tablosuna başvurabilirsiniz.

Karakterler sayılar olarak saklandığı için, ASCII değerini kullanarak üzerinde aritmetik işlemler yapabilirsiniz. char veri türü, -128 ile 127 arasındaki sayıları kodlar.
Bu Arduino veri türü en az 8 bit bellek kullanır. Karakterleri saklamak için char kullanmanız önerilir.
Örnek char kodu
char myChar = 'A';
char myChar = 65; // her ikisi de eşdeğerdir
Unsigned char
unsigned char veri türü, 0 ile 255 arasındaki sayıları kodlar.
Bu Arduino veri türü, byte veri türü ile benzer olan 8 bit / 1 byte bellek kullanır. Arduino programlama stilinin netliği ve tutarlılığı için, unsigned bir byte veri türü olarak byte veri türü önerilir.
Örnek Unsigned char kodu
unsigned char myChar = 240;
byte
Unsigned char veri türüne benzer şekilde, byte 0-255 aralığında 8 bitlik unsigned bir sayıyı kodlar.
Örnek byte kodu
byte m = 25 ;//byte türünde bir değişkenin tanımı ve 25 ile başlatılması
int
int, tam sayı anlamına gelir ve Arduino’da en yaygın kullanılan veri türlerinden biridir. Sayıları saklamak için birincil veri türünüzdür.
int boyutunun karttan karta değiştiğini unutmayın. Örneğin, ATmega tabanlı Arduino kartlarında (Uno, Mega ve Nano gibi) bir int 2 byte bellek kullanır ve -32,768 ile +32,767 aralığına sahiptir. Ancak Due ve SAMD tabanlı kartlarda (örneğin, MKR1000, Zero) int 4 byte bellek kullanır ve -2,147,483,648 ile +2,147,483,647 aralığına sahiptir.
Örnek int kodu
int countUp = 0; // 'countUp' adında bir tam sayı değişkeni oluşturur
Unsigned int
Unsigned int, 2 byte değer saklama açısından int ile benzerdir. Ancak, negatif sayıları saklamak yerine yalnızca 0 ile +65,535 arasındaki pozitif değerleri saklar.
Unsigned int boyutu da int gibi karttan karta değişir; ATmega tabanlı Arduino kartları 2 byte değer saklarken, Due ve SAMD tabanlı kartlar 4 byte (32-bit) değer saklar ve 0 ile 4,294,967,295 aralığına sahiptir.
Unsigned int ile int arasındaki ana fark, en yüksek bitin/işaret bitinin nasıl yorumlandığıdır. int türünde (ki bu işaretlidir), en yüksek bit “1” ise, sayı negatif bir sayı olarak yorumlanır ve diğer 15 bit ile birlikte yorumlanır.
Örnek unsigned int kodu
unsigned int ledPin = 13;
Word
Word veri türü, önceki unsigned int veri türüne çok benzer. ATmega tabanlı Arduino kartlarında, bir word 16 bitlik unsigned bir sayıyı 2 byte değer ile saklar ve 0 ile +65535 aralığındadır. Due ve SAMD tabanlı kartlar için ise 32 bitlik unsigned bir sayıyı 4 byte değer ile saklar.
Örnek Word kodu
word w = 10000;
Long
Long değişkenleri, sayı saklamak için genişletilmiş boyutlu değişkenlerdir. Long değişkenleri, -2,147,483,648 ile +2,147,483,647 aralığında 4 byte (32 bit) bellek kullanır.
Örnek Long kodu
long speedOfLight = 186000L; // Long türünde bir değişkenin tanımı ve 186000 ile başlatılması
Unsigned long
Long veri türüne benzer şekilde, unsigned long değişkenleri sayı saklamak için genişletilmiş boyutlu değişkenlerdir ve 4 byte (32 bit) bellek kullanır. Ancak, standart Long’ların aksine, unsigned long’lar negatif sayıları saklamaz. 0 ile +4,294,967,295 aralığına sahiptirler.
Örnek Unsigned long kodu
unsigned long time;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.print("Zaman: ");
time = millis();
// program başladığından beri geçen zamanı yazdırır
Serial.println(time);
// büyük miktarda veri göndermemek için bir saniye bekle
delay(1000);
}
short
Short veri türü, 16 bitlik bir değeri saklar ve Tüm Arduino’larda 2 byte bellek kullanır. -32,768 ile +32,767 aralığına sahiptir.
Örnek short kodu
short ledPin = 13
float
Float, ondalık sayıları saklayabildiği için en önemli Arduino veri türlerinden biridir. Bu veri türü, ondalık noktası olan sayılar için kullanılır.
Ondalık sayılar, genellikle analog ve sürekli değerleri yaklaşık olarak temsil etmek için kullanılır çünkü tam sayılara göre daha yüksek çözünürlük sunarlar.
Bu veri türü 32 bit / 4 byte bellek kullanır ve -3.4028235E+38 ile +3.4028235E+38 aralığına sahiptir.
Örnek float kodu
float myfloat;
float sensorCalbrate = 1.117;
int x;
int y;
float z;
x = 1;
y = x / 2; // y şimdi 0 içeriyor, int'ler kesirleri tutamaz
z = (float)x / 2.0; // z şimdi .5 içeriyor (2.0 kullanmalısınız, 2 değil)
double
Bu veri türü, çift hassasiyetli bir kayan nokta sayısıdır. ATmega tabanlı Arduino kartlarında (Uno, Mega ve Nano gibi) çift hassasiyetli kayan nokta sayısı 4 byte (32 bit) yer kaplar. Yani, çift uygulaması tam olarak float ile aynıdır, hassasiyette bir kazanç yoktur.
Ancak, Due ve SAMD tabanlı kartlarda (örneğin, MKR1000, Zero) çift 8 byte (64-bit) hassasiyete sahiptir.
Örnek double kodu
double num = 45.352 ;// double türünde bir değişkenin tanımı ve 45.352 ile başlatılması
Arduino’nuzu programlarken hangi veri türünü seçmelisiniz?
Genel olarak, seçtiğiniz veri türü programlama sırasında çok büyük bir sorun değildir. Ancak, boyut ve hız söz konusu olduğunda, doğru veri türünü seçmek kritik öneme sahiptir.
Bir veri türü seçerken, saklamanız gereken değeri tamamen içerecek en küçük veri türünü seçmeye çalışın. Örneğin, bir pin numarasını saklamak istiyorsanız, ancak kartınızda 128’den az pin varsa, bu değeri byte veya char türünde saklamak en iyi seçenektir.
Diğer yandan, 128 pinin üzerinde ancak 255 pinin altında bir kartınız varsa, byte veya unsigned char veri tipini kullanabilirsiniz.
Daha küçük veri tipleri kullanarak, daha az bellek okuması gerektirdiğinden hızınızı artırabilirsiniz.
Sonuç olarak, veri tipinizi seçerken, her zaman değeri saklamak için gerekli olan en küçük veri tipini kullanın.
Sonuç
Bu eğitim için hepsi bu kadar. Bu Arduino veri tipleri hakkında herhangi bir sorunuz varsa, aşağıda bir yorum bırakmayı unutmayın!
Arduino’nuzu programlamaya başlamak istiyorsanız ancak hangi Arduino kartını alacağınızı bilmiyorsanız, endişelenmeyin; aşağıda hemen hemen tüm Arduino modellerini, ayrıca Seeeduino modellerimizi karşılaştıran basit bir tablo var.
7 resmi Arduino kartı ve 13 Seeeduino kartı için işlemci, çalışma voltajı, giriş voltajı, saat hızı, dijital I/O, PWM, analog girişler, UART, Grove bağlantıları, flash bellek ve USB bağlantıları dahil olmak üzere spesifikasyonları listeledik. Umarım bu tablo, farklı Arduino kartlarını hızlı bir şekilde karşılaştırmanıza ve projeniz için en uygun olanı seçmenize yardımcı olur.
| İşlemci | Çalışma Voltajı | Saat Hızı | Dijital I/O | PWM | Analog Girişler | UART | Grove | Flash(KB) | USB | |
|---|---|---|---|---|---|---|---|---|---|---|
| Arduino Uno | ATmgea328 | 5V | 16 MHZ | 14 | 6 | 6 | 1 | 0 | 32 | Micro USB |
| Arduino Mega 2560 R3 | ATmega2560 | 5V | 16 MHZ | 54 | 15 | 16 | 4 | 0 | 256 | Type-B USB |
| Arduino Nano | ATmega328 | 5V | 16 MHZ | 14 | 6 | 8 | 1 | 0 | 32 | Mini USB |
| Arduino Micro | ATmega32u4 | 5V | 16 MHZ | 20 | 7 | 12 | 2 | 0 | 32 | Micro USB |
| Arduino YUN | ATmega32u4 | 5V | 16 MHZ | 20 | 7 | 12 | 2 | 0 | 32 | Micro USB |
| Arduino MKR1000 wifi | ATSAMW25 SoC | 5V | 48 MHZ | 8 | 12 | 7 | 1 | 0 | 256 | Micro USB |
| Seeeduino Mega | ATmega2560 | 5V/3.3V | 16MHz | 70 | 14 | 16 | 4 | 0 | 256 | Micro USB |
| Seeeduino Lite | ATmega32u4 | 5V/3.3V | 16MHz | 20 | 7 | 12 | 1 | 2 | 32 | Micro USB |
| Seeeduino GPRS | ATmega32u4 | 5V/3.3V | 16MHz | 20 | 7 | 12 | 1 | 0 | 32 | Micro USB |
| Seeeduino Cloud | ATmega32u4 | 5V/3.3V | 16MHz | 20 | 7 | 12 | 1 | 2 | 32 | Micro USB |
| Seeeduino V4.2 | ATmega328 | 5V/3.3V | 16MHz | 14 | 6 | 6 | 1 | 3 | 32 | Micro USB |
| Seeeduino Stalker V3.1 | Atmega328P | 5V/3.3V | 8MHz | 14 | 0 | 6 | 1 | 2 | 32 | Mini USB |
| Seeeduino LoRaWAN | ATSAMD21G18 | 5V/3.3V | 48MHz | 20 | 20 | 6 | 2 | 4 | 256 | Micro USB |
| Seeeduino LoRaWAN W/GPS | ATSAMD21G18 | 3.3V | 48MHz | 20 | 20 | 6 | 2 | 4 | 256 | Micro USB |
| Seeeduino Lotus V1.1 | Atmega328P | 5V | 16MHz | 14 | 6 | 7(0-5, ADC) | 1 | 12 | 32 | Micro USB |
| Seeeduino Lotus Cortex-M0+ | SAMD21 | 3.3V | 48MHz | 14 | 10 | 6 | 2 | 12 | 256 | Micro USB |
| Seeeduino Cortex-M0+ | SAMD21 | 5V | 48MHz | 14 | 10 | 6 | 1 | 3 | 256 | Type-C |
| Seeeduino Nano | Atmega328P | 5V | 16MHz | 14 | 6 | 8 | 1 | 1 | 32 | Type-C |
| Seeeduino Crypto | ATmega4809 | 5V | 16Mhz | 14 | 5 | 6 | 1 | 3 | 48 | Type-C |
| Seeeduino XIAO | SAMD21G18 | 3.3V | 48MHz | 11 | 10 | 11 | 1 | 0 | 256 |
