Yeni bir yazı dizisi ile karşınızdayım. Bu yazı serimizde Arduino’yu yakından tanımaya çalışacağız. ilk dersimiz olan Temel Arduino Fonksiyonları ile başlayalım.
Daha önce Arduino hakkında yazılar yazmış, projelere değinmiştik. Arduinoyu kodlarken bazı temel fonksiyonlar kullanıyorduk ancak elektroniğin temelini bilmeyenlerin zorlandığını gördüm. Gelin beraber bu temel fonksiyonları irdeleyelim.
#include Fonksiyonu
Hazır kütüphaneleri projemize dahil etmek için kullanılan fonksiyondur. Kütüphane ekleme ile ilgili yazımızda detaylara bakabilirsiniz. Arduino Kütüphane Ekleme
Void Setup Fonksiyonu
En temel fonksiyonlardan biri setup fonksiyonudur. Bu fonksiyon olmadan arduino ide yazılan kodları derleyemez. Setup fonksiyonunda giriş/çıkış pinlerini, tanımlamalarımızı yaparız. Setup fonksiyonu arduinoya güç verildikten sonra sadece 1 defa çalışan fonksiyondur. Bundan dolayı kodlarımızı buna göre düzenlememiz gerekir. Syntaks yapısında void setup (){ // buraya kodlar gelecek} şeklinde kullanılır.
Void Loop Fonksiyonu
Setup fonksiyonundan sonra çalışan diğer temel fonksiyondur. Loop fonksiyonu içine yazılan kodlar arduinoda güç olduğu sürece çalışır. Fonksiyondaki son kod satırı işlendikten sonra tekrar fonksiyondaki ilk kod satırı ile işleme devam edilir. Syntaks yapısı void loop (){ // buraya kodlar gelecek} şeklinde kullanılır.
PinMode Fonksiyonu
Setup fonksiyonu içerisinde pinlerin giriş/ çıkış pini olarak ayarlanması gerekmektedir. Bu işi yapan fonksiyon pinMode fonksiyonudur. Fonksiyonda 2 parametre yer alır. ilk parametre pin, ikinci parametre bunun değeridir. Bu değer INPUT yada OUTPUT tur.
Örnek kullanımı şu şekildedir: pinMode(13, OUTPUT); pinMode(2, INPUT);
digitalWrite Fonksiyonu
Arduino üzerinde yer alan digital pinlere yazmak için kullanılan fonksiyondur. Digitale yazılabilecek iki değer vardır. Bu değerler “LOW” ve “HIGH” dır. LOW 0 ‘ı temsil ederken HIGH 1’i temsil etmektedir. HIGH değeri yazıldığında ilgili pine 5 volt verilirken LOW değeri yazıldığında ise 0 volt gönderilmiş olur. DigitalWrite fonksiyonunda 2 adet parametremiz vardır. Bunlardan ilki digital pin diğeri ise bu pinin değeridir. Birinci ve ikinci parametre arasına virgül konulur. DigitalWrite fonksiyonunun kullanımı şu şekildedir:
digitalWrite(13, LOW); digitalWrite(2, HIGH);
digitalRead Fonksiyonu
Digital pinlerde 2 adet değer olduğunu öğrenmiştik. Digital pinden değer okumak için öncelikle bu pinin modunu INPUT olarak tanımlamak gerektiğini unutmayalım. Digital pinden değer okuma işlemi için digitalRead fonksiyonunu kullanırken hangi pinden okuma yapılacağını belirtmemiz gerekir. Örnek kullanım şu şekildedir:
digitalRead(3); // 3 Nolu Pindeki değeri okuyup işlem yaptıracağız.
AnalogWrite Fonksiyonu
Daha önce arduinoda digital pinlerde 2 değerin olduğunu öğrenmiştik. DigitalWrite fonksiyonu ile digital pine ya 0 volt gönderiyor idik ya 5 volt gönderiyor idik. Bu iki değer arasında bir değer göndermek istediğimizde gönderemiyorduk ancak analogWrite fonksiyonu ile 0-5 volt arasını 256 eşit parçaya bölerek digital pine farklı değerlerde güç gönderebiliriz. AnalogWrite Fonksiyonu için PWM pinlerini kullanmamız gerektiğini unutmayın. Arduino uno PWM pinleri : 3, 5, 6, 9, 10, 11
Örnek kullanım şu şekildedir: analogWrite(3, 127); // 3 Nolu pine yaklaşık 2.5 volt gönderir.
analogWrite(6, 255); // 6 Nolu pine 5 volt gönderir.
analogWrite(9, 0); // 9 Nolu pine 0 volt gönderir.
AnalogRead Fonksiyonu
Analog pinlerden değer okumak için kullanılan fonksiyondur. Analogdan okuna değer 0-1023 arasındadır. Analog pinden değer okuyup okunan değere göre işlem yaptırabiliriz. Artık ne işlem yaptıracağınız size kalmış. Syntax yapısında değerini okuyacağımız pini belirtmemiz gerekiyor.
Örnek kullanımı şu şekildedir: int deger = analogRead(A0);
Delay Fonksiyonu
Arduinoda kodlar sırası ile işlenir. Bir satırı işlendikten sonra diğer kod satırına geçmesi için beklemesini istersek delay fonksiyonunu kullanırız. Delay fonksiyonunda zaman mili saniye cinsinde yazılır dolayısı ile 2 saniye yazmak istersek 2000 yazmamız gerekir. Örnek kullanım şu şekildedir: delay(2000);
Map Fonksiyonu
Map fonksiyonu, bir aralıktaki değerleri başka bir aralığa çevirir. Örneğin potansiyometreden gelen değere göre servo motora açı vermek istersek kullanabilir. Not: Servo motor 0-180 derece arasında gidip gelebilir.
deger = analogRead(A0); // A0 pininden değeri okuyup değer değişkenine atıyoruz.
deger = map(deger, 0,1023, 0, 180); // deger değişkenin değer aralığı 0-0123 arasından 0-180 arasında olacak şekilde değiştirilmiş olur.
servo.write(deger); // servoya deger değişkenini yazdırmış oluyoruz.
Linke Tıklayarak Arduino Satın Alabilirsiniz.
Bu dersimizde temel arduino fonksiyonları hakkında bilgi sahibi olduk. Bir sonraki derste görüşmek üzere… Aklınıza takılan şeyleri yorum olarak yazın cevaplayalım.
yaa baskan bu son fotodaki kodda void setup icine pinMode(A0,İNPUT) yazman gerekmio mu
Yazılmasa da sorunsuz çalışıyor.