Değişkenler
Değişkenler, içerisinde veri saklamak için kullanılan bellekte en az bir byte yer kaplayan ifadelerdir. int a = 5; komutuyla “a” isminde integer (tam sayı) bir değişken oluşturulmuş ve içerisine 5 verisi (sabiti) yüklenmiştir. “a” değişkeninin içeriği program içerisindeki çeşitli işlemlerle (matematiksel, port giriş bilgileri vb.) değişebilir. Değişkenler farklı veri tiplerinde tanımlanır. Veri tipine göre hafızada kapladıkları alan değişir.
Değişkenlere isim verme kuralları şunlardır:
- Bir değişkenin ilk harfi rakam olamaz.
- Değişken isimlerinde alt tire “_” hariç özel karakter bulunamaz.
- Türkçe karakter kullanılamaz.
- Boşluk içermez.
- Arduino komutları (int, loop, float vb.) değişken adı olamaz.
- Küçük büyük harf duyarlıdır. Örneğin “LED” ile “led” farklı değişken isimleridir.
Programın okunabilirliği için değişken isimleri anlamlı olmalıdır. Örneğin butonun durumunu kontrol etmek için butonDurum adında bir değişken oluşturulabilir. Değişken adı birden fazla kelimeden oluşuyorsa ya kelimeler arası alt çizgi kullanılır ya da daha çok tercih edilen ve kabul gören şekliyle baştaki kelime hariç diğer kelimelere büyük harfle başlanır. “ledPin”, “triggerPin-Durum”, “potDegeri” gibi değişken isimleri Arduino söz dizimine benzer okunabilirliği yüksek örnek değişken isimleridir. Tablo 2.1’de değişken tipleri ve özellikleri görülmektedir.



Değişken Niteleyiciler
Static: Sadece tanımlandığı fonksiyonda içeriği değişebilir. Diğer fonksiyonlar bu değişkenin içeriğini değiştiremez.
Const: Değişkenin içeriğinin hiçbir şekilde değiştirilemeyeceğini belirtir.
Volatile: Tanımlanan değişkenler Arduino’nun RAM bölgesine kaydedilir. Sadece interruptla değişir.
Değişkenlerin Kapsamı
Bir değişken tanımlandığı yere göre programın tamamında, belli bir fonksiyonda hatta tek bir döngüde faaliyet gösterebilir.
Global Değişkenler: Herhangi bir fonksiyonun içinde değil de en üstte tanımlanma blokunda tanımlanan değişkenlerdir. Program bitene kadar bellekten alınan alan geri verilmez ve değişkenin değeri korunmaya devam eder. Bütün fonksiyonlarda kullanılabilir. Yerel fonksiyonlarda aynı isimle farklı değişken oluşturulamaz.
Local Değişkenler: Bir blok veya fonksiyon içinde tanımlanır. Sadece tanımlandıkları alanda kullanılır. Bir fonksiyonda tanımlandılarsa o fonksiyon bittikten sonra alınan alan belleğe geri verilir.
Farklı fonksiyonlar içinde aynı ada sahip yerel değişkenler tanımlamak mümkündür.
Örnek: Değişkenlerin faaliyet alanını gösterir.
int sayi; // Tüm fonksiyonlar sayi değişkenini kullanabilir.
void setup() {
// …
}
void loop() {
int i;
// “i” değişkeni sadece loop fonksiyonu içinde kullanılabilir.
float f; // “f” değişkeni sadece loop fonksiyonu içinde kullanılabilir. // …
for (int j = 0; j < 100; j++) {
// “j” değişkeni sadece bu for döngüsü içinde kullanılır.
}
}
Değişken Araçları
PROGMEM: Bilgiyi SRAM bellek yerine flash bellekte depolamaya yarar. Arduino programında pek çok char tanımlanırsa SRAM yetersiz kalabilir. Bu yüzden çok uzun metinler PROGMEM ile flash belleğe kaydedilir.
sizeof(): Değişkenlerin veya dizilerin byte sayısını verir.
Sabitler
Sabitler, Arduino dilinde önceden tanımlanmış ifadelerdir. Programların okunmasını kolaylaştır mak için kullanılır. Sabitler değişken ismi olarak kullanılamaz.
Mantıksal düzeyleri tanımlama: true ve false (Boolen sabitleri)
Pin seviyelerini tanımlama: HIGH ve LOW
Dijital pin modlarını tanımlama: INPUT, INPUT_PULLUP ve OUTPUT
Dâhilî LED (13 numaralı pine bağlı): LED_BUILTIN
