TEMEL PROGRAMLAMA İŞLEMLERİ

Arduino programlama dili, C programlama diline benzemektedir. Her programlama dilinde yapılan temel
işlemler Arduino programlama dilinde de yapılmaktadır.
Arduino IDE’de yeni bir taslak oluşturulduğunda taslak (sketch) Görsel 2.16’da görüldüğü gibi iki hazır fonk
siyonla gelmektedir. Bunlar setup() (ayar) ve loop() (döngü) fonksiyonlarıdır. Bu fonksiyonlar taslakta bulunmazsa derleyici hata verir.

setup() fonksiyonu donanımsal ayarların yapıldığı kart başlatıldığında veya resetlendiğinde bir kez çalışan kısımdır. Void ifadesi setup() fonksiyonun geri herhangi bir değer döndürmediğini ifade etmektedir.

loop() fonksiyonu ana programın olduğu ve kartın enerjisi kesilene kadar sürekli çalışan döngü
dür. loop() fonksiyonu da void ifadesiyle yazılır ve geriye değer döndürmez.
“ // “ ifadesinden sonra aynı satırda yer alan metin açıklama kısımlarıdır ve programın işleyişini etkilemez.
“ /* “ ve “ */ “ ifadeleri birden fazla satır içeren açıklama metni yazmak için kullanılır ve programın işleyişini etkilemez.

Arduino’da dijital işlemler 0 ve 1’in yani 0 V ile 5 V’luk iki seçeneğin olduğu işlemlerdir. Giriş işlemleri Arduino pinlerinin haricî bir devreden elektrik enerjisi alınmasıdır. Çıkış işlemleri ise Arduino pinlerinden haricî bir devreye elektrik enerjisi gönderilmesidir. Arduino’da dijital işlemlerde kullanılan üç temel fonksiyon vardır.

Arduino’da dijital işlemler 0 ve 1’in yani 0 V ile 5 V’luk iki seçeneğin olduğu işlemlerdir. Giriş işlemleri Arduino pinlerinin haricî bir devreden elektrik enerjisi alınmasıdır. Çıkış işlemleri ise Arduino pinlerinden haricî bir devreye elektrik enerjisi gönderilmesidir.

Arduino’da dijital işlemlerde kullanılan üç temel fonksiyon vardır.
Ardino 0 – 13 numaralı dijital pinleriyle A0-A5 (14-19 numaralı) analog pinlerini (Dijital olarak kullanılabilir.) giriş (INPUT) veya çıkış (OUTPUT) olarak ayarlamak için kullanılan fonksiyondur.
pinMode(pin, mod)
pin: Bağlantı ucu numarası.
mod: INPUT, OUTPUT veya INPUT_PULLUP

Örnek: Dijital pinleri giriş veya çıkış olarak ayarlar.
pinMode(2, INPUT); // 2 numaralı pin giriş olarak ayarlandı.
pinMode(19, INPUT_PULLUP); // 19 numaralı pin giriş ve pull-up olarak ayarlandı.
pinMode(13, OUTPUT); // 13 numaralı pin çıkış olarak ayarlandı.

INPUT olarak yapılandırılmış Arduino (ATmega) pinleri yüksek empedansa ayarlanır. Pinlerin önünde 100 MΩ’luk bir seri direnç bağlanmış şeklinde düşünülebilir. Giriş olarak ayarlanan pinler sensör vb. okumak için kullanışlı hâle gelir. Girişte buton kullanılırsa 10 kΩ’luk pull-up veya pull down direnci de kullanılmalıdır. INPUT_PULLUP kullanıldığında Arduino içindeki dâhilî pull-up dirençleri (20 kΩ) aktif edilir. Devrede pull-up direnci kullanmaya gerek yoktur. Giriş sürekli 1’e çekili olduğundan aktif 0 çıkışlı sensörler kullanılmalı veya devre bu şekilde tasarlanmalıdır. INPUT veya INPUT_PULL-UP komutuyla giriş olarak yapılandırılan pinler, 0 V altındaki (negatif voltajlar) veya 5 V üzerindeki voltajlara bağlanırsa zarar görebilir veya bozulabilir. 13 numaralı pinde dâhilî LED ve ona bağlı seri direnç bulunduğundan INPUT_PULLUP kullanıldığında 5 V yerine 1,7 V’ta kalacağından kullanışlı değildir.


OUTPUT olarak yapılandırılan pinler, düşük empedansa ayarlanır. Arduino pinleri, diğer cihazlara 40 mA’e kadar akım sağlayabilir. Bu akım LED gibi düşük güçlü elemanlar için yeterli olsa da motor gibi yüksek güç isteyen elemanlar için araya yeterli akım ve gerilimi sağlayabilecek yükselteç (sürücü) devreleri ilave edilmelidir. OUTPUT olarak ayarlanan pinler, GND’ye veya 5 V’a bağlanırsa hasar görebilir veya bozulabilir.

    pinMode() fonksiyonuyla OUTPUT olarak ayarlanan pinlere HIGH (5 V veya lojik 1) veya LOW (0V veya lojik 0) vermek için kullanılır. Örneğin pine 5 V verildiğinde akım kaynağı olarak katodu seri bir dirençle GND’ye bağlı olan LED ışık verir. 0 V verildiğinde anodu seri bir dirençle 5 V’a bağlanmış LED ışık verir.
    digitalWrite(pin, deger)
    pin: Pin numarası
    deger: HIGH veya LOW (1 veya 0)

    Örnek: Dijital çıkışı 5 V veya 0 V yapar.
    digitalWrite(13, HIGH); // 13 numaralı pin çıkışı 1 olur.
    digitalWrite(13, LOW); // 13 numaralı pin çıkışı 0 olur.

    Arduino UNO’da A0 – A5 olarak adlandırılan altı adet analog giriş pini, dijital pin olarak da kullanılabilir. Böylelikle Arduino UNO’da yirmi adet pin digital işlemler için kullanılabilir. İstisna olarak Arduino Nano, Pro Mini ve Mini’nin A6 ve A7 pinleri yalnızca analog giriş olarak kullanılmaktadır.

    Programı, parametre olarak belirtilen süre kadar (milisaniye cinsinden) duraklatır (1000 milisaniye 1 saniyedir.). Delay fonksiyonu işlemleri durduğu için diğer işlemler sensör okuma vb. yapılmayacaktır. delay() fonksiyonu, işletilen programı delay fonksiyonun olduğu satırda belirtilen süre boyunca bekletir. Bu sırada bir sonraki komuta geçilemez. Diğer hiçbir işlem yapılmaz.
    Delay fonksiyonu işlemleri durdurduğu için diğer işlemler sensör okuma vb. yapılmayacaktır.
    Gelişmiş bir programda delay() yerine milis() fonksiyonu kullanılır.
    delay(ms); //Programı bekletme komutu yazılımı.
    ms: Duraklatılacak sürenin milisaniye cinsinden sayısı. Veri tipi: unsigned long.
    delay(500);//Programı 500 ms (yarım dakika) bekletir.