Arduino programlama dili sadeleştirilmiş C++ dilini kullanmaktadır. Bu sadeleştirilmiş C++ dili; tanımlamalar, kurulum ve ana program bloğu olmak üzere genel olarak üç bölümden oluşur. Arduino programını açtığımızda karşımıza çıkan ekranda “void setup()” ve “void loop()” olmak üzere iki ana komut satırı çıkmaktadır. Arduino programlama dilinde bu satırların en üstüne “Tanımlamalar” yapılır. Fakat bunlara geçmeden Arduino programlama dili hakkında bazı temel unsurların bilinmesi gereklidir:
- Program yazımı belirli bir kalıpta ve kümeler halinde olmalıdır.
- Kümeler, “{ }” küme parantezleri ile oluşturmalıdır.
- Yazılacak komutlar aynı satıra veya alt alta satırlar halinde yazılmalıdır.
- Tüm komutlar, noktalı virgül (;) ile bitmelidir. (Programın hata vermemesi için her satırdan sonra “;” (noktalı virgül) konulmalıdır.) İstisna olarak blok başlatan ifadelerden sonra noktalı virgül kullanılmamalıdır.
- Programda kullanılan tüm değişkenler tanımlanmalıdır.
- Kullanılacak kütüphaneler programın başına yani tanımlamalar kısmına çağrılır ve aktifleştirilir.
- Açıklamalar “//” ve “/* */ ” şekilleri ile yazılır.
- #define komutu tanımlama işlemlerinde kullanılır.( Pi sayısının 3.14 olarak tanımlanması gibi)
- #include komutu ile kütüphane çağrılır.
Kütüphane Ekleme
Aduino’da genel fonksiyonlar için herhangi bir kütüphaneye ihtiyaç duyulmaz. Fakat genel fonksiyonlar dışında ihtiyacımız olan fonksiyonları kullanabilmemiz için kütüphaneler bize yardımcı olur. Arduino geliştiricileri tarafından yazılan fonksiyonları kullanmak için, o fonksiyonun kütüphanesini Arduino programını kurduğunuz dizinin altında bulunan ‘libraries’ klasörüne taşımamız ve çalışmamıza eklemeniz gerekir. (Örneğin projemizde bir lcd ekran kullanacaksak bunun için yazılan bir kütüphaneyi projemize ekleyerek özel fonksiyonları kullanabiliriz.) Kütüphaneyi projemize aşağıdaki kod ile ekleyebiliriz:
VoidSetup
Arduino karta ilk enerji verildiğinde veya yeniden başlatıldığında setup() fonksiyonu bir defaya mahsus olarak çalışır. Bu fonksiyon değişkenler, pin modları, seri iletişim, kütüphaneler vb. için kullanılır. Pinlerin giriş mi, çıkış mı olacağı bir kere buraya yazılır ve hafızada tutulur böylece kartın bir sonraki açılışında bir daha o kodun yazılmasına gerek kalmaz.
VoidLoop
Loop kelimesinin Türkçe anlamı “DÖNGÜ”dür. Bu bölüme yazılan kodlar “void setup” fonksiyonundan sonra sürekli döngüsel şekilde okunur ve ana program kodları “void loop” içerisine yazılır.
PinMode
Arduino geliştirme kartı üzerinde bulunan pinler giriş veya çıkış olarak tanımlanabilmektedir. Pinler “Düğme” gibi elemanlar için giriş, “Led” gibi elemanlar için çıkış olarak kullanılabilir. Arduino’da kod yazmaya başlarken ilk olarak Setup içerisinde kullanılacak pinlerin tanımlanması gerekmektedir. Bunun için aşağıdaki kod kullanılabilir:
Yukarı ki kodda 10. pin çıkış pini olarak ayarlandı. Giriş pini olarak ayarlamak için OUTPUT yerine INPUT yazılması yeterlidir.
DigitalWrite
Çıkış olarak tanımladığımız pinlerden enerji vermek için veya verilen enerjiyi kesmek için kullanılır.
Yukarıdaki kodda daha önce çıkış pini olarak tanımladığımız 10.pine enerji vermiş olmuş. Verilen bu enerjiyi kesmek için “HIGH” yerine “LOW” yazılması yeterlidir.
AnalogWrite
Bir pine analog bir değer(PWM) yazılmasında kullanılır. Örneğin bir LED’in farklı parlaklık değerlerinde yakılması ya da bir motorun farklı hızlarda çalıştırılması gibi uygulamalarda kullanılabilir. (PWM değeri 0 ile 255 arasında ayarlanmalıdır.)
DigitalRead
Giriş olarak tanımlanmış bir pinin gerilimini ölçmek için kullanılır. Eğer gerilim yüksek, yani 5 volta yakın ise “HIGH”, gerilim düşük, yani 0 volta yakın ise “LOW” olacaktır. Yukarıdaki örneklerde giriş olarak tanımladığımız 10 nolu pindeki durumu daha önceden tanımlanmış “gerilim” değişkenine yazdırabiliriz:
AnalogRead
“digitalRead” komutu bir pindeki gerilimi tam olarak ölçemediğinden böyle bir durumda “analogRead” kullanılmalıdır. Bunun için seçilen pinin analog olmasına dikkat edilmelidir. Genellikle Arduino kartlar üzerinde analog pinler A0, A1, A2, vb, olarak işaretlenmiştir.
A1’deki değeri ‘analoggerilim’ değişkenine kaydedelim. A1’deki gerilim otomatik olarak 10 bit olarak kaydedilecektir.
NOT: “DigitalRead” ve “Analog Read” konuları ilerleyen yazılarda detaylı olarak ele alınacaktır.
Delay
Eğer iki kod arasında bir süre beklenmesi gerekirse “delay” fonksiyonu kullanılmalıdır. Delay fonksiyonunun içerisine yazılan değer milisaniye şeklindedir. Yani beş saniyelik bir bekleme için fonksiyona “5000” değeri verilmelidir.
Tüm video derslerimiz için youtube kanalımız | video dersler sayfamız