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