İlan

Bunu oturma odanızda gizleyin ve TiVo kutusunun görünüşte sevimsiz alışveriş kanallarını izlemeyi gerektiren bir şeytan tarafından sahip olduğu için gülün. Nihai hedefiniz mahalledeki her TV'yi kapatmak mı yoksa evrensel Siri kontrollü uzaktan kumanda, bu proje IR kontrolünün temellerini öğrenmek için harika bir başlangıç ​​noktası olarak hizmet ediyor ve alıcılar.

Bu “şaka” da, bir dizi IR uzaktan komutunu kaydeden, sonra çalan bir cihaz yapacağız. IR uzaktan kumanda kullanan herhangi bir cihazla veya hatta aynı anda bir cihaz karışımıyla çalışır - 10 tuşa kadar kayıt yapar.

Bileşenler

Bu proje için ihtiyacınız olacak şeylerin bir listesi:

  • Arduino ve patch teller
  • TSOP382 gibi IR alıcısı - ancak eski elektroniklerde uyumlu bir tane bulabilmeniz gerekir. Madeni yedek bir RGB aydınlatma denetleyicisinden çıkardım. Tipik olarak 3 bacağı vardır ve siyahtır, bir tarafı yarıya kesilmiş ve takılmış bir LED gibi görünür. Bunun için teknik bir kelime olduğundan eminim.
  • TIL38 gibi IR verici LED'i - yine, bunlar oldukça yaygın, ancak Maplin'den yeni bir yüksek güç aldım; diğer LED'lerle aynı görünüyorlar, bu yüzden onları elektronik kitinizde karıştırmamaya dikkat edin!
    instagram viewer
  • IR LED'iniz için uygun direnç - bunu kullanın LED hesap makinesi besleme voltajı (Arduino'dan 5 V) ve LED veri sayfasından ileri voltaj ve akım (genellikle yaklaşık 20 V @ 20 mA) verilir. Bu benim durumumda 220 ohm olarak çıktı.
  • Buton ve 10k açılır ve 100 ohm dirençler.
  • İndir Github'dan Ken Shirriff tarafından IR uzaktan kütüphane ve senin yerine Arduino / Kütüphaneler Klasör. Ayrıca, Arduino'dan erişilebilir olması gereken bazı örnek kodlar da var Açık -> Kütüphaneler Menü.
bileşenler

kablolama

Bu devreyi üç parça halinde ele alın - anahtar biraz hareketsiz, ancak diğer her şey kolaydır. LED'in düz yüzlü kısa bacağının katot (negatif veya toprak) olduğunu unutmayın; uzun bacak anottur (pozitif).

Devre şeması-ir-şaka

Sinyal Alma

Devam et ve kütüphaneler / irRemote / IRrecvDemo örnek kod. Emin ol RECV_Pin doğru şekilde ayarlandığında, derleyin ve yükleyin, ardından 9600 baud'da Seri konsolu açın. Elinizdeki uzaktan kumandayı alın, alıcınıza doğrultun ve düğmelere basmaya başlayın. Farklı düğmeler farklı kodlar üretir; bazıları ilk kod ile uzun bir basış gösterecektir sonra FFFFFF, farklı uzaktan kumandalar kodu tekrarlayabilir.

irrecv

Alınan verilerin daha ayrıntılı bir görünümü için IRrecvDump bunun yerine hem alınan sinyalin türünü (bu durumda 32 bit NEC) hem de ham değerleri gösterecektir. Bilmek güzel, ama çoğu durumda sadece kodu çözülmüş değerleri isteyeceksiniz.

irdump

Bir Sinyali Tekrarlama

Bugün şakamızı sıfırdan yazmayacağız, bu yüzden devam edin ve IRrecord misal. Kod karmaşıklığı burada büyük ölçüde artıyor, ancak çoğunlukla farklı IR kodlarının üstesinden gelmekle ilgili - temel olarak, döngü içinde neler oluyor:

  • Düğmeye basıldığını kontrol edin, kayıtlı durumda sinyali tekrar oynatın ve basılana kadar her 50 ms'de bir tekrarlayın.
  • Basılmazsa ve bir sinyal algılanırsa, bunu kaydedin.

Bu örneğin en büyük sınırlaması, her seferinde yalnızca bir kodla çalışmasıdır, bu nedenle başka bir uzaktan düğmeye basarsanız sonuncunun üzerine yazılır. Düğme, en son aldığı sinyali tekrar çalar. Kodu derleyin ve çalıştırın, böylece bu temel sinyal tekrarlayıcı ile bir geçiş yapabilirsiniz. Tek bir sinyali çalmak için iyi çalışıyor, ancak şakada veya başka bir yerde çok az pratik kullanım.

Şaka!

10 veya daha fazla yaramaz sinyali kaydetmek için biraz değiştirelim. Sen-ebilmek bulmak burada tam değiştirilmiş kod, ancak bunu kendiniz için programlama yapmak istiyorsanız yaptığım değişikliklerin ana hatları aşağıdadır:

  • Her tespit edildiğinde bir dizi sinyali saklamak için 10 boyutlu 3 yeni dizi ve bu dizilerin boyutunu saklamak için bir tamsayı tanımlayın.
  • Şu anda bu dizide bulunduğumuz yerin bir dizinini saklayın. Her sinyal algılandığında dizini artırın - ancak sinyal bir tekrar kodu ise artmayın.
  • Maksimum değere ulaştığımızda daha fazla kaydedilmesini engelleyen bir boole değeri.
  • Düğmeyi basılı tutmak yerine oynatma modunda olup olmadığımızı gösteren bir boole; ayrıca düğme mantığını değiştirerek bunu değiştirebilir.

Bellek dolduğunda Arduino'daki (pim 13) gösterge LED'inin etkinleşeceğini unutmayın. Şu anda, 10 düğmeye basmanız gerekiyor - daha az değil - ve tekrarlama modu her düğme tekrarlaması arasında 1 saniye bekleyecektir. İşte burada:

Daha fazla IR şaka yapmakla oynayabilir veya daha destansı bir başlangıç ​​için iyi bir başlangıç ​​olarak düşünebilirsiniz. ev otomasyon projesi Raspberry Pi ve Arduino ile Ev Otomasyon RehberiEv otomasyonu pazarı, birbiriyle uyumlu olmayan ve kurulumu pahalı olan pahalı tüketici sistemleriyle doludur. Bir Raspberry Pi ve bir Arduino'nuz varsa, aynı şeyi ... Daha fazla oku ; ve diğerlerine göz atmayı unutma Arduino projeleri. Kreasyonlarınızı (veya sorunlarınızı) yorumlarda paylaşın ve lütfen bu makale için en sevdiğiniz sosyal ağlarda paylaşarak takdirinizi gösterin!

Resim kredisi: DaGoaty

James Yapay Zeka alanında lisans derecesine sahiptir ve CompTIA A + ve Network + sertifikalıdır. MakeUseOf'un baş geliştiricisi ve boş zamanlarını VR paintball ve boardgames oynayarak geçiriyor. Çocukluğundan beri bilgisayar yapıyor.