Arduino Dersleri-3 Temel Arduino Fonksiyonları

Merhabalar, bu yazımızda sizlere Temel Arduino Fonksiyonları hakkında bilgi vereceğim. Bu fonksiyonlarına geçmeden önce şu bilgilerin bilinmesinde fayda vardır. Dijital devrelerde elektrik sinyalleri; “açık” veya “kapalı”, “yüksek”veya “düşük”, “high”veya “low”, “1” veya “0” şeklinde değerlerle ifade edilir. Bu ifadelerden “açık”, “yüksek”,” high” veya “1”  ifadesi devreye elektrik geldiğini, “kapalı”, “düşük”, “low” veya “0” ifadesi devreye elektrik gelmediğini belirtir. Arduino devrelerinde 5 Voltluk bir potansiyel fark, “1”’e (açık, yüksek, high) durumuna işaret eder. 0 Voltluk bir fark ise 0’a (kapalı, düşük, low) durumuna denk gelir. Buna bağlı olarak devre elemanları ve sensörler, birçok görevi yerine getirirler.

Temel Arduino Fonksiyonları

// Bu işaret açıklama anlamına gelmektedir. Tek satır açıklamalarda bu işaret kullanılır.

/* Bu işaret birden fazla satırda açıklama yapmak için kullanılır. İşaret /* ile başlar ve açıklama bitiminde */ ile kapatılır.

Arduino projenizi ilk açtığınızda karşımıza iki fonksiyon çıkar. Bunlar setup ve loop fonksiyonlarıdır.

SETUP FONKSİYONU: 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 giriş ve çıkış olayları, seri port hız ayarlaması vs. gibi bir kere yapılması gereken ayarlamalar yapılır.

Kullanımı aşağıdaki gibidir. Komutlar süslü parantezler içerisine yazılır.

void setup () {

Komutlar buraya yazılır.

}

LOOP FONKSİYONU: Loop fonksiyonu, setup fonksiyonu okunduktan sonra okunur. Bu bir ana fonksiyondur ve yapılmasını istediğimiz 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.

Kullanımı aşağıdaki gibidir. Komutlar yine süslü parantezler içerisine yazılır.

void loop () {

Komutlar buraya yazılır.

}

HIGH: Bu komut ile kullanılan pin aktif hale getirilir. Büyük harf ile yazılmalıdır. HIGH komutu yerine sadece 1 rakamı da yazılabilir. Aynı görevi görür.

LOW: Bu komut ile kullanılan pin pasif hale getirilir. Büyük harf ile yazılmalıdır. LOW komutu yerine sadece 0 rakamı da yazılabilir. Aynı görevi görür.

INPUT: Bu komut ile kullanılan pinin giriş pini olduğu tanımlanır. Büyük harf ile yazılmalıdır.

OUTPUT: Bu komut ile kullanılan pinin çıkış pini olduğu tanımlanır. Büyük harf ile yazılmalıdır.

INPUT_PULLUP: Belirtilen pini giriş olarak ayarlar. Aynı zamanda Arduino kartındaki dâhili pull-up direncini aktif eder. Böylece buton bağladığınızda harici pull-up direnci takmamıza gerek kalmaz.

pinMode Komutu: Arduino kartı üzerinde bulunan pinleri çıkış veya giriş olarak tanımlayabilirsiniz. Arduino içerisine bilgi girişi yapmak için buton veya sensörlerden gelen veriler giriş olarak tanımlanırken, dışarıya ışık, ses olarak oldığımız veriler ise çıkış olarak tanımlanırlar. Bu ayarlamalar void setup içerisinde yapılır.

Kullanımı aşağıdaki gibidir. pinMode komutundan sonra parantez içerisine Arduino içerisinde hangi pinin devrede kullanılacağını, bu pinin ne amaçla kullanılacağı (giriş – INPUT, çıkış – OUTPUT) belirtilir.

pinMode(13, OUTPUT);

Böylece 13. Pin çıkış olarak tanımlanmıştır. Giriş olarak tanımlanması için OUTPUT yerine INPUT yazılması gerekir. İşlem tamamlanınca parantez sonrasında; eklenerek kod satırı tamamlanır.

Örnek yazım:

void setup () {

pinMode(13, OUTPUT);

}

digitalWrite Komutu: Çıkış olarak tanımlanmış pinlere enerji vermek için veya enerji vermeyi durdurmak için kullanılır.

Kullanımı aşağıdaki gibidir.

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 Komutu: Seçilen pinde PWM sinyalinin üretilmesini sağlar. digitalWrite fonksiyonu çıkış olarak tanımlanan bir pine HIGH(1) yada LOW(0) gibi sadece 2 farklı değer gönderebilirken analogWrite fonksiyonu 0 – 255 arasında değer gönderebilmektedir. 0 değeri LOW olarak 0 Volt a eşit olmakta, 255 değeri ise HIGH olarak 5 Volt a karşılık gelmektedir. 0 ile 255 değeri arasında belirlenen değerler farklı voltajlar üretecektir. PWM sinyali, bu fonksiyona verilen değer ile belirlenir. Örneğin bu pine bağlanan bir LED ışığının parlaklığı, PWM sinyali ile ayarlanabilir. Ya da bir motoru yavaş veya hızlı sürmek için PWM pinleri kullanılabilir. Aşağıdaki kodda örnek olarak yazılan 55 değeri, led diyorun bağlı olduğu pin üzerinden yaklaşık 1,06 Volt çıkış verir.

analogWrite(led, 55);

Not: 14 adet dijital pinlerden bazıları PWM çıkış verebilmektedir. Bağlantı bu pinlere olmalıdır. Bu pinler 3,5,6,9,10 ve 11 numaralı pinlerdir. Arduino kartta bu pinlerin üzerinde ~ işareti bulunur.

digitalRead Komutu: Bu komut,  giriş olarak tanımlanmış bir pinin girişindeki gerilimin yüksek (HIGH – 5 volt) veya düşük ( LOW – 0 volt) olduğunu anlamak için kullanılır.

Kullanımı aşağıdaki gibidir.

digitalRead(Pin_no);

analogRead Komutu: 0 ve 5 volt arasındaki gerilimin tam değerinin ölçülmesi için analogRead fonksiyonu kullanılır. Bu fonksiyonun kullanılacağı pinler Arduino kart üzerindeki analog pinlerdir. (A0 – A1 – A2 – A3 – A4 – A5)

Kullanımı aşağıdaki gibidir.

analogRead(A0);

delay Komutu: İki kod arasında bir süre beklenmesi istenirse, delay komutu 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.

Kullanımı aşağıdaki gibidir.

delay(1000);

#include Komutu: Yazdığınız programda kullandığımız elektronik malzemelerin bazıları kütüphanelere ihtiyaç duyar. Arduino içerisinde yazdığımız kod satırında kütüphane dosyası ilk satıra eklenir.

Kullanımı aşağıdaki gibidir.

 #include <kutuphane.h>

Arduino yazılımında kütüphanelere Taslak / Library Ekle menüsünden ulaşabiliriz.

Temel Arduino Fonksiyonları

Devre hakkında yorumlarınızı aşağıdaki yorum kısmına yazabilirsiniz. Youtube kanalımızda da Temel Elektrik- Elektronik, Arduino ve mBlock ile ilgili ders videoları bulabileceksiniz. Youtube kanalıma abone olmayı da unutmayınız.

https://www.youtube.com/@candemirahmet

Oval@3x 2

Bu ipuçlarını kaçırmayın!

Kayıt butonuna bastıktan sonra e-postanız gelen kutunuza giderek gelen e-postayı onaylamayı unutmayınız. Gelen kutusunda görülmeyen postalar için Önemsiz -Spam klasörünü kontrol edebilirsiniz. Eğer kayıt e-postası ulaşmadıysa iletişim menüsünden bu durumu bildirebilirsiniz.

Yazan: Ahmet Candemir
Teknik Öğretmen - Cisco Instructor - Microsoft MCP - ECDL MS Office Advanced Expert - Adobe Eğitmeni - MEB Fatih Projesi Koordinatörü - Robotik Kodlama Eğitmeni