Bu yazıda IR Alıcı Verici Kumanda Setinin Arduino ile nasıl kullanılacağını öğreneceğiz.
Bu set içerisinden basit bir uzaktan kumanda, KY-022 koduyla da bilinen 1838B kızılötesi alıcı sensör, üçlü dişi-dişi jumper kablo ve son olarak da bir IR LED çıkar. Satış sitelerinde varlığından pek bahsedilmeyen bu IR LED ile kendi uzaktan kumandamızı yapabiliriz. Bu yazıda mevcut minik kumandayı çalıştıracağız.
Bu uzaktan kumanda CR2025 kodlu bir pil ile çalışır ve bazı setlerin içinden pil çıkmayabilir. Setten pil çıkmadığı belirtiliyorsa sipariş verirken pil de satın almayı unutmayalım, gerekirse satıcıya bunu soralım. Pili kumandaya takılı gelen setler de vardır, bu durumda pilin gereksiz yere tükenmesini önlemek için pil ile kumanda arasına naylon bir şerit yerleştirilmiştir. Bu şeridi çektiğimizde pil doğru şekilde temas eder ve kumanda çalışmaya başlar.
Uzaktan kumandanın çalışıp çalışmadığından emin olmak için ön tarafındaki IR LED kısmını cep telefonumuzun kamerasına tutarak tuşlara basabiliriz. Mor renkte yanıp söndüğünü görüyorsak kumanda çalışıyor demektir. Kamera sensörleri insan gözünün görmediği kızılötesi ışığı algılayabilirler ve insanın görebileceği en yakın aralık olan mor renge indirgeyerek gösterirler.
Devre kurulumunu inceleyelim;
Üçlü pinin sol tarafında – yazan kısmı Arduino üzerinde GND’ye, orta pini 5V’a ve soldaki S yazan pini ise A0’a bağlayalım. Bu pin herhangi bir dijital pine bağlanabilir. Ben diğer pinlerle aynı tarafta olup karışıklık yapmaması için A0’a bağlamayı tercih ettim.
Bu sketch’te IRremote adlı yaygın Arduino kütüphanesini kullanacağız. Kütüphaneyi Arduino IDE’nin ana menüsünden Araçlar > Kütüphaneleri Yönet… bölümüne girip IRremote kelimesini aratarak Armin Joachimsmeyer tarafından hazırlanmış versiyonu kurarak ekleyebiliriz.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
/* IR Alıcı Verici Kumanda Seti Arduino ile Nasıl Kullanılır? IR Alıcı Verici Kumanda Setinin detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ #include "IRremote.h" // Kütüphane ekleniyor String buton1 = "BA45FF00"; // Mevcut kumandamızın buton kodları burada tanımlanıyor String buton2 = "B946FF00"; String buton3 = "B847FF00"; String buton4 = "BB44FF00"; String buton5 = "BF40FF00"; String buton6 = "BC43FF00"; String buton7 = "F807FF00"; String buton8 = "EA15FF00"; String buton9 = "F609FF00"; String buton0 = "E619FF00"; String buton_yildiz = "E916FF00"; String buton_kare = "F20DFF00"; String buton_yukari = "E718FF00"; String buton_asagi = "AD52FF00"; String buton_sol = "F708FF00"; String buton_sag = "A55AFF00"; String buton_ok = "E31CFF00"; String kod, sonkod; // Kullanacağımız string değişkenler tanımlanıyor int sensor = A0; // Sensörün S pini belirtiliyor void setup() { Serial.begin(9600); IrReceiver.begin(sensor,0); // Kütüphane başlatılıyor } void loop() { if(IrReceiver.decode()) { // Bir kod alındı kod = String(IrReceiver.decodedIRData.decodedRawData, HEX); // Kodu değişkene aktarıyoruz if (kod != "0"){sonkod = kod;} else {kod = sonkod;} // 0 dönüyorsa tuş basılı tutuluyordur kod.toUpperCase(); // Kod büyük harfe dönüştürülüyor Serial.print("Okunan Kod: "); Serial.print(kod); // Kod ekrana yazılıyor Serial.print(" | Buton: "); int kayitli = 0; if (kod == buton1){Serial.println("1"); kayitli = 1;} // Kod mevcut kodlarla karşılaştırılıyor if (kod == buton2){Serial.println("2"); kayitli = 1;} if (kod == buton3){Serial.println("3"); kayitli = 1;} if (kod == buton4){Serial.println("4"); kayitli = 1;} if (kod == buton5){Serial.println("5"); kayitli = 1;} if (kod == buton6){Serial.println("6"); kayitli = 1;} if (kod == buton7){Serial.println("7"); kayitli = 1;} if (kod == buton8){Serial.println("8"); kayitli = 1;} if (kod == buton9){Serial.println("9"); kayitli = 1;} if (kod == buton0){Serial.println("0"); kayitli = 1;} if (kod == buton_yildiz){Serial.println("Yıldız"); kayitli = 1;} if (kod == buton_kare){Serial.println("Kare"); kayitli = 1;} if (kod == buton_yukari){Serial.println("Yukarı"); kayitli = 1;} if (kod == buton_asagi){Serial.println("Aşağı"); kayitli = 1;} if (kod == buton_sol){Serial.println("Sol"); kayitli = 1;} if (kod == buton_sag){Serial.println("Sağ"); kayitli = 1;} if (kod == buton_ok){Serial.println("OK"); kayitli = 1;} if (kayitli == 0){Serial.println("Kayıtlı değil");} // Kod hiçbiri ile eşleşmemiş IrReceiver.resume(); // Sıradaki kodu okumaya hazırlanıyoruz } } |