Bugün Internet Computer Protocol blok zincirini tanıyıp Hello World örneğiyle bu merkeziyetsiz geliştirme ortamına ilk adımımızı...
Arduino Temel Programlama Bilgisi
Kemal İKİZOĞLUArduino kartınızı elinize aldığınızda artık eskisi gibi yabancılık çekmiyorsunuz. Hangi girişin / çıkışın ne görevi olduğunu öğrendiniz. Şimdi temel arduino programlama bilgisinden bahsederek bu küçük güçlü karta nasıl hükmedeceğimizi öğrenelim.
Ön Hazırlık:
Bir önceki yazımda belirttiğim gibi Arduino’nun kendi sitesinde yer alan ide programını kullanarak kodlamaya devam edeceğiz. Eğer bu yazılım bilgisayarınızda yoksa Arduino Software sayfasından güncel yazılımı indirerek bilgisayarınıza kurabilirsiniz. Eğer web editör kullanarak devam etmek isterseniz https://create.arduino.cc/editor adresini kullanabilirsiniz.
Şimdi tüm hazırlıklarımızı tamamladıysak hadi başlayalım!
Temel Programlama Bilgisi:
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 kısımdır. 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 tanımlaması, ç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.
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. Programda Setup içerisinde kullanılacak pinler ayarlanmalıdır. Bunun için aşağıdaki kod kullanılır:
pinMode(12 ,OUTPUT);
Böylece 12. Pin çıkış olarak tanımlanır. Giriş olarak tanımlanması için OUTPUT yerine INPUT yazılması gerekir.
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;
delay(500);
DigitalWrite:
Çıkış olarak tanımlanmış pinlerden enerji vermek için veya enerji vermeyi durdurmak için kullanılır.
digitalWrite(12,HIGH);
Böylece, daha önce çıkış olarak tanımlanmış 12 numaralı pinden enerji çıkışı sağlanır. Enerji çıkışı durdurulmak istenildiğinde HIGH yerine LOW yazılması yeterlidir.
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ış 12 nolu pindeki durumu daha önceden tanımlanmış ‘durum‘ değişkenine yazdıralım:
durum = digitalRead(12);
12 numaralı pindeki gerilim 5 volta yakın ise ‘durum‘ değişkeni 1 HIGH, 0 volta yakın ise LOW olmuştur.
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.
AnalogRead:
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, A3, A4, A5 gibi. Kullanılan Arduino türüne göre bu pinlerin sayısı değişiklik gösterir. 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.
analogDeger = AnalogRead(A0);
Bu bölümde Arduino projelerimizde kullanacağımız temel programlama fonksiyonlarını öğrendik. Diğer fonksiyonları yeri geldikçe öğreneceğiz. Artık uygulama vakti 😊
Gelecek yazımızda Arduino’da “Merhaba Dünya” diyeceğimiz klasik LED yakma örneğiyle artık öğrendiklerimizi uygulayacağız.
Kolay Gelsin.
Son Yorumlar..