Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerimize Dijital Pinler ve Dijital I/O Fonksiyonları ile devam ediyoruz. Bu dersimizde dijital pinlerden ve bu dijital pinlerin kullanımda bize yardımcı olan fonksiyonlardan bahsedeceğiz. Önce dijital pinler nedir inceleyip ardından Arduino UNO’da bulunan 14 adet dijital pini ve 6 adet analog pini dijital olarak nasıl kullanabileceğimizi pinMode, digitalWrite ve digitalRead fonksiyonları ile birlikte göreceğiz.
Dijital Pinler
Arduino kartları üzerinde bulunan pinler giriş ve çıkış işlemleri için ayarlanarak kullanılırlar.
Dijital pinlerin giriş ( input ) için kullanılması, belirtilen pinden beklenen bir değer olduğu ve okuma yapılacağı anlamına gelir. Dijital pinler varsayılan olarak giriş için hazır durumdadırlar yani giriş işlemi için dijital pinlerimizi kullanacağımızda özel olarak bir belirtme işlemi yapmamız gerekmemektedir.
Dijital pinlerin çıkış ( output ) için kullanılması, belirtilen pinden bir güç çıkışı olacağı ve bu pinden akım bekleyen bir devre elemanı olduğu anlamına gelir. Digital pinleri çıkış için kullanmamız gerektiğinde varsayılan durumunu değiştirerek bunu belirtmemiz gerekmektedir.
pinMode ()
pinMode fonksiyonu belirtilen pini giriş veya çıkış işlemleri için hazırlar. İki parametre alır. İlk parametresi hangi pin olduğunu belirlerken, ikinci parametresi ise INPUT ( giriş ) veya OUTPUT ( çıkış ) değerlerini alarak pinin modunu değiştirir. INPUT yerine 0 ve false, OUTPUT yerine 1 veya true değerleride yazılarak çalıştırabiliriz.
Kullanım Şekli:
pinMode(pin, mod)
void setup() {
pinMode(13, OUTPUT); // 13. pini çıkış için ayarla
}
void loop() {
digitalWrite(13, HIGH); // 13.pinden 5V çıkış gerilimi ver.
delay(1000);
digitalWrite(13, LOW); // 13.pinden 0V çıkış gerilimi ver.
delay(1000);
}
void setup() { pinMode(13, OUTPUT); // 13. pini çıkış için ayarla }
void loop() { digitalWrite(13, HIGH); // 13.pinden 5V çıkış gerilimi ver. delay(1000); digitalWrite(13, LOW); // 13.pinden 0V çıkış gerilimi ver. delay(1000); } |
Blink için devre şeması
Not: Yukarıdaki örnek Arduino’nun en temel örneklerinde olan Blink örneğidir. Bu örnekte 13 dijital pin çıkış için ayarlanarak bir led yakıp söndürme işlemi gerçekleştirilmiştir. Bu örneğin analog pinler içinde çalışacağını test edebilirsiniz. Bir pinin giriş için kullanımı digitalRead fonksiyonunda gösterilecektir.
digitalWrite ()
digitalWrite fonksiyonu daha önceden çıkış olarak ayarlanmış pinden güç çıkışı yapmak veya belirtilen pindeki gücü kesme işlemlerini yapar. İki parametre alır. İlk parametresi hangi pin olduğunu, ikinci parametresi ise gerilimin durumunu ayarlar.
Kullanım Şekli:
digitalWrite(pin, deger)
Eğer ikinci parametreye HIGH ( 1 veya true değerleride kullanılabilir. ) değeri verilirse, Arduino kartının referans gerilim değeri belirtilen pinden çıkış gerilimi olarak ayarlanır. Referans gerilim değiştirilmemiş ise varsayılan olarak 5V olacaktır.
Eğer ikinci parametreye LOW ( 0 veya falsedeğerleride kullanılabilir. ) değeri verilirse, Arduino kartında belirtilen pinde çıkış gerilimi olarak 0V verilerek güç kesilmiş olacaktır.
Not: Bu fonksiyona örnek olarak pinMode fonksiyonunda kullanılan Blink örneğini inceleyebilirsiniz.
digitalRead ()
digitalRead fonksiyonu belirtilen pindeki gerilim değerine göre 1 ( true veye HIGH ) veya 0 ( false veya LOW ) değerlerini döndürür. Eğer belirtilen pinde gerilim varsa 1, yoksa 0 döndürür.
Kullanım Şekli:
bool digitalRead(pin)
/*
* Bu örnekte bir buton ve bir led kullanılmıştır.
* Butona basıldığı sürece led yakılıp,
* Butona basılmadığında led söndürülecektir.
*
* led için 220 Ω buton için 1 kΩ direç kullanılmıştır.
*/
int buton = 2; // giriş için butonun bağlanacağı pin
int led = 13; // çıkış için ledin bağlanacağı pin
bool butonDurumu; // butona basılıp basılmadığını kontrol edecek bool değişkenimiz.
void setup() {
pinMode(led, OUTPUT); // led için kullanılaca olan 13. pini çıkış olarak ayarla
pinMode(buton, INPUT);// buton için kullanılacak olan 2. pini giriş olarak ayarla
}
void loop() {
butonDurumu = digitalRead(buton);
// yukarıdaki satırda
// 2. pinden butona basılı olup olmadığını kontrol edilir ve
// sonuc ise digitalRead fonksiyonunun döndüreceği değer
// bool tipindeki değişkende saklanır.
digitalWrite(led, butonDurumu); // 13. pindeki led butonun durumuna göre yakılır veya söndürülür.
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* * Bu örnekte bir buton ve bir led kullanılmıştır. * Butona basıldığı sürece led yakılıp, * Butona basılmadığında led söndürülecektir. * * led için 220 Ω buton için 1 kΩ direç kullanılmıştır. */
int buton = 2; // giriş için butonun bağlanacağı pin int led = 13; // çıkış için ledin bağlanacağı pin bool butonDurumu; // butona basılıp basılmadığını kontrol edecek bool değişkenimiz.
void setup() { pinMode(led, OUTPUT); // led için kullanılaca olan 13. pini çıkış olarak ayarla pinMode(buton, INPUT);// buton için kullanılacak olan 2. pini giriş olarak ayarla }
void loop() { butonDurumu = digitalRead(buton); // yukarıdaki satırda // 2. pinden butona basılı olup olmadığını kontrol edilir ve // sonuc ise digitalRead fonksiyonunun döndüreceği değer // bool tipindeki değişkende saklanır.
digitalWrite(led, butonDurumu); // 13. pindeki led butonun durumuna göre yakılır veya söndürülür. } |
digitalRead örneği devre şeması
Arduino’da Dijital Pinler ve Dijital I/O Fonksiyonlarını inceledik. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.
Tüm Arduino Dersleri için tıklayınız..
95