Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Šema za očitavanje infracrvenog signala na računar. Upravljanje arduinom pomoću IR daljinskog upravljača

Šema za očitavanje infracrvenog signala na računar. Upravljanje arduinom pomoću IR daljinskog upravljača

Na internetu postoji mnogo članaka o tome kako napraviti vlastiti daljinski upravljač za TV na Arduinu, ali mi je bio potreban univerzalni daljinski upravljač za upravljanje televizorom i media playerom. Glavna prednost mog univerzalnog daljinskog upravljača je što su dugmad u aplikaciji za android telefon dvostruke namjene, ali usput pogledajte video.



Daljinski upravljač je veoma zgodan po tome što se na ekranu koriste skoro isti tasteri za upravljanje TV-om i plejerom. Jedna razlika je u tome što " AV"u načinu upravljanja TV-om, mijenja se na dugme" "(stop) kada pređete u režim kontrole plejera. Na slikama su prikazana dva režima, levo je režim kontrole TV-a, desno je režim kontrole plejera.

Pa, sada ću vam reći malo o stvaranju takvog daljinskog upravljača. Za uređaj sam koristio daljinski upravljač ERGO TV i DUNE HD TV101W daljinski upravljač za media player.

Za primanje podataka sa konzola koristio sam TSOP1138 infracrveni senzor (analog TSOP4838) na radnoj frekvenciji od 38 kHz i spojio ga na Arduino ploču na sljedeći način:

Ova skica će biti potrebna za određivanje kodiranja prijenosa podataka i čitanje koda dugmadi na daljinskom upravljaču.

Na skici, na liniji int RECV_PIN = 11; označavamo našu iglu na broju 4

Nakon popunjavanja skice, otvorite "port monitor" i pritiskom na dugmad na daljinskom pogledajte primljene podatke.

Na slici je prikazan primjer skeniranja dugmeta za napajanje sa daljinskog upravljača TV-a i daljinskog upravljača plejera. Sada kreiramo tabelu za kodove dugmadi.

Uradio sam to kao na slici iznad. Ispod natpisa TV Kodovi dugmadi za daljinski upravljač za TV; ispod natpisa Player- kodovi sa daljinskog upravljača media playera.

Sada isključujemo naš prijemnik infracrvenih signala sa Arduino ploče i na njega povezujemo HC-05 Bluetooth modul i infracrvenu LED diodu prema dijagramu na fotografiji.

Nakon toga idite direktno na skicu.

Skica

#include IRsend irsend; int y = 1; void setup () (Serial.begin (9600);) void loop () (if (Serial.available ()> 0) (int x = Serial.read (); if (x == 49) (y = 1; ) if (x == 50) (y = 2;) if (y == 1) (// kodovi gumba za daljinski upravljač za TV if (x == 97) (irsend.sendNEC (0x807F08F7, 32); kašnjenje (40 );) if (x == 98) (irsend.sendNEC (0x807FA857, 32); kašnjenje (40);) if (x == 99) (irsend.sendNEC (0x807F708F, 32); kašnjenje (40);) ako (x == 100) (irsend.sendNEC (0x807FF00F, 32); kašnjenje (40);) ako (x == 101) (irsend.sendNEC (0x807F30CF, 32); kašnjenje (40);) ako (x == 102) (irsend.sendNEC (0x807FB04F, 32); kašnjenje (40);) ako (x == 103) (irsend.sendNEC (0x807F9867, 32); kašnjenje (40);) ako (x == 104) (irsend .sendNEC (0x807F58A7, 32); kašnjenje (40);) ako (x == 105) (irsend.sendNEC (0x807FD827, 32); kašnjenje (40);) ako (x == 106) (irsend.sendNEC (0x807) , 32); kašnjenje (40);) if (x == 107) (irsend.sendNEC (0x807F48B7, 32); kašnjenje (40);) if (x == 108) (irsend.sendNEC (0x807FB847, 32); kašnjenje (40);) ako (x == 109) (irsend.sendNEC (0x807F6897, 32); kašnjenje (40); )) if (y == 2) (// kodovi dugmadi na daljinskom upravljaču sa media playera if (x == 97) (irsend.sendNEC (0xFDC23D, 32); kašnjenje (40);) if (x == 98) (irsend. sendNEC (0xFDE01F, 32); kašnjenje (40);) ako (x == 99) (irsend.sendNEC (0xFD18E7, 32); kašnjenje (40);) ako (x == 100) (irsend .sendNEC (0xFDE817, 32); kašnjenje (40);) ako (x == 101) (irsend.sendNEC (0xFDA857, 32); kašnjenje (40);) ako (x == 102) (irsend.sendNEC (0xFD6897) , 32); kašnjenje (40);) if (x == 103) (irsend.sendNEC (0xFDA857, 32); kašnjenje (40);) if (x == 104) (irsend.sendNEC (0xFD6897, 32); kašnjenje (40); ) if (x == 105) (irsend.sendNEC (0xFDE817, 32); kašnjenje (40);) if (x == 106) (irsend.sendNEC (0xFD18E7, 32); kašnjenje (40) ;) if (x == 107) (irsend.sendNEC (0xFD9867, 32); kašnjenje (40);) if (x == 108) (irsend.sendNEC (0xFD28D7, 32); kašnjenje (40);) if ( x == 109) (irsend.sendNEC (0xFD20DF, 32); kašnjenje (40);))))


U skici ćete morati urediti kodove dugmadi, odnosno u redovima:

If (x == 97) (irsend.sendNEC (0x807F08F7, 32); kašnjenje (40);
Promijenite vrijednost 807F08F7 u:

If (y == 1) (// kodovi dugmeta za daljinski upravljač ako (x == 97) (irsend.sendNEC (0x12345678, 32); kašnjenje (40);)
Gdje je 12345678 kod vašeg gumba.

Nakon što uredite skicu pomoću kodova dugmadi, otpremite skicu na Arduino ploču i nastavite s instalacijom aplikacije na telefon.

Uključujemo bluetooth u telefonu, tražimo naš uređaj, kreiramo par, a zatim pokrećemo aplikaciju Pult Na telefonu.

Kada ga pokrenemo, imaćemo ekran sa crvenom ikonicom bluetooth-a u donjem desnom uglu, što signalizira da nismo povezani sa našim uređajem.

Nakon toga kliknite na ovu ikonu. Trebali bismo imati prozor sa listom svih dostupnih bluetooth uređaja, gdje biramo naš uređaj za povezivanje.

Sada smo se vratili na glavni ekran i već možemo kontrolirati TV:

Za prelazak na način upravljanja potrebno je da pritisnemo dugme sa natpisom "igrač"... Kao što sam već rekao, naše dugme sa oznakom "AV" će se promeniti u " ":

Da biste prekinuli vezu sa našim uređajem, samo držite pritisnuto dugme "Power" nekoliko sekundi.

Pa, nekoliko fotografija mog gotovog uređaja.

Ispostavilo se, čini se, nije loše. Radujem se komentarima na članak.

IR prijemnik i infracrveni daljinski upravljač najčešći su i najjednostavniji način upravljanja elektroničkom opremom. Infracrveni spektar zračenja nije vidljiv ljudskom oku, ali ga dobro prihvataju IC prijemnici koji su ugrađeni u elektronske uređaje. Arduino ir daljinski moduli se koriste za kontrolu različite opreme u liniji vidljivosti.

Široka upotreba IR emitera postala je moguća zbog njihove niske cijene, jednostavnosti i lakoće upotrebe. IR zračenje je u rasponu od 750 do 1000 mikrona - ovo je dio spektra najbliži vidljivoj svjetlosti. U infracrvenom području, optička svojstva različitih materijala mogu se promijeniti. Neka stakla, na primjer, postaju neprozirna za IC zrake, dok je parafin, naprotiv, providan u IC spektru.

Zračenje se registruje uz pomoć posebnih fotografskih materijala, na osnovu kojih se izrađuju prijemnici. Izvor infracrvenog zračenja, pored zagrijanih tijela (sunce, žarulje sa žarnom niti ili svijeće), mogu biti i poluprovodnički uređaji - IR LED, laseri. Zračenje u infracrvenom opsegu ima niz karakteristika, zahvaljujući kojima su zgodne za korištenje u daljinskim upravljačima:

  • Solid state emiteri (IR LED) su jeftini i kompaktni.
  • Infracrvene zrake ljudsko oko ne percipira niti snima.
  • IR prijemnici su također jeftini i male veličine.
  • Niske smetnje jer su predajnik i prijemnik podešeni na istu frekvenciju.
  • Nema negativnog uticaja na zdravlje ljudi.
  • Visoka reflektivnost većine materijala.
  • IR emiteri ne utiču na rad drugih uređaja.

Rad daljinskog upravljača se izvodi na sljedeći način. Kada se dugme pritisne, signal se kodira u infracrvenom svetlu, prijemnik ga prima i izvršava potrebnu radnju. Informacija je kodirana kao logički niz naleta impulsa određene frekvencije. Prijemnik prima ovu sekvencu i demodulira podatke. Za primanje signala koristi se mikrokolo koje sadrži fotodetektor (fotodiodu), pojačala, propusni filter, demodulator (detektor koji vam omogućava da odaberete omotnicu signala) i izlazni tranzistor. Također ima filtere - električne i optičke. Takvi uređaji rade na udaljenosti do 40 metara. IR metoda prijenosa podataka postoji u mnogim uređajima: u kućanskim aparatima, industrijskoj opremi, kompjuterima, optičkim linijama.

Arduino IR prijemnik

Za čitanje IR signala trebat će vam sama Arduino ploča, matična ploča, prijemnik IR signala i džamperi. Postoji mnogo različitih prijemnika, ali je bolje koristiti TSOP312 ili neki drugi prikladan za Arduino. Podaci od konzole do prijemnika mogu se prenijeti korištenjem RC5 ili NEC protokola.

Da biste utvrdili koja noga kojoj pripada, morate pogledati senzor sa strane prijemnika. Zatim na prijemniku centralni kontakt je uzemljenje, lijevo je izlaz za mikrokontroler, desno je napajanje.

Za praktičnost, mogu se koristiti gotovi moduli IR prijemnika.

Povezivanje IR prijemnika na arduino

IR izlazi prijemnika su povezani na Arduino na GND, 5V portove i digitalni ulaz. Dijagram za povezivanje senzora na 11. digitalni pin je prikazan ispod.

Ovako izgleda kolo sa infracrvenim prijemnim modulom:


Biblioteke za rad sa IR

Za rad sa IR uređajima možete koristiti IRremote biblioteku, koja pojednostavljuje konstrukciju upravljačkih sistema. Biblioteku možete preuzeti. Nakon preuzimanja, kopirajte fajlove u fasciklu \ arduino \ libraries. Da biste se povezali sa skicom vaše biblioteke, morate dodati datoteku zaglavlja #include .

Za čitanje informacija koristi se primjer IRrecvDumpV2 iz biblioteke. Ako daljinski upravljač već postoji na listi prepoznatih, skeniranje nije potrebno. Da biste pročitali kodove, trebate pokrenuti ARduino IDE i otvoriti primjer IRrecvDemo iz IRremote-a.

Postoji i druga biblioteka za rad sa IR signalima - IRLib. Po funkcionalnosti je sličan prethodnom. U poređenju sa IRremoteom, IRLib ima primjer za određivanje frekvencije IR senzora. Ali prva biblioteka je jednostavnija i praktičnija za korištenje.

Nakon učitavanja biblioteke, možete početi čitati primljene signale. Za to se koristi sljedeći kod.

Naredba decode_results se koristi za imenovanje rezultirajućeg signala u varijablu rezultata.

U kodu morate prepisati "HEX" u "DEC".

Zatim, nakon učitavanja programa, morate otvoriti serijski monitor i pritisnuti dugmad na daljinskom. Na ekranu će se pojaviti različiti kodovi. Potrebno je da zabilježite kojem dugmetu odgovara primljeni kod. Pogodnije je dobijene podatke zapisati u tabelu. Zatim se ovaj kod može upisati u program tako da možete kontrolirati uređaj. Kodovi se upisuju u memoriju same arduino EEPROM ploče, što je vrlo zgodno, jer ne morate programirati tipke svaki put kada uključite daljinski upravljač.

Dešava se da se prilikom učitavanja programa pojavi greška "TDK2 nije deklarisan u njegovom opsegu". Da biste to popravili, morate otići u explorer, otići u mapu u kojoj je instalirana Arduino IDE aplikacija i obrisati datoteke IRremoteTools.cpp i IRremoteTools.h. Nakon toga, potrebno je ponovo učitati program u mikrokontroler.

Zaključak

Korištenje Arduino ir daljinskog upravljača olakšava život korisniku. Mobilni telefon, tablet ili računar mogu biti daljinski upravljači - sve što vam treba je poseban softver. Uz pomoć Arduina, možete centralizirati svu kontrolu. Možete izvršiti nekoliko radnji odjednom pomoću jednog dugmeta na daljinskom upravljaču - na primjer, uključite TV i Blu-Ray istovremeno.

Prilikom kreiranja uređaja za rad sa IC daljinskim upravljačima, vrlo je potreban alat kojim se snimaju i analiziraju IR signali. U idealnom slučaju, takav alat može biti digitalni osciloskop ili logički analizator, ali nemaju svi te uređaje, a posebno je skupo kupiti. Kako biti? Postoji vrlo jednostavno rješenje - kompjuterska zvučna kartica! Uz njegovu pomoć ćemo snimiti signal.

Pored zvučne kartice (koju nadam se da imate u svom kompjuteru), potreban nam je i IR prijemnik. Bilo bi ispravnije sastaviti punopravni krug prijemnika s TSOP-om, ali mi ćemo djelovati što jednostavnije - kao IR prijemnik uzet ćemo najobičniji IR LED (onaj koji se nalazi u vašem daljinskom upravljaču). Možete, naravno, uzeti IR fotodiodu, ali IR LED je lakše nabaviti. IR LED mora biti povezan direktno na mikrofonski ulaz zvučne kartice. Da biste to uradili, potreban vam je utikač od 3,5 mm i komad zaštićene žice (prerezao sam kabl sa konektorom od starog mikrofona koji ne radi).

LED dioda se povezuje na sljedeći način:

Kao rezultat, dobijamo sljedeći uređaj:

Utikač ubacujemo u ulaz za mikrofon (ružičast je). U postavkama zvučne kartice odaberite mikrofon kao ulazni uređaj, odvrnite kontrolu pojačanja do maksimuma i označite polje za potvrdu dodatnog pojačanja. Za provjeru usmjeravamo daljinski upravljač na LED prijemnik (potrebno ga je približiti što bliže daljinskom upravljaču), pritisnite tipku - u zvučnicima bi se trebali čuti klikovi.

Ako iz bilo kojeg razloga nemate ulaz za mikrofon (na primjer, u laptopu) - spojite prijemnik na linijski ulaz zvučne kartice - sve će raditi isto, samo će amplituda snimljenog signala postati mnogo manji.


Sada nam je potreban program za snimanje zvuka.
Za ove svrhe je prikladan bilo koji program koji imate. Ako nemate omiljeni program za rad sa zvukom, nudim mali i besplatni program - Wavosaur (http://www.wavosaur.com/) Program radi bez instalacije i male je veličine - kako ja volim :) .

Program za rad sa zvukom.

Nakon pokretanja programa, uključite indikator nivoa (ravnalo na desnoj strani prozora) i provjerite reakciju na signale daljinskog upravljača. Prema zadanim postavkama, sve bi trebalo raditi - ravnalo će otići izvan skale od primljenih signala (ako nema reakcije, penjemo se u postavke Audio konfiguracija / Audio ulaz). Zatim pritisnemo ikonu snimanja, približimo daljinski upravljač što je moguće bliže prijemnoj LED diodi, pritisnemo tipku daljinskog upravljača i držimo ga nekoliko sekundi. Onemogući snimanje - Gotovo! U prozoru ćemo vidjeti skeniranje primljenog IR signala. Zanimljivo je da će signal već biti detektovan - nećemo vidjeti noseću frekvenciju, već samo korisni signal. To je zbog činjenice da ulazni kapaciteti mikrofonskog ulaza nemaju vremena za punjenje.

Primljeni signal se može skalirati u vremenu, amplitudi i, što je vrlo zgodno, isticanjem određenog intervala odmah se vidi njegovo trajanje. Primljeni signal se može sačuvati (bolje u wav formatu - neće biti izobličenja) ili eksportovati u MP3, tekst, binarni fajl (korisna stvar!).

Na primjer, moj signal daljinskog upravljača sa TV-a (NEC format):

Svi vremenski intervali se vide sa slike, čak možete izračunati adresu daljinskog upravljača i komandni kod dugmeta - sve je jasno i razumljivo.

P.S.
Veliki zahtjev! Ako sastavite takav prijemnik, sačuvajte pakete svojih daljinskih upravljača i pošaljite mi ih na sapun (u kartici "o projektu") - to će uvelike pomoći u poboljšanju algoritma univerzalnog prijemnika. U nazivu datoteke navedite od čega daljinski upravljač i kompaniju proizvođača (na primjer: tv-sony.wav).


Više o radu sa IR daljinskim upravljačima!
Predložio sam najlakši način da "osjetite" signal sa IC daljinskog upravljača, ali postoji mnogo rješenja koja mogu mnogo više! Primite IR signal, analizirajte, sačuvajte, igrajte, programirajte svoje daljinske upravljače, upravljajte svojim računarom... Ovaj dio će sadržavati linkove do takvih rješenja.

1. DvzRcEditor
Program će ići prvi. DvzRcEditor, koju sam bacio mobi. Program je napravio neki Dvz 2010(nažalost nema koordinata, možda ko zna?).


- Program za analizu i ponavljanje IC signala.
Program omogućava korištenje mikrofonskog ulaza i audio izlaza za snimanje i reprodukciju IR poruka. Postoje alati za analizu IR poruke i kreiranje baze podataka o depešama konzola (postoji mala baza za razne konzole). Zanimljivo rješenje je podržati vlastiti daljinski upravljač napravljen na ATtiny2313.


Daljinski upravljač ima 7 tipki na koje možete podesiti bilo koju komandu od analiziranih, a sam program može upisati signale za ove tipke u mikrokontroler (pod uslovom da tamo prvi put flešujete bootloader).

Sve je jednostavno i jasno - svidjelo mi se!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
To čak nije ni program - to je čitav internetski resurs posvećen IR daljinskim upravljačima. Sadrži puno korisnih informacija, hardverskih i softverskih rješenja za sve slučajeve. Evo šta autori pišu o SlyControl-u:
Univerzalni program za upravljanje svime pomoću računara.

Za šta se može koristiti:
- upravljanje bilo kojim programom sa bilo kog daljinskog upravljača (RC), sa tastature, multimedijalnih tastera ili džojstika
- emulacija tastature i miša sa bilo kojeg daljinskog upravljača
- planer (ne samo da pokrene program na vrijeme, već i izvrši neke radnje s njim)
- gašenje računara pomoću tajmera ili događaja
- svjetlo u stanu možete upaliti i sa daljinskog upravljača, samo trebate dodati odgovarajući plug-in 😉

A tu je i program na resursu RCExplorer 2.1- baza podataka o IR daljinskim upravljačima (baza podataka sadrži više od 200 zapisa).


Program Vam omogućava da:
- Prijem signala sa konzola pomoću zvučne kartice, COM porta, IgorPlug-USB ili IgorPlug2
- Analizirajte signal detaljno - (modulacija, tajming, karakteristike kodiranja, kodovi ponavljanja itd., svi meni poznati protokoli su podržani, program može raditi sa nepoznatim protokolima.
- Grafički prikaz signala u realnom vremenu i prema podacima iz baze podataka
- Potražite sličan daljinski upravljač u bazi podataka
- Reproducirajte komandu daljinskog upravljača prema podacima iz baze preko COM porta

Općenito, svakako posjetite resurs - bit će zanimljivo.

(Posjećeno 20 417 puta, 9 posjeta danas)

Na internetu postoji mnogo članaka o tome kako napraviti vlastiti daljinski upravljač za TV na Arduinu, ali mi je bio potreban univerzalni daljinski upravljač za upravljanje televizorom i media playerom. Glavna prednost mog univerzalnog daljinskog upravljača je što su dugmad u aplikaciji za android telefon dvostruke namjene, ali usput pogledajte video.



Daljinski upravljač je veoma zgodan po tome što se na ekranu koriste skoro isti tasteri za upravljanje TV-om i plejerom. Jedna razlika je u tome što " AV"u načinu upravljanja TV-om, mijenja se na dugme" "(stop) kada pređete u režim kontrole plejera. Na slikama su prikazana dva režima, levo je režim kontrole TV-a, desno je režim kontrole plejera.

Pa, sada ću vam reći malo o stvaranju takvog daljinskog upravljača. Za uređaj sam koristio daljinski upravljač ERGO TV i DUNE HD TV101W daljinski upravljač za media player.

Za primanje podataka sa konzola koristio sam TSOP1138 infracrveni senzor (analog TSOP4838) na radnoj frekvenciji od 38 kHz i spojio ga na Arduino ploču na sljedeći način:

Ova skica će biti potrebna za određivanje kodiranja prijenosa podataka i čitanje koda dugmadi na daljinskom upravljaču.

Na skici, na liniji int RECV_PIN = 11; označavamo našu iglu na broju 4

Nakon popunjavanja skice, otvorite "port monitor" i pritiskom na dugmad na daljinskom pogledajte primljene podatke.

Na slici je prikazan primjer skeniranja dugmeta za napajanje sa daljinskog upravljača TV-a i daljinskog upravljača plejera. Sada kreiramo tabelu za kodove dugmadi.

Uradio sam to kao na slici iznad. Ispod natpisa TV Kodovi dugmadi za daljinski upravljač za TV; ispod natpisa Player- kodovi sa daljinskog upravljača media playera.

Sada isključujemo naš prijemnik infracrvenih signala sa Arduino ploče i na njega povezujemo HC-05 Bluetooth modul i infracrvenu LED diodu prema dijagramu na fotografiji.

Nakon toga idite direktno na skicu.

Skica

#include IRsend irsend; int y = 1; void setup () (Serial.begin (9600);) void loop () (if (Serial.available ()> 0) (int x = Serial.read (); if (x == 49) (y = 1; ) if (x == 50) (y = 2;) if (y == 1) (// kodovi gumba za daljinski upravljač za TV if (x == 97) (irsend.sendNEC (0x807F08F7, 32); kašnjenje (40 );) if (x == 98) (irsend.sendNEC (0x807FA857, 32); kašnjenje (40);) if (x == 99) (irsend.sendNEC (0x807F708F, 32); kašnjenje (40);) ako (x == 100) (irsend.sendNEC (0x807FF00F, 32); kašnjenje (40);) ako (x == 101) (irsend.sendNEC (0x807F30CF, 32); kašnjenje (40);) ako (x == 102) (irsend.sendNEC (0x807FB04F, 32); kašnjenje (40);) ako (x == 103) (irsend.sendNEC (0x807F9867, 32); kašnjenje (40);) ako (x == 104) (irsend .sendNEC (0x807F58A7, 32); kašnjenje (40);) ako (x == 105) (irsend.sendNEC (0x807FD827, 32); kašnjenje (40);) ako (x == 106) (irsend.sendNEC (0x807) , 32); kašnjenje (40);) if (x == 107) (irsend.sendNEC (0x807F48B7, 32); kašnjenje (40);) if (x == 108) (irsend.sendNEC (0x807FB847, 32); kašnjenje (40);) ako (x == 109) (irsend.sendNEC (0x807F6897, 32); kašnjenje (40); )) if (y == 2) (// kodovi dugmadi na daljinskom upravljaču sa media playera if (x == 97) (irsend.sendNEC (0xFDC23D, 32); kašnjenje (40);) if (x == 98) (irsend. sendNEC (0xFDE01F, 32); kašnjenje (40);) ako (x == 99) (irsend.sendNEC (0xFD18E7, 32); kašnjenje (40);) ako (x == 100) (irsend .sendNEC (0xFDE817, 32); kašnjenje (40);) ako (x == 101) (irsend.sendNEC (0xFDA857, 32); kašnjenje (40);) ako (x == 102) (irsend.sendNEC (0xFD6897) , 32); kašnjenje (40);) if (x == 103) (irsend.sendNEC (0xFDA857, 32); kašnjenje (40);) if (x == 104) (irsend.sendNEC (0xFD6897, 32); kašnjenje (40); ) if (x == 105) (irsend.sendNEC (0xFDE817, 32); kašnjenje (40);) if (x == 106) (irsend.sendNEC (0xFD18E7, 32); kašnjenje (40) ;) if (x == 107) (irsend.sendNEC (0xFD9867, 32); kašnjenje (40);) if (x == 108) (irsend.sendNEC (0xFD28D7, 32); kašnjenje (40);) if ( x == 109) (irsend.sendNEC (0xFD20DF, 32); kašnjenje (40);))))


U skici ćete morati urediti kodove dugmadi, odnosno u redovima:

If (x == 97) (irsend.sendNEC (0x807F08F7, 32); kašnjenje (40);
Promijenite vrijednost 807F08F7 u:

If (y == 1) (// kodovi dugmeta za daljinski upravljač ako (x == 97) (irsend.sendNEC (0x12345678, 32); kašnjenje (40);)
Gdje je 12345678 kod vašeg gumba.

Nakon što uredite skicu pomoću kodova dugmadi, otpremite skicu na Arduino ploču i nastavite s instalacijom aplikacije na telefon.

Uključujemo bluetooth u telefonu, tražimo naš uređaj, kreiramo par, a zatim pokrećemo aplikaciju Pult Na telefonu.

Kada ga pokrenemo, imaćemo ekran sa crvenom ikonicom bluetooth-a u donjem desnom uglu, što signalizira da nismo povezani sa našim uređajem.

Nakon toga kliknite na ovu ikonu. Trebali bismo imati prozor sa listom svih dostupnih bluetooth uređaja, gdje biramo naš uređaj za povezivanje.

Sada smo se vratili na glavni ekran i već možemo kontrolirati TV:

Za prelazak na način upravljanja potrebno je da pritisnemo dugme sa natpisom "igrač"... Kao što sam već rekao, naše dugme sa oznakom "AV" će se promeniti u " ":

Da biste prekinuli vezu sa našim uređajem, samo držite pritisnuto dugme "Power" nekoliko sekundi.

Pa, nekoliko fotografija mog gotovog uređaja.

Ispostavilo se, čini se, nije loše. Radujem se komentarima na članak.

U ovoj lekciji razmislite o povezivanju IR prijemnika na Arduino. Reći ćemo vam koju biblioteku treba koristiti za IR prijemnik, demonstrirati skicu za testiranje rada infracrvenog prijemnika sa daljinskog upravljača i analizirati komande u C++ za prijem signala. Odmah napominjemo da Arduino IR senzor nije prikladan za svaki daljinski upravljač, frekvencija signala može se razlikovati.

IR prijemnik. Princip rada

Infracrveni prijemnici danas se široko koriste u kućanskim aparatima zbog pristupačne cijene, jednostavnosti i lakoće upotrebe. Ovi uređaji vam omogućavaju da upravljate uređajima pomoću daljinskog upravljača i mogu se naći u gotovo svakoj vrsti tehnologije. Ali, uprkos tome, postepeno Bluetooth modul postaje sve popularniji.

Princip rada IR prijemnika. Obrada signala daljinskog upravljača

IR prijemnik na Arduinu je sposoban da prima i obrađuje infracrveni signal, u obliku impulsa određenog trajanja i frekvencije. Koristi se u proizvodnji senzora prepreka i daljinomjera za Arduino. Tipično, IR prijemnik ima tri noge i sastoji se od sljedećih elemenata: PIN fotodioda, pojačalo, propusni filter, detektor amplitude, integrirajući filter i izlazni tranzistor.

Pod uticajem infracrvenog zračenja u fotodiodi, u kojoj između str i n područja su stvorila dodatnu oblast poluprovodnika ( i-područje), počinje teći struja. Signal ide u pojačalo, a zatim u propusni filter, koji je podešen na fiksnu frekvenciju: 30; 33; 36; 38; 40 i 56 kHz i štiti prijemnik od smetnji. Svaki kućni aparat može uzrokovati smetnje.

Da bi Arduino IR prijemnik primio signal sa daljinskog upravljača, daljinski upravljač mora biti na istoj frekvenciji na koju je podešen filter u IR prijemniku. Stoga, nije svaki daljinski upravljač prikladan za posao. Uskladite IR prijemnik i IR predajnik sa istom frekvencijom. Nakon filtera, signal ide na detektor amplitude, integrirajući filter i izlazni tranzistor.

Kako spojiti IR prijemnik na Arduino

Kućišta infracrvenih prijemnika sadrže optički filter za zaštitu uređaja od vanjskih elektromagnetnih polja, izrađeni su posebnog oblika za fokusiranje primljenog zračenja na fotodiodu. Za spajanje IR prijemnika na Arduino UNO koriste se tri pina, koji su spojeni na - GND, 5V i A0. Savjetujemo vam da počnete koristiti 3,3 volta, kako ne biste spalili IR senzor prilikom postavljanja.

Za lekciju su nam potrebni sljedeći detalji:

  • Arduino Uno / Arduino Nano / Arduino Mega ploča;
  • ploča za kruh;
  • IR prijemnik;
  • daljinski upravljač;
  • 1 LED i 220 Ohm otpornik;
  • žice tata-tata i tata-mama.

Dijagram povezivanja IR prijemnika na analogni port Arduina

Povežite IR prijemnik kao što je prikazano gore i povežite LED diode na 12 i 13 pinova. Prije preuzimanja programa, morat ćete instalirati biblioteku IRremote.h, ako još nije instalirana. Ova biblioteka ne pripada standardnim bibliotekama Arduino IDE programskog okruženja. Možete preuzeti IRremote.h biblioteku i gotovu skicu u jednoj arhivi sa Google Drive-a koristeći link.

Skica za Arduino IR prijemnik:

#include // povezivanje biblioteke za IR prijemnik IRrecv irrecv (A0); // specificirajte pin na koji je spojen IR prijemnik decode_results rezultati; void setup () // postupak postavljanja (irrecv.enableIRIn (); // počinje primati infracrveni signal pinMode (13, OUTPUT); // pin 13 će biti izlaz pinMode (12, OUTPUT); // pin 12 će biti izlaz pinMode (A0, INPUT); // pin A0 će biti ulaz (engleski "intput") Serial .begin (9600); // povezivanje monitora porta) void loop () // petlja procedure (if (irrecv.decode (& rezultati)) // ako su podaci došli, izvršimo naredbe(Serial .println (results.value); // šalje primljene podatke na port // uključivanje i isključivanje LED dioda, ovisno o primljenom signalu if (results.value == 16754775) (digitalWrite (13, HIGH);) if (results.value == 16769055) (digitalWrite (13, LOW);) if (results.value == 16718055) (digitalWrite (digitalWrite) HIGH);) if (results.value == 16724175) (digitalWrite (12, LOW);) irrecv.resume (); // primamo sljedeći signal na IR prijemniku } }

Objašnjenja za kod:

  1. Biblioteka IRremote.h sadrži skup naredbi i omogućava vam da pojednostavite skicu;
  2. Naredba decode_results dodjeljuje naziv varijabli rezultata primljenim signalima s daljinskog upravljača.

IR senzor se može koristiti u mnogim uređajima na Arduino mikrokontroleru, uključujući daljinsko upravljanje servo pogonom na Arduinu sa IR prijemnika. Prilikom podešavanja trebali biste uključiti monitor Arduino IDE porta i saznati koji signal šalje ovo ili ono dugme na daljinskom upravljaču. Rezultirajuće kodove treba koristiti u skici nakon dvostrukog znaka jednakosti u uslovima if ().

Takođe često čitajte:

Top srodni članci