Oglas

Sakrijte to u svojoj dnevnoj sobi i nasmijte se dok TiVo kutiju naizgled posjeduje demon koji zahtijeva gledanje lažnih shopping kanala. Bilo da je vaš krajnji cilj isključiti svaki televizor u susjedstvu ili izgraditi univerzalni Daljinski upravljan daljinskim upravljačem, ovaj projekt služi kao sjajna polazište za učenje osnova IR kontrole i prijemnicima.

U ovom "potezu" napravit ćemo uređaj koji snima, a zatim reproducira niz IR daljinskih naredbi. Radit će s bilo kojim uređajem koji koristi IR daljinski upravljač ili čak kombinacijom uređaja odjednom - snimanjem do 10 pritiska na tipku.

komponente

Evo popisa stvari koje će vam trebati za ovaj projekt:

  • Arduino i patch žice
  • IR prijemnik, poput TSOP382 - ali trebali biste biti u mogućnosti pronaći kompatibilni u staroj elektronici. Izvukao sam minu iz rezervnog RGB regulatora rasvjete. Obično imaju 3 noge i crne su boje, s jedne strane izgledaju kao LED koji je prepolovljen i zalepljen. Siguran sam da za to postoji tehnička riječ.
  • LED IR odašiljača, poput TIL38 - opet, to su prilično uobičajene pojave, ali kupio sam novi od velike snage od Maplina; izgledaju identično kao i bilo koji drugi LED, pa pripazite da ih ne miješate u svom elektroničkom kompletu!
  • Prikladni otpornik za vaš IR LED - koristite ovo LED kalkulator s obzirom na napon napajanja (5 V iz Arduino-a) i napon i struju naprijed iz LED podatkovnog lista (obično oko 1,2 V @ 20 mA). U mom se slučaju pokazalo 220 ohma.
  • Tipka i 10k povlačni otpornici i otpornici od 100 ohma.
  • Preuzmite IR udaljena biblioteka Kena Shirriffa iz Githuba i mjesto u svom Arduino / Knjižnice mapu. Tu je i primjer koda koji ćemo koristiti i koji bi tada trebao biti dostupan iz Arduina Otvori -> Knjižnice izbornik.
komponente

ožičenje

Rješavajte ovaj krug u tri dijela - prekidač je malo lagan, ali sve ostalo je jednostavno. Sjetite se da je kratka noga LED-a s ravnim licem katoda (negativna ili uzemljena); duga noga je anoda (pozitivna).

sklop-dijagram-ir-prank

Primanje signala

Samo napred i otvorite knjižnice / irRemote / IRrecvDemo primjer kod. Obavezno RECV_Pin ispravno je postavljena, sastavite i prenesite, a zatim otvorite serijsku konzolu na 9600 baud. Uzmite daljinski upravljač, usmjerite ga prema prijemniku i počnite pritiskati tipke. Različiti gumbi stvaraju različite kodove; neki će tada naznačiti dugo pritiskanje s početnim kodom FFFFFF, dok različiti daljinski mogu jednostavno ponovno ponoviti kod.

irrecv

Da biste detaljnije pregledali primljene podatke, pogledajte stranicu IRrecvDump umjesto toga, koji će ukazivati ​​i na vrstu primljenog signala (u ovom slučaju 32-bitni NEC) i nepročišćene vrijednosti. Dobro je znati, ali u većini ćete slučajeva htjeti samo dekodirane vrijednosti.

irdump

Ponavljanje signala

Danas nećemo pisati ništa ispočetka, pa idite i provjerite IRrecord primjer. Složenost koda ovdje se uvelike povećava, ali uglavnom je sve nositi se s različitim vrstama IR koda - u osnovi, evo što se događa u petlji:

  • Provjerite pritisne li gumb, reproducirajte trenutno pohranjeni signal ako jest i ponavljajte svakih 50 ms dok ne pritisnete.
  • Ako se ne pritisne i prepozna se signal, zabilježite to.

Najveće ograničenje ovog primjera je da djeluje samo s jednim kodom odjednom, tako da ako pritisnete drugi daljinski gumb, prebrisat će se posljednji. Gumb jednostavno ponavlja posljednji signal koji je primio. Sastavite i pokrenite kôd da biste mogli ići s ovim osnovnim ponavljačem signala. Za reprodukciju jednog signala djeluje u redu, ali to je malo praktična upotreba u poteškoćama ili na neki drugi način.

The Prank!

Promijenimo ga lagano za bilježenje 10 ili više nesretnih signala. Možete ih pronaći ovdje izmijenjeni kod, ali evo opisa promjena koje sam napravio u slučaju da želite to programirati za sebe:

  • Odredite 3 nova polja veličine 10 za spremanje skupa signala svaki put kada ih jednom otkrijete i cijeli broj za spremanje veličine tih nizova.
  • Spremite indeks mjesta na kojem se trenutno nalazimo u tom nizu. Povećajte indeks svaki put kada se signal otkrije - ali nemojte ga povećavati ako je signal ponovljeni kod.
  • Booleova vrijednost koja zaustavlja više snimanja nakon što smo dostigli maksimum.
  • Booleovo označavanje da li smo u načinu reprodukcije ili ne, umjesto da moramo pritisnuti tipku; također su izmijenili logiku gumba da biste to promijenili.

Imajte na umu da će se LED indikator na Arduino (pin 13) aktivirati nakon što je memorija puna. Trenutno morate snimiti 10 pritiska na gumbe - ni manje - a način ponovnog snimanja čekati će 1 sekundu između svakog gumba. Evo je na djelu:

Možete se igrati s stvaranjem više IR igrica ili smatrate da je ovo dobar početak epske priče projekt automatizacije doma Vodič za kućnu automatizaciju Raspberry Pi i ArduinoTržište kućne automatizacije preplavljeno je skupim potrošačkim sustavima, nespojivim jedni s drugima i skupim za instalaciju. Ako imate Raspberry Pi i Arduino, u osnovi možete postići isto na ... Čitaj više ; i ne zaboravite provjeriti sve ostale Arduino projekti. Podijelite svoje kreacije (ili probleme) u komentarima i pokažite svoju zahvalnost ovom članku dijeljenjem na vašim omiljenim društvenim mrežama!

Kreditna slika: DaGoaty

James je diplomirao iz umjetne inteligencije i certificiran je CompTIA A + i Network +. Vodeći je programer MakeUseOf-a, a svoje slobodno vrijeme provodi igrajući VR paintball i boardgames. Gradio je računala još od djeteta.