Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • OS
  • Arduino IR kontrola. Kontroliramo bilo koju opremu za daljinsko upravljanje kod kuće putem IR-a sa web stranice

Arduino IR kontrola. Kontroliramo bilo koju opremu za daljinsko upravljanje kod kuće putem IR-a sa web stranice

Obično daljinski upravljači daljinski upravljač TV, kablovska kutija, Blu-ray plejer i stereo sistemi ne samo da zauzimaju prostor, već i otežavaju upravljanje svim tim uređajima. Možda razmislite o kupovini univerzalni daljinski upravljač, ali su obično skupi i ponekad ne pružaju potreban nivo kontrole ili interfejsa. Ovaj projekat kreira uređaj koji može slati i primati kodove za daljinsko upravljanje sa standardne web stranice. Možete programirati potrebnu funkcionalnost sa bilo kojeg pametnog telefona ili računara!

Ovaj projekat koristi Arduino Yún modul, koji je posebno dizajniran za kontrolu uređaja koji podržavaju mrežna veza. Yún ima dva procesora, od kojih prvi pokreće operativni sistem Linux sistem i može se povezati na žičani ili bežičnu mrežu. Drugi procesor obavlja iste funkcije kao i procesor u Arduino Leonardo modulu. Stoga, pruža dobru kompatibilnost sa Arduino bibliotekama i hardverom.

Ovaj projekat koristi infracrvenu LED diodu i prijemnik za slanje i primanje signala daljinskog upravljanja. Infracrveno svjetlo je nevidljivo ljudskom oku, ali ga elektronski senzori lako detektuju. Za pouzdaniji prijenos signala, uređaji koriste modulirano infracrveno svjetlo, što eliminira mogućnost prijema lažnih signala. Infracrveni prijemnik je mali uređaj, koji prima infracrvene signale modulirane na određenoj frekvenciji, obično 38 kHz. Koristeći ovaj prijemnik, Arduino modul određuje bitove informacija koje se šalju sa kontrolne ploče.

Slanje komandi vašem multimedijalni centarće se vršiti korištenjem jednostavan web interfejs, koji radi lokalno na Yún modulu i dostupan je za većinu modernih web pretraživača. Web stranica olakšava rad menadžmenta infracrveni uređaj i omogućava vam da obrađujete čak nekoliko komandi istovremeno. Na primjer, pritiskom na dugme 'Pogledaj film' može se poslati signal za uključivanje TV-a, Blu-ray plejera i povezivanje na TV ulaz.

Ovaj projekt zahtijeva određeno iskustvo u pokretanju Arduino skica i korištenju alata komandne linije. Elektronske komponente projekat se može instalirati na matičnu ploču.

Korak #1: Povezivanje komponenti

  • Povežite infracrvenu LED diodu sa Yún modulom tako što ćete provući žicu od LED anode (dugi vod) do digitalni izlaz 13 Yún modula.
  • Koristeći otpornik od 100 oma, povežite LED katodu (kraći vod) na pin uzemljenja IR senzora (srednji vod senzora).
  • Povežite pin za otkrivanje infracrvenog senzora (krajnji lijevi pin kada se gleda s prednje strane senzora) na digitalni pin 11 Yún modula.
  • Povežite pin za uzemljenje infracrvenog senzora (srednji pin) na pin za uzemljenje Yún modula.
  • Konačno, povežite napojni vod senzora (krajnji desni pin kada se gleda s prednje strane senzora) na pin od 5 volti Yún modula.

Korak #2: Instalirajte ovisnosti o softveru

  • Kada se umetne MicroSD kartica u Yún modul, uključite Yún povezivanjem USB Micro B kabl za Yún modul i USB adapter ishrana.
  • Provjerite je li Yún postavljen i povezan na vašu bežičnu mrežu. Konfigurisanje Yún modula je naznačeno na ovoj stranici.
  • Povežite se na komandna linija Yún koristeći SSH. Ovaj proces opisano na ovoj stranici.
  • Kada se povežete na komandnu liniju, vidjet ćete verziju firmvera. Ovaj projekat testirano sa BusyBox v1.19.4 verzijom od 2014-04-10 i novijim. Ako koristite više stara verzija, zatim slijedite sljedeća uputstva.
  • Na komandnoj liniji pokrenite sljedeće naredbe da ažurirate upravitelja paketa:
opkg ažuriranje
  • Zatim instalirajte PIP, Python menadžer paketa:
opkg install distribuira && opkg install python-openssl && opkg install python-expat && easy_install pip

Ovaj proces traje nekoliko minuta. Možda ćete vidjeti neke poruke upozorenja, ali ih možete zanemariti.

  • Kreirajte direktorij na svojoj SD kartici za spremanje Python paketa:
mkdir /mnt/sda1/python-packages
  • Instalirajte Flask Python framework:
pip install --target /mnt/sda1/python-packages flask

Možda ćete vidjeti neke poruke upozorenja, ali ih možete zanemariti.

  • Ažurirajte putanju za pretragu za datoteke Python paketa:
echo "export PYTHONPATH=/mnt/sda1/python-packages" >> /etc/profile
  • Kreirajte direktorije gdje je okruženje Arduino IDEće učitati fajlove web servera:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Ponovo pokrenite Arduino Yún da ažurirate putanju pretraživanja Python datoteka.

  • Preuzmite IR biblioteku. (Arduino IRremote, biblioteka koju je kreirao Ken Shirriff.)
    Raspakujte arhivu, preimenujte fasciklu sa Arduino_ IRremote- majstor on Arduino_ IRremote, i uvezite Arduino_IRremote folder kao biblioteku u okruženje Arduino razvoj IDE. detaljne informacije naznačeno
  • Otpremite svoju skicu Smart Remote Kontrolirajte Arduino iz zip arhiva odavde.
    Raspakujte arhivu i prevucite fasciklu SmartRemoteControl u fasciklu sa Arduino skica. Otvorite skicu u Arduino IDE.
  • Sastavite skicu i otpremite je na Yún modul putem WiFi-a odabirom odgovarajuće opcije na listi Arduino Yún portova. Obavezno otpremite skicu preko WiFi-a tako da se potrebne python skripte kopiraju u Yún modul! Nakon preuzimanja skice, otvorite serijski monitor u Arduino IDE (ovo može potrajati nekoliko minuta).
  • Usmjerite daljinski upravljač na infracrveni senzor i pritisnite nekoliko dugmadi na daljinskom. Trebali biste vidjeti kod na serijskom monitoru. Ako kod nije prikazan, provjerite spojeve kruga senzora.

Korak #4: Konfigurirajte kodove za daljinsko upravljanje

  • Sada možete konfigurirati aktivnosti i kodove daljinskog upravljanja povezujući ih s njima XML fajl konfiguracije. Koristeći uređivač teksta, otvorite datoteku aktivnosti. xml u poddirektorijumu www skicirajte foldere na vašem računaru. (Iz Arduino IDE, kliknite na meni Sketch i odaberite "Prikaži mapu skica").
  • Razmotrite format primjera operacija u datoteci. Svaki operativni blok definira naziv atributa koji će se pojaviti kao gumb na web stranici daljinskog upravljača. Unutar svake operacije, kodni blok sadrži niz infracrvenih kodova koji se moraju izvršiti. U primjeru, Sony A90 komanda (uključivanje/isključivanje) prvo se izvršava za uključivanje TV-a, zatim Panasonic naredba (uključivanje/isključivanje) za uključivanje Blu-ray playera. Svaki kod ima parametar stringa koji je direktni izlaz podataka otkrivenog udaljenog koda iz Arduino skice.
  • Dodajte svoje komande u datoteku kopiranjem primjera i promjenom naziva i kodova. Kada je daljinski upravljač usmjeren na infracrveni senzor, pritisnite dugmad i pažljivo zapišite određeni niz infracrvenih kodova. Kopirajte sekvencu u konfiguraciju koda operacije.
  • Čim primite potreban fajl konfiguraciju, sačuvajte datoteku i ponovo učitajte skicu u Yún modul putem WiFi mreže. Da biste ažurirali konfiguracijsku datoteku, uredite datoteku i prenesite skicu preko WiFi-a koristeći Arduino IDE.

Korak #5: Pokretanje servera sa web interfejsom

  • Da biste pokrenuli server, povežite Yún modul preko SSH-a. Da pokrenete server, pokrenite sljedeću naredbu:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Kada se server uspješno pokrene, vidjet ćete poruku:
* Pokreće se na http://0.0.0.0:5000/ * Ponovo se pokreće sa reloaderom
  • Ako vidite grešku, provjerite sve ovisnosti instalirane u prethodnim koracima.
  • U vašem web pretraživaču unesite http://arduino.local:5000/. Ako pretraživač ne podržava mDNS URL (kao što su Windows, Android i neki Linux distribucije) unesite http:// arduino_ ip_ adresa:5000/, gdje arduino_ ip_ adresa je IP adresa vašeg Arduino Yún-a. IP adresa se nalazi na dnu Arduino IDE kada povezujete Yún (slika 2).
  • Kada se stranica učita, vidjet ćete listu konfiguriranih radnji gumba. Ako vidite grešku, provjerite da li su ovisnosti ispravno instalirane, da je skica učitana i da server radi bez grešaka.
  • Da zaustavite server, kliknite kombinacija Ctrl-C u komandnom prozoru u kojem je server pokrenut.

Korak #6: Korištenje web sučelja

  • Za upotrebu pametni daljinski upravljač usmjerite LED u elektronskih uređaja i kliknite na jednu od aktivnim dugmadima. Ako se traženi uređaj ne uključi, pokušajte da pomaknete LED diodu bliže potrebnim uređajima. Raspon LED dioda je mali, oko 6 stopa. Potrebno je dodati tranzistor za povećanje dometa LED diode. Date su detaljne informacije Evo.
  • Takođe možete testirati infracrvene kodove tako što ćete otvoriti Yún Serial Monitor u Arduino IDE i poslati infracrveni kod kao komandu. Na primjer, slanje koda "SONY: C A90" (bez navodnika) će uzrokovati da hardver pošalje komandu uključiti Sony A90. ("C" predstavlja bit dužine komande, 12, pretvoren u heksadecimalni).
  • Za automatski start server prilikom učitavanja, uredite datoteku / itd/ rc. lokalni u Yún modulu (koristeći nano ili vi editor) i dodajte sljedeći red prije sa linijom "izlaz 0" na kraju:
PYTHONPATH=/mnt/sda1/python-packages python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Za prepoznavanje govora, pokrenite Google pretraživač Chrome. Kliknite na dugme "Govori" i Chrome pretraživačće tražiti dozvolu za korištenje mikrofona. Zatim izgovorite naziv aktivne operacije i pričekajte dok se ne prepozna. Na primjer, da biste izvršili operaciju filma "Filmovi", pritisnite dugme "Govori" i izgovorite riječ "Filmovi" u mikrofon. Fraze kao što su "Play Movies" ili "Run Movies" nisu podržane - prepoznaje se samo jasan naziv aktivne operacije.

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



Daljinski upravljač je vrlo zgodan po tome što se gotovo isti gumbi na ekranu koriste za upravljanje TV-om i plejerom. Jedna razlika je u tome što " AV"u načinu rada TV kontrole mijenja se u dugme" " (zaustavljanje) pri prelasku na mod kontrole plejera. Na slikama su prikazana dva režima, sa leve strane je režim kontrole TV-a, sa desne strane je režim kontrole plejera.

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

Za primanje podataka sa daljinskih upravljača koristio sam infracrveni senzor TSOP1138 (analogno TSOP4838) na radnoj frekvenciji od 38 kHz i spojio ga na Arduino ploču prema šemi:

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

Na skici u liniji int RECV_PIN = 11; naznačite naš pin broj 4

Nakon učitavanja skice, otvorite “monitor porta” i pritiskom na dugmad na daljinskom upravljaču 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.

Dobio sam kao na slici iznad. Ispod natpisa TV Kodovi dugmeta daljinskog upravljača za TV; ispod natpisa Player- kodovi s daljinskog upravljača media playera.

Sada odspojimo naš prijemnik infracrvenog signala sa Arduino ploče i spojimo ga na njega Bluetooth modul HC-05 i infracrvena LED prema dijagramu na fotografiji.

Nakon toga prelazimo 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); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); kašnjenje (40); ) ako (x == 104) ( irsend .sendNEC(0x807F58A7, 32); kašnjenje(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); kašnjenje (40); ) if (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); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); kašnjenje(40); ) ) if (y == 2) ( //kodovi dugmadi na daljinskom upravljaču medija plejera if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); kašnjenje(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); kašnjenje (40); ) if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); kašnjenje (40); ) if (x == 100) ( irsend.sendNEC (0xFDE817, 32); kašnjenje (40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); kašnjenje (40); ) if (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 gumba za daljinski upravljač za TV if (x == 97) ( irsend.sendNEC(0x12345678, 32); kašnjenje(40); )
Gdje je 12345678 kod za vaše dugme.

Nakon što uredite skicu pomoću kodova dugmadi, otpremite skicu na Arduino ploča i nastavite sa instaliranjem aplikacije na svoj telefon.

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

Prilikom pokretanja imat ćemo ekran sa crvenom bojom bluetooth ikona u donjem desnom uglu, što znači da nismo povezani sa našim uređajem.

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

Sada smo se ponovo vratili glavni ekran i već možemo kontrolisati TV:

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

Da biste prekinuli vezu s našim uređajem, jednostavno držite pritisnutu tipku "Power" nekoliko sekundi.

Pa, nekoliko fotografija mog gotovog uređaja.

Ispalo je sasvim dobro, čini se. Čekam komentare na članak.

U ovoj lekciji ćemo pogledati povezivanje IR prijemnika na Arduino. Reći ćemo vam koju biblioteku treba koristiti za IR prijemnik i demonstrirati skicu za testiranje rada infracrveni prijemnik sa daljinskog upravljača i analizirajte komande u C++ da biste primili signal. Odmah napominjemo da Arduino IR senzor nije prikladan za svaki daljinski upravljač; frekvencija signala može se razlikovati.

IR prijemnik. Princip rada

Prijemnici infracrvenog zračenja sada se široko koriste kućanskih aparata, Hvala za pristupačna cijena, jednostavnost i lakoća upotrebe. Ovi uređaji vam omogućavaju upravljanje uređajima pomoću daljinskog upravljača i mogu se naći u gotovo svakoj vrsti opreme. Ali uprkos tome, Bluetooth modul postepeno dobija sve veću popularnost.

Princip rada IR prijemnika. Obrada signala sa daljinskog upravljača

IR prijemnik na Arduinu je sposoban za primanje i obradu infracrveni signal, u obliku impulsa određenog trajanja i frekvencije. Koristi se u proizvodnji senzora prepreka i daljinomjera za Arduino. Obično IR prijemnik ima tri noge i sastoji se od sledeće elemente: PIN fotodioda, pojačalo, propusni filter, detektor amplitude, integrirajući filter i izlazni tranzistor.

Pod uticajem infracrvenog zračenja u fotodiodi, koja ima između str I n regioni su stvorili dodatnu oblast poluprovodnika ( i-regija), struja počinje da teče. Signal ide u pojačalo, a zatim u propusni filter, koji je podešen na fiksnu frekvenciju: 30; 33; 36; 38; 40 i 56 kiloherca i štiti prijemnik od smetnji. Smetnje može izazvati bilo koji kućni aparat.

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, neće svaki daljinski upravljač raditi. Trebali biste odabrati IR prijemnik i IR predajnik sa istom frekvencijom. Nakon filtera, signal ide do detektora amplitude koji integrira 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đena su od posebnog oblika za fokusiranje primljenog zračenja na fotodiodu. Za spajanje IR prijemnika na Arduino UNO koriste se tri noge koje su spojene na - GND, 5V i A0. Preporučujemo korištenje 3,3 volta za početak kako ne biste spalili IR senzor tokom podešavanja.

Za ovu lekciju trebat će nam 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;
  • muško-muške i muško-ženske žice.

Dijagram povezivanja IR prijemnika na Arduino analogni port

Povežite IR prijemnik prema dijagramu prikazanom iznad i povežite LED diode na pinove 12 i 13. Prije preuzimanja programa, morat ćete instalirati biblioteku IRremote.h, ako već nije instalirana. Ova biblioteka ne odnosi se na standardne biblioteke okruženja Arduino programiranje IDE. Možete preuzeti biblioteku IRremote.h i gotovu skicu u jednoj arhivi Google Drive veza .

Skica za Arduino IR prijemnik:

#include // povezivanje biblioteke za IR prijemnik IRrecv irrecv(A0); // označava pin na koji je spojen IR prijemnik decode_results rezultati; void setup () // postavljanje procedure ( irrecv.enableIRIn (); // počinje primati infracrveni signal pinMode(13, OUTPUT); // pin 13 će biti izlaz pinMode(12, IZLAZ); // pin 12 će biti izlaz pinMode(A0, INPUT); // pin A0 će biti ulaz (eng. “intput”) Serial.begin(9600); // povezivanje monitora porta) void loop () // petlja procedure ( if (irrecv.decode (&results)) // ako su podaci stigli, 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 (12 VISOKO); ) if (results.value == 16724175) ( digitalWrite (12, LOW); ) irrecv.resume (); // prihvatiti sledeći signal na IC 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 rezultate imena varijable 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 postavljanja, trebali biste uključiti monitor Arduino port IDE i saznajte koji signal šalje ovo ili ono dugme na daljinskom upravljaču. Rezultirajuće kodove treba koristiti u skici nakon znaka dvostruke jednakosti u uslovima if().

Takođe često čitajte:

Infracrveni daljinski upravljač je jedan od najpopularnijih jednostavne načine interakcija sa elektronskim uređajima. Dakle, u gotovo svakom domu postoji nekoliko takvih uređaja: TV, muzički centar, video plejer, klima. Ali najviše zanimljiva aplikacija infracrveni daljinski upravljač - daljinsko upravljanje robotom. Zapravo, u ovoj lekciji ćemo pokušati implementirati ovu metodu upravljanja koristeći popularni Arduino Uno kontroler.

1. IR daljinski upravljač

Šta je potrebno da se robot nauči da sluša infracrveni (IR) daljinski upravljač? Prvo nam je potreban sam daljinski upravljač. Možete koristiti običan daljinski upravljač za TV ili možete kupiti minijaturni daljinski upravljač za auto radio. Ove vrste daljinskih upravljača se često koriste za upravljanje robotima.

Ovaj daljinski upravljač ima 10 digitalna dugmad i 11 dugmadi za upravljanje muzikom: jačina zvuka, premotavanje unazad, reprodukcija, zaustavljanje itd. Više nego dovoljno za naše potrebe.

2. IR senzor

Drugo, za prijem signala sa daljinskog upravljača potreban nam je poseban IR senzor. Općenito, infracrveno zračenje možemo otkriti konvencionalnom fotodiodom/fototranzistorom, ali za razliku od njega, naš IR senzor percipira infracrveni signal samo na frekvenciji od 38 kHz (ponekad 40 kHz). Upravo ovo svojstvo omogućava senzoru da ignoriše mnogo stranog svetlosnog šuma od lampi i sunca.

Za ovaj tutorijal ćemo koristiti popularni IR senzor VS1838B, koji ima sledeće karakteristike:

  • noseća frekvencija: 38 kHz;
  • napon napajanja: 2,7 - 5,5 V;
  • strujna potrošnja: 50 µA.

Mogu se koristiti i drugi senzori, na primjer: TSOP4838, TSOP1736, SFH506.

3. Povezivanje

Senzor ima tri izvoda (tri kraka). Ako senzor pogledate sa strane prijemnika IR signala, kao što je prikazano na slici,

  • tada će na lijevoj strani biti izlaz za kontroler,
  • u sredini - negativni kontakt napajanja (uzemljenje),
  • a desno - pozitivni kontakt za napajanje (2,7 - 5,5V).

Šematski dijagram povezivanja

Izgled rasporeda

4. Program

Nakon povezivanja IR senzora, napisat ćemo program za Arduino Uno. Za ovo ćemo koristiti standardna biblioteka IRremote, koji je posebno dizajniran da pojednostavi rad sa prijemom i odašiljanjem IC signala. Koristeći ovu biblioteku, primat ćemo komande s daljinskog upravljača, a za početak jednostavno ih prikazati u prozoru monitora serijskog porta. Ovaj program će nam biti od koristi kako bismo razumjeli koji kod daje svako dugme.

#include "IRremote.h" IRrecv irrecv(2); // označava pin na koji je prijemnik povezan decode_results results; void setup() ( Serial.begin(9600); // postavlja brzinu COM porta irrecv.enableIRIn(); // počinje primanje ) void loop() ( if (irrecv.decode(&results)) ( // if podaci su stigli Serial .println(results.value, HEX); // ispiši podatke irrecv.resume(); // prihvati sljedeću naredbu ) )

Učitajte program na Arduino. Nakon toga pokušavamo primati komande sa daljinskog upravljača. Otvorite monitor serijskog porta (Ctrl+Shift+M), uzmite daljinski upravljač i usmjerite ga prema senzoru. Pritiskom na različite tipke, u prozoru monitora promatramo kodove koji odgovaraju ovim dugmadima.

Problem pri učitavanju programa

U nekim slučajevima, kada pokušavate učitati program u kontroler, može se pojaviti greška:

TDK2 nije deklarisan u svom opsegu

Da biste to popravili, samo izbrišite dvije datoteke iz foldera biblioteke. Idemo do istraživača. Idite u fasciklu u kojoj je instalirana Arduino IDE aplikacija (najverovatnije "C:\Program Files (x86)\Arduino"). Zatim u folder biblioteke:

…\Arduino\biblioteke\RobotIRremote

I izbrišite fajlove: IRremoteTools.cpp I IRremoteTools.h. Zatim ponovo pokrećemo Arduino IDE i pokušavamo ponovo učitati program na kontroler.

5. Kontrolirajte LED pomoću IR daljinskog upravljača

Sada kada znamo koji kodovi odgovaraju tipkama daljinskog upravljača, pokušavamo programirati kontroler da se uključi i isključi LED kada se pritisnu tipke za jačinu zvuka. Za to su nam potrebni kodovi (mogu se razlikovati ovisno o daljinskom upravljaču):

  • FFA857 - povećanje jačine zvuka;
  • FFE01F - smanjenje jačine zvuka.

Kao LED, koristimo ugrađenu LED diodu na pinu br. 13, tako da će dijagram povezivanja ostati isti. Dakle, program:

#include "IRremote.h" IRrecv irrecv(2); // označava pin na koji je prijemnik povezan decode_results results; void setup() ( irrecv.enableIRIn(); // počinje primati ) void loop() ( if (irrecv.decode(&results)) ( // ako su podaci stigli prekidač (results.value) (slučaj 0xFFA857: digitalWrite( 13, HIGH); break; case 0xFFE01F: digitalWrite(13, LOW); break; ) irrecv.resume(); // prihvati sljedeću naredbu ) )

Učitavamo ga na Arduino i testiramo. Kliknite vol+— LED svijetli. Kliknite vol-- izlazi. Sada, znajući kako sve to funkcionira, umjesto LED-a možete kontrolirati robotske motore ili druge mikroelektronske uređaje domaće izrade!

IR prijemnik i infracrveni daljinski upravljač daljinsko upravljanje - najčešći i najjednostavniji način upravljanja elektronska oprema. Spektar infracrvenog zračenja nije vidljiv ljudskom oku, ali ga savršeno primaju IR prijemnici koji su ugrađeni u elektronskih uređaja. Arduino moduli za upravljanje se koriste daljinski upravljači razne tehnike u vidokrugu.

Š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 području infracrvenog zračenja, optička svojstva se mogu promijeniti razni materijali. Neka stakla, na primjer, postaju neprozirna za IC zrake, dok je parafin, naprotiv, providan u IC spektru.

Zračenje se snima posebnim fotografskim materijalima na osnovu kojih se izrađuju prijemnici. Osim zagrijanih tijela (Sunce, žarulje sa žarnom niti ili svijeće), izvor infracrvenog zračenja mogu biti čvrsti uređaji - IR LED, laseri. Zračenje u infracrvenom opsegu ima brojne karakteristike koje ih čine pogodnim za upotrebu u daljinskim upravljačima:

  • Solid state emiteri (IR LED) su jeftini i kompaktni.
  • Infracrvene zrake ljudsko oko ne percipira niti detektuje.
  • IR prijemnici su takođe jeftini i male veličine.
  • Mala smetnja jer su predajnik i prijemnik podešeni na istu frekvenciju.
  • Odsutan Negativan uticaj na ljudsko zdravlje.
  • Visoka refleksija od većine materijala.
  • IR emiteri ne utiču na rad drugih uređaja.

Daljinski upravljač radi na sljedeći način. Kada pritisnete dugme, signal se kodira u infracrvenom svetlu, prijemnik ga prima i izvršava potrebnu radnju. Informacije su kodirane kao logički niz impulsnih paketa određene frekvencije. Prijemnik prima ovu sekvencu i demodulira podatke. Za primanje signala koristi se mikro krug koji sadrži fotodetektor (fotodiodu), pojačala, propusni filter, demodulator (detektor koji vam omogućava da izolirate omotnicu signala) i izlazni tranzistor. Takođe 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: kućanskih aparata, u industrijskoj opremi, računarima, optičkim linijama.

IR prijemnik Arduino

Za čitanje IR signala trebat će vam sama Arduino ploča, matična ploča, prijemnik IR signala i džamperi. Postoji veliki izbor različitih prijemnika, ali je bolje koristiti TSOP312 ili druge prikladne za Arduino. Podaci sa daljinskog upravljača na prijemnik mogu se prenijeti putem RC5 ili NEC protokola.

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

Za praktičnost, možete koristiti gotove module IR prijemnika.

Povezivanje IR prijemnika na Arduino

Izlazi IR prijemnika su povezani na Arduino na GND, 5V 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 svojom skicom, morate dodati biblioteke header fajl#include .

Za čitanje informacija koristite primjer IRrecvDumpV2 iz biblioteke. Ako daljinski upravljač već postoji na listi prepoznatih, skeniranje nije potrebno. Za čitanje kodova morate pokrenuti ARduino okruženje IDE i otvorite IRrecvDemo primjer iz IRremote-a.

Postoji druga biblioteka za rad sa IR signalima - ovo je IRLib. Po funkcionalnosti je sličan prethodnom. U poređenju sa IRremote, 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.

Operator decode_results je potreban da se primljenom signalu dodijeli naziv varijable rezultata.

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

Zatim, nakon učitavanja programa, morate otvoriti serijski monitor i pritisnuti dugmad na daljinskom upravljaču. će se pojaviti na ekranu razni kodovi. Potrebno je da zabilježite kojem dugmetu odgovara primljeni kod. Pogodnije je dobijene podatke zapisati u tabelu. Ovaj kod se zatim može upisati u program kako bi se uređaj mogao kontrolirati. 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 prikaže 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 na mikrokontroler.

Zaključak

Korištenje Arduino ir daljinskog upravljača olakšava život korisniku. Može služiti kao daljinski upravljač mobilni telefon, tablet ili kompjuter - sve što vam treba je specijalni softver. Koristeći Arduino možete centralizirati svu kontrolu. S jednim dugmetom na daljinskom upravljaču možete izvršiti nekoliko radnji odjednom - na primjer, uključite TV i Blu-Ray istovremeno.

Najbolji članci na ovu temu