Home / Arduino Dersleri / Arduino – I/O (Giriş Çıkış) Fonksiyonları

Arduino – I/O (Giriş Çıkış) Fonksiyonları

Arduino üzerindeki pinler giriş ya da çıkış amaçlı olarak konfigüre edilebilir. Bu yazımızda pinlerin bu modlara göre düzenlenmesini inceleyeceğiz. Arduino’nun en önemli özelliği olan Analog pinlere de değineceğiz.

Arduino Input (Arduino Giriş Pini)

Arduino’da tüm pinler default olarak input olarak düzenlenmiştir. Sizin ayrı olarak input şeklinde tanımlamanıza gerek yoktur. Pinleri tanımlayabilmeniz için pinMode() komutunu kullanmanız gerekmektedir. Bu komutun kullanım şekli pinMode(pin, INPUT) şeklindedir. pin dediğimiz kısım pin numarasıdır. Bizden numara girmemiz beklenir.

Arduino Output (Arduino Çıkış Pini)

Arduino ile dışarıya bir işlem yaptırtmak istediğimizde ilgili pini Output olarak yapılandırırız. Mesela bir Led’i yakmak için Arduino’dan output vermemiz gerekmektedir. Bu işlem için pinMode(pin, OUTPUT) fonksiyonunu kullanabiliriz.

Arduino pinMode() Fonksiyonu

Arduino pinMode() fonksiyonu bir pini görevlendirmek için kullanılır. Genel kullanımı aşağıdaki şekildedir.


Void setup () {
   pinMode (pin , mode);
}

  • pin : pin numarasıdır
  • mode: INPUT ya da OUTPUT değerini alabileceği gibi INPUT_PULLUP değerini de alabilir.

Arduino pinMode Kullanımı Örnek KOD

int button = 5 ; // butonun bağlanacağı pin numarası değişkeni
int LED = 6; // LEDin bağlanacağı pin numarası değişkeni

void setup () {
   pinMode(button , INPUT_PULLUP); 
   // dijital pini Pullup resistor'ü olarak yapılandırdık
   pinMode(button , OUTPUT); // button pinini ise OUTPUT şeklinde yapılandırdık.
}

void setup () {
   If (digitalRead(button ) == LOW) // Eğer butona basılırsa {
      digitalWrite(LED,HIGH); // Led kırmızı yanacak
      delay(500); // Yarım saniye bekleme
      digitalWrite(LED,LOW); // ledi söndür
      delay(500); // yarım saniye daha bekle
   }
}

Arduino digitalWrite() Fonksiyonu

digitalWrite fonksiyonunu az önceki örnekte kullandık, ancak ne olduğundan bahsetmedik. Eğer bir pin OUTPUT olarak yapılandırıldıysa, HIGH değeri verildiğinde 5V’luk çıktı üretir. (pin eğer 3.3V’luk ise 3.3V çıkar), LOW’da ise 0V (sıfır) durumuna gelir.

Eğer pin INPUT olarak yapılandırıldıysa HIGH pini enable (aktif) duruma getirirken, LOW disable duruma getirir. Aşağıda örnek kullanıma bakalım;


int LED = 6; // LED'i bağlayacağımız pin numarası
void setup () {
   pinMode(LED, OUTPUT); // 6 numaralı (LED değişkeni) pini OUTPUT olarak görevlendirdik.
}

void setup () { 
   digitalWrite(LED,HIGH); // Led'i ışıtır
   delay(500); // yarım saniye bekleme
   digitalWrite(LED,LOW); // ledi söndürür
   delay(500); // yarım saniye bekleme
}

Arduino analogRead() Fonksiyonu

Arduino analogRead Foknsiyonu bir pini dijital yerine analog şekilde kullanmak üzerine oluşturur. dijital görevlendirmelerde bir led ya yanıyordur ya da sönük durumdadır. Yani 1-0 mantığı bulunmaktadır. Ancak analogSistemde veriler daha değişkendir yani bir ledin parlaklığını ayarlayabilmek gibi bir opsiyon da bulunmaktadır. Ancak tabii bunu farklı pinlerle yapmamız gerekiyor.

Arduino boardların üzerinde (UNO’da) 6 tane “Analog In” pini bulunmaktadır. Bu pinler analogRead() fonksiyonu ile kullanılmaktadır. Bu fonksiyon 0-1023 arasında sayı return edebilir. Voltaj değeri ise 0 – 5 Volt arasında değişkenlik gösterir. Mesela bir pine 2,5 Voltluk gerilim uygularsanız fonksiyon size 512 değeri döndürecektir.


int analogPin = 3;// Analog pin numarası
int val = 0; // Okunacak değer için başlangıç değeri atadık

void setup() {
   Serial.begin(9600); // serial'i 9600 bound rate ile çalıştırdık
} 

void loop() {
   val = analogRead(analogPin); // analogRead fonksiyonu ile Voltajı okuyup değer döndürüyoruz, 
                                // bunu da val değerine atıyoruz.
   Serial.println(val); // Serial monitor'e çıktı veriyoruz
}

One comment

  1. Merhaba. Arduino da bir pin ile (ornegin pin5) bir baska pini birbirine baglamak istesek kullanacagimiz kod nasil olacak. Mesela soyle tarif edeyin bir buton ile 5.pinin bagli olacagi pini 6. Veya 7. Pin olarak nasil belirleyebilirim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir