- Çalışma Açıklaması:
- Arduino kullanarak IR Uzaktan Kumanda Sinyallerini Çözme:
- Devre Tanımı:
- Kod Açıklama:
Daha önce, DTMF Tabanlı Ev Otomasyonu, Arduino kullanarak PC Kontrollü Ev Otomasyonu, Bluetooth Kontrollü Ev Otomasyonu gibi farklı teknolojileri kullanan birçok Ev otomasyonu türünü ele almıştık. Bu projede, ev aletlerini kontrol etmek için IR tabanlı kablosuz iletişim kullanıyoruz. Bu projede tüm süreci kontrol etmek için Arduino kullanılmıştır. AC ev aletlerini kontrol etmek için IR TV / DVD / MP3 uzaktan kumanda kullanarak kontrol sistemine bazı komutlar gönderiyoruz. IR uzaktan kumandasından sinyal aldıktan sonra, Arduino, ev aletlerini bir röle sürücüsü aracılığıyla AÇMAK veya KAPATMAKtan sorumlu rölelere ilgili sinyali gönderir.
Çalışma Açıklaması:
Bu projenin çalışması kolayca anlaşılabilir. IR Remote'un herhangi bir düğmesine bastığımızda, uzaktan kumanda 38Khz modülasyon frekansını kullanarak kodlanmış darbeler dizisi şeklinde bir kod gönderir. Bu darbeler TSOP1738 sensörü tarafından alınır ve Arduino tarafından okunur ve ardından Arduino, alınan darbe dizisini onaltılık bir değere çözer ve kodu çözülen değeri, basılan düğmenin önceden tanımlanmış onaltılık değeriyle karşılaştırır. Herhangi bir eşleşme olursa, Arduino göreceli işlem yapar ve ilgili sonuç da uygun komutlar kullanılarak 16x2 LCD'de görüntülenir. Burada bu projede Fan, Işık ve TV'yi gösteren gösteri için farklı renklerde 3 ampul kullandık.
Farklı cihazlar için birçok IR Uzaktan Kumandası türü vardır, ancak çoğu 38KHz Frekans sinyali üzerinde çalışmıştır. İşte bu projede ev aletlerini IR TV uzaktan kumandası kullanarak kontrol ediyoruz. IR uzak sinyalini tespit etmek için TSOP1738 IR Receiver kullanıyoruz. Bu TSOP1738 sensörü 38Khz Frekans sinyalini algılayabilir. IR uzaktan kumanda ve TSOP1738'in çalışması bu makalede ayrıntılı olarak ele alınabilir: IR Verici ve Alıcı
Bileşenler:
- Arduino UNO
- TSOP1738
- IR TV / DVD Uzaktan Kumanda
- ULN2003
- Röleler 5 volt
- Tutuculu ampul
- Bağlantı telleri
- Ekmek tahtası
- 16x2 LCD
- Güç kaynağı
- PVT
- IC 7805
Burada bu projede Fan, Işık ve TV'yi kontrol etmek için sırasıyla 7, 8 ve 9 numaralı IR uzaktan kumanda butonları ve tüm cihazları aynı anda AÇMAK ve KAPATMAK için ON / OFF butonu (Güç butonu) kullanılmaktadır.
Burada tekli ev aletini AÇMAK ve KAPATMAK için geçiş yöntemini kullandık. Yöntemi değiştir bu, düğmeye hiç basılmamasına veya tuhaf zamanlarda basılmamasına bakmaktan başka bir şey değildir. Bu, hatırlatıcıyı 2'ye (i% 2) böldükten sonra alarak bulunur, eğer bir hatırlatma varsa cihaz AÇILACAK ve hatırlatıcı 0 ise KAPANACAKTIR. Uzaktan kumandadaki Tuş 7'ye basıldığını ve ardından uzaktan kumandanın TSOP IR Alıcısı aracılığıyla Arduino'ya bir sinyal gönderdiğini varsayalım. Ardından Arduino bunu çözer ve kodu çözülen değeri sonuç değişkeninde saklar. Artık sonuç değişkeninin onaltılık değeri 0x1FE00FF vardır, onu anahtar 7'nin önceden tanımlanmış onaltılık değeriyle eşleştirdikten sonra (yukarıdaki resme bakın), Arduino Fanı AÇIK konuma getirir. Şimdi aynı tuşa (7 tuşu) tekrar bastığımızda IR aynı kodu gönderir. Arduino aynı kodu alıyor ve önceki gibi aynı kodla eşleştiriliyor ancak bu sefer bitin değiştirilmesi nedeniyle Fan kapandı (i% 2).
Arduino kullanarak IR Uzaktan Kumanda Sinyallerini Çözme:
DVD NEC tipi Uzaktan kodu çözülmüş çıkış kodlarının listesi:
IR uzaktan kumandanız için Kodlanmış çıkışı bilmiyorsanız, kolayca bulunabilir, sadece şu adımları izleyin:
- IR uzaktan kitaplığını buradan indirin
- Onu açın ve Arduino 'Kitaplıkları' klasörünüze yerleştirin. Ardından çıkarılan klasörü IRremote olarak yeniden adlandırın.
- Aşağıdaki programı Arduino'nuzdan çalıştırın ve Arduino IDE'de Seri Monitör penceresini açın. Şimdi herhangi bir IR Remote düğmesine basın ve Seri Monitör penceresinde karşılık gelen kodu çözülmüş hex çıkışını görün.
* IRremote: IRrecvDemo - IRrecv ile IR kodlarının alındığını gösterir * RECV_PIN girişine bir IR detektörü / demodülatör bağlanmalıdır. * Sürüm 0.1 Temmuz 2009 * Telif Hakkı 2009 Ken Shirriff * http://arcfn.com * / #include
Yukarıdaki program IRremote kütüphanesinin 'örnekler' klasöründen alınmıştır, IR uzaktan kumandayı kullanma hakkında daha fazla bilgi edinmek için daha fazla örneği inceleyebilirsiniz. Böylece IR uzak çıkışının kodunu böyle çözdük.
Devre Tanımı:
Bu devrenin bağlantıları çok basittir, burada 4-bit modunda doğrudan arduino'ya bağlanan ev aletlerinin durumunu görüntülemek için bir likit kristal ekran kullanılır. LCD'nin RS, EN, D4, D5, D6, D7 veri pinleri 6, 7, 8, 9, 10, 11 numaralı arduino dijital pinlerine, TSOP1738'in çıkış pinleri ise direkt olarak 14 numaralı dijital pin'e bağlanır.) Arduino. Ve Vcc pini devrenin Toprak terminaline bağlanan bir +5 volt ve GND pini ile bağlanır. ULN2003 adlı bir röle sürücüsü de röleleri sürmek için kullanılır. IŞIK, FAN ve TV'yi kontrol etmek için 5 volt SPDT 3 rölesi kullanılır. Ve röleler, sırasıyla LIGHT, FAN ve TV'yi kontrol etmek için ULN2003 röle sürücüsü aracılığıyla 3, 4 ve 5 numaralı arduino pinlerine bağlanır.
Kod Açıklama:
Bu projenin bir bölümünü programlarken Öncelikle programlamada, Google'da kolayca bulunabilen IR uzaktan kumanda kitaplığını dahil ediyoruz. Ve pin tanımlayın ve değişkenleri bildirin.
#Dahil etmek
Daha sonra sıvı kristal ekran için bir başlık ekleyin ve ardından LCD ve ev aletleri için verileri ve kontrol pinlerini tanımlıyoruz.
#Dahil etmek
Bundan sonra LCD'yi başlatmamız ve fan, ışık ve TV için kullanılan pinin yönünü vermemiz gerekiyor.
geçersiz kurulum () {Serial.begin (9600); lcd.begin (16,2); pinMode (Fan, ÇIKIŞ); pinMode (Işık, ÇIKIŞ); pinMode (TV, OUTPUT);
Daha önce açıklandığı gibi, kodun aşağıdaki kısmı, alınan onaltılık değeri bu düğmenin önceden tanımlanmış onaltılı kodu ile karşılaştırmak için kullanılır. Eşleşirse, kodda verilen uygun işlevler kullanılarak göreceli bir işlem gerçekleştirilir.
void döngü () {if (irrecv.decode (& sonuçlar)) {Serial.println (results.value, HEX); gecikme (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); eğer (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);