9 Ekim 2026 Cuma

Bu uygulamalar 2 farklı kütüphane kullanılarak yapılmıştır. Bu kütüphanelerin 2'si aynı anda Arduino'ya eklenmemelidir. Hangi kütüphane kullanılacaksa sadece o eklenmelidir. Diğeri silinmelidir. 2'si aynı anda Arduino'ya eklenirse yeni kütüphane geçerli olur.


1. "Arduino-IRremote-master" Kütüphanesi İle Uygulama

Adres: https://github.com/Arduino-IRremote/Arduino-IRremote


Desteklenen IR Protokolleri: 

  • NEC / Onkyo / Apple

  • Denon / Sharp

  • Panasonic / Kaseikyo

  • JVC

  • LG

  • RC5

  • RC6  

  • Samsung  

  • Sony  

  • Universal Pulse Distance

  • MagiQuest

  • Universal Pulse Width

  • Universal Pulse Distance Width

  • Universal Pulse Distance Width

  • Hash

  • Pronto

  • Pronto

  • BoseWave

  • Bang & Olufsen

  • Lego

  • FAST

  • Whynter


Programlama Kodları

//AÇIKLAMA
//Kullanılan "Arduino-IRremote-master.zip" kütüphanesi yenidir. Bu kütüphaneyi
//eklediğimizde "IRremote.zip" kütüphesi Arduino'dan silinmelidir.
//Bu uygulama ile kumandadan gönderilen sinyalin IR protokolü çözülerek
//tuş kodu tespit edilir ve seri port ekranına yazdırılır.
//"Arduino-IRremote-master.zip" kütüphanesi içerisinde örnek uygulamalar vardır.Bu uygulamaları
//açmak için; Dosya > Örnekler > IRremote > yolu izlenir.

#include <IRremote.hpp>

#define pin 11   //IR alıcıyı bağlayacağımız pini belirledik.

void setup()
{
  Serial.begin(9600);
  IrReceiver.begin(pin);  //11. pin için IR sinyal alma işlemini başlat.
}

void loop()
{
  //"IrReceiver.decode()" komutu gelen tuş bilgisini çözen komuttur. 
  //gelen tuş bilgisi de "IrReceiver.decodedIRData.decodedRawData" ya atanır.
  
  if (IrReceiver.decode())  //herhangi bir tuş kodu geldi mi? geldiyse if'in içi True olur.
  {
    Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);   //gelen tuş bilgisini seri port ekranına hex(16'lı) olarak yazdır.
    IrReceiver.printIRResultShort(&Serial);   //Alınan verilerin tamamını tek satırda yazdırır.
    //IrReceiver.printIRSendUsage(&Serial);   //Print the statement required to send this data
    delay(300); //sık aralıklarla okuma olmaması için bekleme koyduk. diğer türlü tuşa 1 kez bastığımızda birden fazla okuma olur.
    IrReceiver.resume(); //veri okuma işlemine devam etmek için bu komut yazıldı.
  }
  
}


Devre Şeması



Seri Port Ekran Görüntüsü




2. "IRremote" Kütüphanesi İle Uygulama

Adres: https://github.com/Arduino-IRremote/Arduino-IRremote/releases/tag/v2.4.0


Desteklenen IR Protokolleri: 

  • NEC

  • Samsung

  • Sony

  • RC5

  • RC6

  • Denon

  • Panasonic

  • JVC

  • LG


Programlama Kodları

//AÇIKLAMA
//Kullanılan "IRremote.zip" kütüphanesi eskidir. Bu kütüphaneyi eklediğimizde
//"Arduino-IRremote-master.zip" kütüphesi Arduino'dan silinmelidir.
//Bu uygulama ile kumandadan gönderilen sinyalin IR protokolü çözülerek
//tuş bilgisi tespit edilir ve seri port ekranına yazdırılır.
//"IRremote.zip" kütüphanesi içerisinde örnek uygulama vardır. Bu uygulamayı
//açmak için; Dosya > Örnekler > IRremote > IRrecvDemo yolu izlenir.


#include <IRremote.h>
int pin = 11;               //IR alıcıyı bağlayacağımız pini belirledik.
IRrecv alici(pin);          //IR alıcı için pin kodunun bulunduğu "alici" isimli nesne tanımladık.
decode_results veri;        //Gelen verileri çözen kod. Çözülen kodun atanacağı "veri" isimli değişken tanımlandı.

void setup()
{
  Serial.begin(9600);
  //In case the interrupt driver crashes on setup, give a clue to the user what's going on.
  //(Kurulum sırasında kesme sürücüsünün çökmesi durumunda, kullanıcıya ne olduğunu gösteren bir ipucu verilir)
  Serial.println("Enabling IRin");
  alici.enableIRIn();   //Alıcı nesnesini başlattık.Yani IR veri alma işlemi başlatılır.
  Serial.println("Enabled IRin");
}

void loop()
{
  //"alici.decode(&veri)" komutu gelen tuş bilgisini çözen komuttur. gelen tuş bilgisi de "veri.value" ye atanır.

  if (alici.decode(&veri))   //herhangi bir tuş bilgisi geldi mi? geldiyse if'in içi True olur.
  {
    Serial.println(veri.value, HEX);  //gelen tuş bilgisini seri port ekranına hex(16'lı) olarak yazdır.
    delay(300);   //sık aralıklarla okuma olmaması için bekleme koyduk. diğer türlü tuşa 1 kez bastığımızda birden fazla okuma olur.
    alici.resume();   //veri okuma işlemine devam etmek için bu komut yazıldı.
  }

}


Devre Şeması



Seri Port Ekran Görüntüsü






0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com