Temel Arduino Fonksiyonları
Arduino geliştiricileri tarafından yazılmış bazı hazır fonksiyonlar vardır. Bu fonksiyonların yardımıyla yapmak istediğimiz işlemleri daha kolay yapabiliriz. Bazı genel fonksiyonlar için herhangi bir kütüphaneye ihtiyaç yoktur. Daha özel görevler için yazılmış fonksiyonları kullanmak için, o fonksiyonun kütüphanesini dosyanıza eklemeniz gerekir.
Kütüphane ekleme
Yeni bir kütüphane eklemek için kütüphane dosyalarını Arduino programını kurduğunuz dizinin altında bulunan ‘libraries’ klasörüne taşıyın. Eğer bu sırada Arduino programı açıksa, taşıma işlemi bittikten sonra, kapatıp yeniden açın. Dosyanın en başında kütüphaneyi projenize ekleyin. Bunun için aşağıdaki kodu kullanabilirsiniz.
#include <kutuphaneadi.h>
Artık kütüphanenin içerisinde bulunan fonksiyonları kullanabilirsiniz.
Setup ve Loop fonksiyonları
Arduino projenizi ilk açtığınızda karşınıza iki fonksiyon çıkar. Bunlar setup ve loop fonksiyonlarıdır.
Setup fonksiyonu, kod çalışmaya başladığında Arduino’nun ilk olarak okuduğu yerdir. Arduino bu kısmı okuduktan sonra diğer kısımları okumaya başlar. Bu kısım sadece bir kere okunur ve program esnasında yeniden okunmaz. Bu alanda, pinlerin çalışma modları gibi önemli ve bir kere yapılması yeterli olacak ayarlamalar yapılır.
Loop fonksiyonu, setup fonksiyonu okunduktan sonra okunur. Bu bir ana fonksiyondur ve yapılmasını istediğiniz görevler buraya yazılır. Loop fonksiyonu, sonsuz döngü şeklindedir, yani buradaki görevler tamamlandığında, program tekrar başa dönerek işlemleri yeniden yapar. Bu döngü, Arduino çalıştığı sürece devam eder.
Arduino programlamadan önce kodlarınız ilk başta aşağıdaki gibi olmalıdır.
void setup(){
/*
Burası sadece bir kere çalışır
Genel ayarlar buradan yapılır
*/
}
void loop(){
/*
Bu fonksiyon sonsuza kadar çalışır
Arduino'nun yapması gereken işlemler buraya yazılır
*/
}
PinMode
Arduino kartı üzerinde bulunan pinleri çıkış veya giriş olarak tanımlayabilirsiniz. Giriş olarak tanımlanmış pinler düğme gibi elemanlar için kullanılırken, çıkış olarak tanımlanmış pinler ise LED gibi elemanlar için kullanılır. Programın en başında (Setup içerisinde), kullanılacak pinler ayarlanmalıdır. Bunun için aşağıdaki kod kullanılır:
pinMode(13,OUTPUT);
Böylece 13. Pin çıkış olarak tanımlanır. Giriş olarak tanımlanması için OUTPUT yerine INPUT yazılması gerekir.
DigitalWrite: Çıkış olarak tanımlanmış pinlerden enerji vermek için veya enerji vermeyi durdurmak için kullanılır. Örneğin:
digitalWrite(13,HIGH);
Böylece, daha önce çıkış olarak tanımlanmış 13 numaralı pinden enerji çıkışı sağlanır. Enerji çıkışı durdurulmak istenildiğinde HIGH yerine LOW yazılması yeterlidir.
AnalogWrite: Seçilen pinde PWM sinyalinin üretilmesini sağlar. PWM sinyalinin görev zamanı (Duty cycle) fonksiyona verilen değer ile belirlenir. Örneğin bu pine bağlanan bir LED ışığının parlaklığı verilen PWM sinyali ile ayarlanabilir.
analogWrite(LEDPin, 175);
Seçilen pinlerde PWM desteği bulunmasına dikkat edilmelidir. Bu konu ilerleyen konularda daha detaylı olarak incelenecektir.
DigitalRead: Daha önce giriş olarak tanımlanmış bir pinin girişindeki gerilimin yüksek (5 volta yakın) veya düşük (0 volta yakın) olduğu anlaşılır. Örneğin daha önceden giriş olarak tanımlanmış 13 nolu pindeki durumu daha önceden tanımlanmış ‘durum’ değişkenine yazdıralım
durum = digitalRead(13);
13 numaralı pindeki gerilim 5 volta yakın ise ‘durum’ değişkeni 1 (HIGH), 0 volta yakın ise 0 (LOW) olmuştur.
AnalogRead: Bir önceki fonksiyon ile 13 numaralı pindeki gerilimin 5 veya 0 olmasını ölçtük. digitalRead fonksiyonu, 0 ve 5 volt arasındaki gerilimlerin tam değerini ölçemez. 0 ve 5 volt arasındaki gerilimin tam değerinin ölçülmesi için analogRead fonksiyonu kullanılmalıdır. Fakat bu fonksiyon, tüm pinler için kullanılamaz. Bu fonksiyonun kullanılabileceği özel pinler vardır. Bunlara analog pinler denir ve genellikle A harfi ile başlarlar: A0, A1, A2… gibi. Kullanılan Arduino türüne göre bu pinlerin sayısı değişiklik gösterir.
Arduino Uno’da 6, Arduino Mega’da 16 tane analog giriş bulunur. Kullanılacak analog pin, öncelikle giriş olarak tanımlanmalıdır:
pinMode(A0,INPUT)
Örneğin A0’daki değeri ‘analogDeger’ değişkenine kaydedelim. A0’daki gerilim 10 bit olarak kaydedilecektir. Bu durumu ilerleyen bölümlerde daha detaylı olarak göreceğiz.
analogDeger = AnalogRead(A0);
Delay
İki kod arasında bir süre beklenmesi istenirse, delay fonksiyonu kullanılır. Örneğin yanıp sönen lamba uygulaması yapılmak istenirse, lamba yakıp söndürme kodları arasında bekleme amacıyla delay fonksiyonu kullanılır. Delay fonksiyonunun içerisine yazılan değer milisaniye düzeyindedir. Bir saniyelik bir bekleme için fonksiyona 1000 değeri verilmelidir.
Örneğin yarım saniyelik bir bekleme fonksiyonu yazalım;
Kopyala
delay(500);