Arduino Dijital Giriş/Çıkış Fonksiyonları

Bu dersimizde 2 adet fonksiyon ve 4 adet komut öğreneceğiz.

Bu fonsiyonlar;

  • pinMode()
  • digitalWrite()

1- pinMode() : İlgili pinin giriş mi yoksa çıkış mı olduğunu tanımlamak için kullanılır. Bu fonksiyon içerisinde iki adet komut kullanılır. Bunlar INPUT ve OUTPUT komutlarıdır. Bu komutlardan INPUT ilgili pinin giriş olacağını, OUTPUT ise ilgili pinin çıkış olacağını belirtir. Arduino IDE’mizin setup() yapısı içerisinde kullanılırlar.

Örnek kullanımı aşağıdaki gibidir.

 

2- digitalWrite() : Bu fonksiyonumuz ise çıkış olarak tanımladığımız pinimizin lojik olarak nasıl çıkış vereceğini tanımlamak için kullanılır. Bu fonksiyonumuzda yine iki adet komut kullanabiliriz. Bu komutlar HIGH ve LOW komutlarımızdır. HIGH komutumuz çıkışımızın lojik 1 yani +5 volt olmasını sağlar. LOW komutumuz ise çıkışımızın lojik 0 yani 0v olmasını sağlar. Fonksiyonumuz ve komutlarımızın kullanım şekli aşağıdaki gibidir.

Bu kez fonksiyonumuzu loop() yapısı içerisinde kullanacağız:

 

Şimdi LED yakma uygulamamızın kodlarını yazalım:

 

Devre şemamız ise aşağıdaki gibi olacaktır;

 

Yorum Yap

  • Ferdi
    4 yıl ago  

    Merhabalar
    Ben aracımın beyninde kontak acildiginda ateslemeye puskurtme yapan komutun calismamasi sebebiyle ardiuno ile 500ms ile bir komutla puskurtme yapmak istiyorum role kullanarak yapacagim fakat nasil bir komut yazacagimi cikartamiyorum talebin şu şekilde olacak sadece aracin kontagi acildiginda puskurt500ms her kontak acıldiginda 1 sefer yapacak simdiden tesekkurederim

    • 4 yıl ago  

      Yalnızca 1 kez çalışacak kodları setup() fonksiyonu içerisine yazabilirsiniz. Aşağıda verdiğim kodu arduinoya yükleyin. Röleyi arduinonun 2 numaralı dijital çıkışına bağlayın. Arduino beslemesini kontağa bağlayın. Böylelikle kontağı çevirdiğinizde 500ms süre ile röle aktif olur, 500ms sonra röle pasif hale geçer.


      void setup() {
      pinMode(2,OUTPUT); // Arduino'nun 2 nolu pinini çıkış olarak ayarladık
      delay(10); // 10 ms kadar bekle
      digitalWrite(2, HIGH); // 2 nolu dijital çıkışı aktif et
      delay(500); // 500ms bekle
      digitalWrite(2, LOW); // 2 nolu dijital çıkışı pasif et
      }

      void loop(){
      }