Arduino Programlama Dili: Temel Yapılar (Değişkenler)
Arduino Programlama Dili: Temel Yapılar - Değişkenler
Merhaba Arduino severler!
Bu yazımızda Arduino programlamanın temel taşlarından biri olan değişkenleri inceleyeceğiz. Değişkenler, programlarımızda verileri saklamak, işlemek ve yönetmek için kullandığımız temel araçlardır. Tıpkı bir kutu gibi düşünebilirsiniz, bu kutunun içine sayı, yazı veya herhangi bir bilgiyi koyup, gerektiğinde bu bilgiye erişebiliriz.
Değişken Nedir?
Değişkenler, bilgisayarın belleğinde (RAM) belirli bir alanı temsil eden, adlandırılmış depolama birimleridir. Her değişkenin bir adı (identifier) ve bir türü (data type) vardır. Tür, değişkenin hangi türde veriyi saklayabileceğini (sayı, metin, vb.) belirler. Ad ise, değişkenin değerine erişmek için kullandığımız etikettir.
Değişken Tanımlama (Declaration)
Bir değişkeni kullanmadan önce tanımlamamız gerekir. Tanımlama işlemi, değişkenin adını ve türünü belirtmekten ibarettir. Arduino'da değişken tanımlama sözdizimi şöyledir:
veri_tipi değişken_adı;
Örneğin, bir tam sayı (integer) değişkeni tanımlamak için:
int sayac;
Bu ifade, "sayac" adında bir tam sayı değişkeni oluşturur. Henüz bu değişkene bir değer atamadık, ancak artık bu değişkeni programımızda kullanabiliriz.
Veri Tipleri (Data Types)
Arduino'da sıkça kullanılan bazı veri tipleri şunlardır:
- int: Tam sayıları (örneğin, -10, 0, 5, 100) saklamak için kullanılır. 2 byte (16 bit) yer kaplar. -32,768 ile 32,767 arasındaki değerleri saklayabilir.
- long: Daha büyük tam sayıları saklamak için kullanılır. 4 byte (32 bit) yer kaplar. -2,147,483,648 ile 2,147,483,647 arasındaki değerleri saklayabilir.
- float: Kayan noktalı sayıları (ondalıklı sayılar, örneğin 3.14, -2.5, 1.0) saklamak için kullanılır. 4 byte yer kaplar.
- double: Daha yüksek hassasiyette kayan noktalı sayıları saklamak için kullanılır. Arduino'da `float` ile aynıdır (4 byte yer kaplar).
- char: Tek bir karakteri (örneğin, 'a', 'B', '5') saklamak için kullanılır. 1 byte yer kaplar.
- boolean: Doğru (true) veya yanlış (false) değerlerini saklamak için kullanılır. 1 byte yer kaplar.
- byte: 0 ile 255 arasındaki değerleri saklamak için kullanılır. 1 byte yer kaplar.
- word: 0 ile 65535 arasındaki değerleri saklamak için kullanılır. 2 byte yer kaplar.
- unsigned int: `int` veri tipinin işaretsiz versiyonudur. 0 ile 65535 arasındaki değerleri saklayabilir.
- unsigned long: `long` veri tipinin işaretsiz versiyonudur. 0 ile 4,294,967,295 arasındaki değerleri saklayabilir.
- String: Metin dizilerini saklamak için kullanılır. Ancak Arduino'da `String` sınıfını kullanmak yerine, karakter dizilerini (char array) kullanmak daha iyi bir pratiktir, çünkü `String` sınıfı bellek yönetiminde sorunlara yol açabilir.
Değişkene Değer Atama (Assignment)
Bir değişkene değer atamak için eşittir (=) işaretini kullanırız.
değişken_adı = değer;
Örneğin:
int sayac = 10; // "sayac" değişkenine 10 değerini atadık
float pi = 3.14; // "pi" değişkenine 3.14 değerini atadık
char ilkHarf = 'A'; // "ilkHarf" değişkenine 'A' karakterini atadık
boolean durum = true; // "durum" değişkenine doğru (true) değerini atadık
Örnek Uygulama
Şimdi basit bir örnekle değişkenlerin kullanımını görelim. Bu örnekte, bir LED'i yakıp söndüreceğiz. LED'i kontrol etmek için bir pini çıkış olarak ayarlayacak ve bir değişken kullanarak LED'in durumunu (yanıp yanmadığını) kontrol edeceğiz.
Devre Bağlantısı:
- LED'in anot (uzun bacak) -> 220 ohm direnç -> Arduino Dijital Pin 13
- LED'in katot (kısa bacak) -> Arduino GND
// LED'in bağlı olduğu pini tanımlıyoruz
const int ledPin = 13;
// LED'in durumunu saklayacak değişkeni tanımlıyoruz
boolean ledDurumu = false;
void setup() {
// LED pinini çıkış olarak ayarlıyoruz
pinMode(ledPin, OUTPUT);
}
void loop() {
// LED'in durumunu tersine çeviriyoruz (yanıyorsa söndürüyor, sönükse yakıyoruz)
ledDurumu = !ledDurumu;
// LED'i yakıp söndürüyoruz
digitalWrite(ledPin, ledDurumu);
// Kısa bir süre bekliyoruz (1 saniye)
delay(1000);
}
Bu kodda, ledDurumu
adında bir boolean değişkeni tanımladık. Bu değişken, LED'in o anki durumunu (yanıp yanmadığını) saklar. loop()
fonksiyonunda, bu değişkenin değerini sürekli olarak tersine çevirerek (true ise false, false ise true yaparak) LED'i yakıp söndürüyoruz.
Değişkenlerin Kapsamı (Scope)
Bir değişkenin nerede tanımlandığı, o değişkenin hangi bölgelerde kullanılabileceğini belirler. Buna değişkenin kapsamı denir. Arduino'da genel (global) ve yerel (local) olmak üzere iki tür kapsam vardır.
- Genel Değişkenler: Fonksiyonların dışında tanımlanan değişkenlerdir. Programın herhangi bir yerinden erişilebilirler.
- Yerel Değişkenler: Bir fonksiyon içinde tanımlanan değişkenlerdir. Sadece o fonksiyon içinde erişilebilirler.
Örneğin:
int globalSayi = 10; // Genel değişken
void setup() {
int yerelSayi = 5; // Yerel değişken
Serial.begin(9600);
Serial.println(globalSayi); // Global değişken kullanılabilir
Serial.println(yerelSayi); // Yerel değişken kullanılabilir
}
void loop() {
// Serial.println(yerelSayi); // Hata! Yerel değişken loop() içinde erişilemez
Serial.println(globalSayi); // Global değişken kullanılabilir
delay(1000);
}
Unutmayın, değişkenleri doğru şekilde kullanmak, Arduino projelerinizin başarısı için kritik öneme sahiptir. Bu temel bilgileri özümsedikten sonra, daha karmaşık projelere geçebilirsiniz.
Umarım bu yazı değişkenler konusunda size yardımcı olmuştur. Bir sonraki yazımızda görüşmek üzere!
Etiketler: Arduino, Programlama, Değişkenler, Veri Tipleri, Arduino Dersleri, Arduino Başlangıç
```
0 yorum: