Bir değeri veya karakteri daha sonra tekrardan kullanmak için hafızada tutabiliriz. Bu değerler değişkenlerde tutulur.

Değişkenleri kova ya benzetebiliriz. Kovanın bir ismi olur -ki bu değişkenin adıdır. Bir de içindeki değer olur bu da değişkenin değeridir. (Veri)

Not: unsigned ifadesi pozitif sayılar anlamına gelmektedir.

Kısa Bir Hatırlatma
1 ve 0 ların her biri 1 Bit’ tir.
1 ve 0 ların 8 tanesi bir araya geldiğinde 1 Byte oluştur. (Yani 10110111 gibi)
1024 Byte => 1KB(Kilobyte)
1024 KB = 1MB(Megabyte)
1024 MB = 1GB(Gigabyte)
1024 GB = 1TB (Terabyte)

Örneğin 12 sayısı ikilik sistemde (1100)2 sayısına karşılık gelir. Bu sayı ikilik sistemde 4 basamakla gösterilmekte, yani 4 bitlik bir bilgidir.
Sayıları ikili sistemdeki karşılğını bulmak için bu siteyi kullanabilirsiniz
Yazıların ikili sistemdeki karşılığını bulmak için bu siteyi kullanabilirsiniz.
Değişken Tanımlama
Değişken tanımlarken değişkenin adı, değişkenin değeri ve değişken için uygun veri türü belirlenmelidir.

Bir değeri değişken olarak tanımlarsak birçok yerde aynı değeri kullanabiliriz. (Buton, delay gibi)
Değişken tanımlarken diğer dillerde de olduğu gibi dikkat etmemiz gereken bazı noktalar var. Bunlar;
- Değişkene içerdiği değer ile tutarlı bir isim vermeliyiz. Mesela değişkenin içine veri olarak yaş değerini tutuyorsak. Değişken ismini yas, kisinin_yasi gibi isimler vermeliyiz.
- Değişkene isim verirken boşluk bırakmamalıyız. Boşluk yerine _ (alt tire) bırakabiliriz (kisininYasi, haftaninGunleri, tcKimlikNo gibi her kelimenin baş harfini büyük yazabiliriz. Buradaki amaç okunabilirliği artırmaktır. Bu yazım şekline Deve Notasyonu dedir ve genellikle küçük harfle başlar. )
- Değişkene isim verirken mutlaka bir karakter ile başlamalıdır. Değişken ismi sayı ile başlamaz ancak sayı içerebilir veya sayı ile bitebilir.
- Değişken ismi verirken özel karakterler kullanmamalıyız ( _ hariç) – (*,/, -,+, #,%,&,(,=,?,$,[,{ gibi…)
- Son olarak değişken adı yazarken Türkçe Karakter kullanmamalıyız. (ğ, Ğ, ş, Ş, ı, İ, ü, Ü, ö, Ö, ç, Ç)
- Arduino algoritmasındaki kodların isimleri değişken olarak verilemez (void, int, loop, setup vb.)
- Aynı kod içerisinde birden fazla aynı isimden değişken tanımlanamaz.
Şimdi de lamba yakma uygulamamızı değişken kullanarak yapalım
int led=9; int beklemeSuresi=1000; void setup() { pinMode(led,OUTPUT); //9 numaralı dijital pin çıkış olarak ayarlandı } void loop() { digitalWrite(led,HIGH); //9 numaralı pin in elektriğini aç delay(beklemeSuresi); // 1 saniye bekle digitalWrite(led,LOW); //9 numaralı pin in elektriğini kapat delay(beklemeSuresi); //1 saniye bekle }
İlerleyen zamanda pin 9 yerine diyelim ki 10. pini kullanmak istedik. Tek yapmamız gereken int led=10; yapmamız olacaktır.
Ayrıca yukarıda tanımladığımız değişken global değişken olarak tanımlanır. Yani değişkene kod içerisinde her yerden ulaşabiliriz.
Lokal(yerel) değişkenlere her yerden ulaşılamaz. Genellikle bir fonksiyon içerisinde tanımlanır.
int beklemeSuresi=1000; void setup() { int led=9; //değişkeni lokal olarak tanımladım pinMode(led,OUTPUT); //9 numaralı dijital pin çıkış olarak ayarlandı } void loop() { digitalWrite(led,HIGH); //9 numaralı pin in elektriğini aç delay(beklemeSuresi); // 1 saniye bekle digitalWrite(led,LOW); //9 numaralı pin in elektriğini kapat delay(beklemeSuresi); //1 saniye bekle }
Yukarıdaki örnekte int led=9; değişkenini void setup(){} fonksiyonu içerinde tanımladığım için bu değişken lokal değişken oldu. Sadece setup() fonksiyonu içerisinde kullanılır. Ancak void loop(){} içerisinde kullanılamaz. Bu durumda programımız hata verecektir. Çünkü digitalWrite(led,HIGH); kodu içindeki led değişkeni tanımsız görünecektir.
Birkaç değişken örneği;
byte sayac; #sayaç isimli değişken oluşturulmuş ve herhangi bir değer atanmamış
byte Led=10 //led isimli değişken tanımlanmış ve ddeğeri 10 olarak belirlenmiş.

Flip-Flop Uygulaması (Yanıp Sönen LED)

int beklemeSuresi=500; byte led1=7; byte led2=4; void setup() { pinMode(led1,OUTPUT); //7 NUMARALI PİNİ ÇIKIŞ YAPTIK. ELEKTRİK ALACAĞIZ pinMode(led2,OUTPUT); } void loop() { digitalWrite(led1,HIGH); digitalWrite(led2,LOW); delay(beklemeSuresi); //yarım saniye bekle digitalWrite(led1,LOW); digitalWrite(led2,HIGH); delay(beklemeSuresi); //yarım saniye bekle }
Yürüyen Işık Devresi

int beklemeSuresi=200; byte led1=7; byte led2=4; byte led3=3; void setup() { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); } void loop() { digitalWrite(led1,HIGH); digitalWrite(led2,LOW); digitalWrite(led3,LOW); delay(beklemeSuresi); digitalWrite(led1,LOW); digitalWrite(led2,HIGH); digitalWrite(led3,LOW); delay(beklemeSuresi); digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,HIGH); delay(beklemeSuresi); }