Publicitate

Ascundeți acest lucru în camera de zi și râdeți, deoarece cutia TiVo este aparent posedată de un demon care cere să vizioneze canale de cumpărături cheesy. Indiferent dacă scopul tău final este să oprești fiecare televizor din cartier sau să construiești un universal Telecomandă controlată de Siri, acest proiect servește ca un bun punct de plecare pentru a învăța elementele de bază ale controlului IR și receptoare.

În această „faină”, vom realiza un dispozitiv care înregistrează, apoi redă o serie de comenzi de la distanță IR. Va funcționa cu orice dispozitiv care utilizează o telecomandă IR sau chiar un amestec de dispozitive simultan - înregistrând până la 10 apăsări de taste.

Componente

Iată o listă a lucrurilor de care aveți nevoie pentru acest proiect:

  • Arduino și fire de plasture
  • Receptor IR, cum ar fi TSOP382 - dar ar trebui să poți găsi unul compatibil în electronice vechi. Am scos-o pe a mea dintr-un controler de iluminare RGB de rezervă. De obicei au 3 picioare și sunt negre, cu o parte arata ca un LED care a fost tăiat la jumătate și blocat. Sunt sigur că există un cuvânt tehnic pentru asta.
    instagram viewer
  • LED-ul transmițătorului IR, cum ar fi TIL38 - din nou, acestea sunt destul de comune, dar am cumpărat unul nou de mare putere de la Maplin; arata identic cu oricare alt LED, deci asigurați-vă că nu le amestecați în kitul dvs. electronic!
  • Rezistent adecvat pentru LED-ul dvs. IR - folosiți acest lucru Calculator LED având în vedere tensiunea de alimentare (5 V de la Arduino) și tensiunea de avans și curentul din fișa cu date LED (de obicei în jur de 1,2 V @ 20 mA). Acest lucru a ieșit la 220 ohmi în cazul meu.
  • Buton de apăsare și rezistență de 10k și rezistențe de 100 ohmi.
  • Descărcați Biblioteca de la distanță IR de Ken Shirriff de la Github și așezați-vă în dvs. Arduino / Biblioteci pliant. Există, de asemenea, câteva exemple de cod pe care le vom folosi, care ar trebui apoi să fie accesibile de la Arduino Deschide -> Biblioteci meniul.
componente

Cablarea

Abordează acest circuit în trei părți - comutatorul este puțin fiddly, dar orice altceva este ușor. Amintiți-vă că piciorul scurt al LED-ului cu fața plată este catodul (negativ sau pământ); piciorul lung este anodul (pozitiv).

circuit diagrama-ir-festă

Primirea semnalelor

Mergeți înainte și deschideți biblioteci / IRremote / IRrecvDemo exemplu de cod. Asigurați-vă că RECV_Pin este setat corect, compilați și încărcați, apoi deschideți consola Serial la 9600 baud. Prinde orice telecomandă pe care o ai de mână, orientează-o către receptor și începe să apese butoane. Diferitele butoane vor produce coduri diferite; unii vor indica o apăsare lungă cu codul inițial atunci FFFFFF, în timp ce diferite telecomenzi pot pur și simplu repeta codul.

irrecv

Pentru o vizualizare mai detaliată a datelor primite, aruncați o privire la IRrecvDump de exemplu, care va indica atât tipul de semnal primit (NEC pe 32 de biți în acest caz), cât și valorile brute. Bine de știut, dar în cele mai multe cazuri veți dori doar valorile decodate.

irdump

Repetarea unui semnal

Nu vom scrie fața noastră astăzi de la zero, așa că mergeți mai departe și consultați IRrecord exemplu. Complexitatea codului crește foarte mult aici, dar este cel mai mult pentru a face față cu gestionarea diferitelor tipuri de coduri IR - în fond, iată ce se întâmplă în interiorul buclei:

  • Verificați dacă este apăsat butonul, redați semnalul memorat în acest moment dacă este și repetați la fiecare 50 ms până când este apăsat.
  • Dacă nu este apăsat și este detectat un semnal, înregistrați-l.

Cea mai mare limitare a acestui exemplu este că funcționează doar cu un singur cod simultan, deci dacă apăsați un alt buton de la distanță, îl va suprascrie pe ultimul. Butonul înlocuiește pur și simplu ultimul semnal pe care l-a primit. Compilați și executați codul, astfel încât să puteți avea o idee cu acest repetor de semnal de bază. Pentru a reda un singur semnal, funcționează bine, dar asta nu prea are niciun folos practic într-o farsă sau altfel.

Prank!

Să-l modificăm ușor pentru a înregistra 10 sau mai multe semnale răutăcioase. Puteți găsi cod complet modificat aici, dar iată o prezentare a modificărilor pe care le-am făcut în cazul în care doriți să aveți o programare directă pentru dumneavoastră:

  • Definiți 3 tablouri noi de dimensiunea 10 pentru stocarea unui set de semnale de fiecare dată când este detectat unul și un număr întreg pentru a stoca dimensiunea acestor tablouri.
  • Stocați un index al locului în care ne aflăm în prezent. Măriți indexul de fiecare dată când este detectat un semnal - dar nu creșteți dacă semnalul este un cod repetat.
  • O valoare booleană care nu mai este înregistrată odată ce am ajuns la maxim.
  • Un boolean pentru a indica dacă ne aflăm în modul de redare sau nu, în loc să trebuie să ținem apăsat butonul; a modificat, de asemenea, logica butonului pentru a comuta acest lucru.

Rețineți că ledul indicator de pe Arduino (pinul 13) se va activa odată ce memoria este completă. În acest moment, trebuie să înregistrați 10 apăsări de butoane - nu mai puțin - și modul de redare va aștepta 1 secundă între fiecare redare a butonului. Iată-l în acțiune:

Puteți juca fie făcând mai multe farse IR, fie considerați că este un început bun pe un aspect mai epic proiect de automatizare a locuinței Ghid de automatizare acasă cu zmeură Pi și ArduinoPiața automatizării casnice este inundată cu sisteme de consum scumpe, incompatibile între ele și costisitoare de instalat. Dacă aveți un Raspberry Pi și un Arduino, puteți obține același lucru la ... Citeste mai mult ; și nu uitați să consultați toate celelalte Proiecte Arduino. Împărtășește-ți creațiile (sau problemele) în comentarii și te rog să-ți arate aprecierea pentru acest articol, împărtășindu-l pe rețelele de socializare preferate!

Credit imagine: DaGoaty

James are licență în inteligență artificială și este certificat CompTIA A + și Network +. Este dezvoltatorul principal al MakeUseOf și își petrece timpul liber jucând VR paintball și boardgames. Construiește calculatoare de când era mic.