Cum se configurează smartphone-uri și PC-uri. Portal de informare
  • Acasă
  • Recenzii
  • Citiți codurile telecomenzii arduino. Telecomanda universala pe Arduino

Citiți codurile telecomenzii arduino. Telecomanda universala pe Arduino

Receptor IR și telecomandă cu infraroșu - cel mai comun și mai ușor mod de control echipamente electronice. Spectrul de radiații infraroșii nu este vizibil pentru ochiul uman, dar este recepționat perfect de receptoarele IR care sunt încorporate în dispozitivele electronice. module Arduino telecomanda sunt folosite pentru control diverse tehniciîn linia de vedere.

Utilizarea pe scară largă a emițătorilor IR a devenit posibilă datorită costului redus, simplității și ușurinței de utilizare. Radiația IR se află în intervalul de la 750 la 1000 de microni - aceasta este cea mai apropiată parte a spectrului de lumina vizibilă. În regiunea radiației infraroșii, proprietățile optice se pot schimba diverse materiale. Unele ochelari, de exemplu, devin opace la razele IR, în timp ce parafina, dimpotrivă, este transparentă în spectrul IR.

Radiația este înregistrată folosind materiale fotografice speciale, pe baza cărora sunt realizate receptoarele. Pe lângă corpurile încălzite (Soarele, lămpile incandescente sau lumânările), sursa de radiație infraroșie poate fi dispozitive cu stare solidă - LED-uri IR, lasere. Radiația în domeniul infraroșu are o serie de caracteristici care le fac ușor de utilizat în telecomenzi:

  • Emițătoarele în stare solidă (LED-uri IR) sunt ieftine și compacte.
  • Razele infraroșii nu sunt percepute sau detectate de ochiul uman.
  • Receptoarele IR sunt, de asemenea, ieftine și de dimensiuni mici.
  • Interferență scăzută, deoarece emițătorul și receptorul sunt reglate pe aceeași frecvență.
  • Absent impact negativ asupra sănătății umane.
  • Reflectanță ridicată din majoritatea materialelor.
  • Emițătorii IR nu afectează funcționarea altor dispozitive.

Telecomanda funcționează după cum urmează. Când apăsați butonul, semnalul este codificat în lumină infraroșie, receptorul îl primește și efectuează acțiunea necesară. Informațiile sunt codificate ca o secvență logică de pachete de impulsuri cu o anumită frecvență. Receptorul primește această secvență și demodulează datele. Pentru a primi un semnal, se folosește un microcircuit care conține un fotodetector (fotodiodă), amplificatoare, un filtru trece-bandă, un demodulator (un detector care vă permite să izolați anvelopa semnalului) și un tranzistor de ieșire. Are și filtre – electrice și optice. Astfel de dispozitive funcționează la o distanță de până la 40 de metri. Metoda IR de transmitere a datelor există în multe dispozitive: aparate electrocasnice, în echipamente industriale, calculatoare, linii de fibră optică.

Receptor IR Arduino

Pentru a citi semnalul IR veți avea nevoie de placa Arduino în sine, o placă de breadboard, un receptor de semnal IR și jumperi. Există un număr mare de receptoare diferite, dar este mai bine să utilizați TSOP312 sau altele potrivite pentru Arduino. Datele de la telecomandă la receptor pot fi transmise prin protocolul RC5 sau NEC.

Pentru a determina ce picior îi aparține, trebuie să vă uitați la senzorul din partea receptorului. Apoi pe receptor contactul central este împământat, în stânga este ieșirea către microcontroler, în dreapta este puterea.

Pentru comoditate, puteți utiliza module de receptor IR gata făcute.

Conectarea receptorului IR la Arduino

Ieșirile receptorului IR sunt conectate la Arduino la GND, 5V și intrare digitală. Diagrama pentru conectarea senzorului la al 11-lea pin digital este prezentată mai jos.

Așa arată diagrama cu modulul receptor infrarosu:


Biblioteci pentru lucrul cu IR

Pentru a lucra cu dispozitive IR, puteți utiliza biblioteca IRremote, care simplifică construcția sistemelor de control. Puteți descărca biblioteca. După descărcare, copiați fișierele în folderul \arduino\libraries. Pentru a vă conecta la schița dvs., trebuie să adăugați biblioteci fișier antet#include .

Pentru a citi informații, utilizați exemplul IRrecvDumpV2 din bibliotecă. Dacă telecomanda există deja în lista celor recunoscute, atunci scanarea nu este necesară. Pentru a citi codurile trebuie să rulați Mediul ARduino IDE și deschideți exemplul IRrecvDemo de la IRremote.

Există o a doua bibliotecă pentru lucrul cu semnale IR - aceasta este IRLib. Funcționalitatea este similară cu cea anterioară. În comparație cu IRremote, IRLib are un exemplu pentru determinarea frecvenței unui senzor IR. Dar prima bibliotecă este mai simplă și mai convenabil de utilizat.

După încărcarea bibliotecii, puteți începe să citiți semnalele primite. Următorul cod este folosit pentru aceasta.

Operatorul decode_results este necesar pentru a atribui rezultatele numelui variabilei semnalului primit.

În cod trebuie să rescrieți „HEX” în „DEC”.

Apoi, după încărcarea programului, trebuie să deschideți monitorul serial și să apăsați butoanele de pe telecomandă. va apărea pe ecran diverse coduri. Trebuie să faceți o notă care să indice ce buton îi corespunde codul primit. Este mai convenabil să înregistrați datele obținute într-un tabel. Acest cod poate fi apoi scris în program, astfel încât dispozitivul să poată fi controlat. Codurile sunt scrise în memoria plăcii Arduino EEPROM însăși, ceea ce este foarte convenabil, deoarece nu trebuie să programați butoanele de fiecare dată când porniți telecomanda.

Se întâmplă ca la încărcarea unui program să fie afișată eroarea „TDK2 nu a fost declarat în domeniul său”. Pentru a o remedia, trebuie să mergeți la Explorer, să mergeți la folderul în care este instalată aplicația Arduino IDEși ștergeți fișierele IRremoteTools.cpp și IRremoteTools.h. După aceasta, trebuie să reîncărcați programul pe microcontroler.

Concluzie

Utilizarea telecomenzii Arduino ir face viața mai ușoară pentru utilizator. Poate acționa ca o telecomandă telefon mobil, tabletă sau computer - tot ce aveți nevoie este software special. Folosind Arduino, puteți centraliza tot controlul. Cu un singur buton de pe telecomandă puteți efectua mai multe acțiuni simultan - de exemplu, porniți televizorul și Blu-Ray în același timp.

Atunci când creați dispozitive pentru lucrul cu telecomenzi IR, este foarte necesar un instrument cu care puteți înregistra și analiza semnale IR. Un astfel de instrument, în mod ideal, ar putea fi un osciloscop digital sau un analizor logic, dar nu toată lumea are aceste dispozitive, iar cumpărarea lor intenționată este costisitoare. Cum poate fi asta? Există o soluție foarte simplă - o placă de sunet pentru computer! Vom înregistra semnalul folosindu-l.

Pe lângă placa de sunet (care, sper, se află în computerul dvs.), vom avea nevoie de un receptor de semnal IR. Ar fi mai corect să asamblați un circuit de recepție cu drepturi depline cu TSOP, dar o vom face cât mai simplu posibil - vom lua cel mai obișnuit LED IR (același care se află în telecomandă) ca receptor IR. Puteți, desigur, să luați o fotodiodă IR, dar un LED IR este mai ușor de obținut. LED-ul IR trebuie conectat direct la intrarea microfonului plăcii de sunet. Pentru a face acest lucru, aveți nevoie de o mufă de 3,5 mm și de o bucată de sârmă ecranată (am tăiat cablul cu conectorul de la un microfon vechi care nu funcționează).

LED-ul este conectat după cum urmează:

Ca rezultat, obținem următorul dispozitiv:

Introduceți mufa în intrarea microfonului (it culoare roz). În setările plăcii de sunet, selectați microfonul ca dispozitiv de intrare, rotiți controlul câștigului la maxim și bifați caseta de câștig suplimentar. Pentru a verifica, îndreptați telecomanda către receptorul LED (trebuie să o apropiați cât mai aproape de telecomandă), apăsați tasta - clicuri ar trebui să se audă în difuzoare.

Dacă, dintr-un motiv oarecare, nu aveți o intrare pentru microfon (de exemplu, pe un laptop), conectați receptorul la intrare de linie placa de sunet - totul va funcționa la fel, doar amplitudinea semnalului înregistrat va deveni mult mai mică.


Acum avem nevoie de un program pentru a înregistra sunetul.
Orice program pe care îl aveți va fi potrivit pentru aceste scopuri. Dacă nu aveți un program preferat pentru lucrul cu sunetul, vă sugerez un mic și program gratuit— Wavosaur (http://www.wavosaur.com/) Programul funcționează fără instalare și are dimensiuni mici- cat imi place :).

Program pentru lucrul cu sunetul.

După pornirea programului, porniți indicatorul de nivel (rigla din partea dreaptă a ferestrei) și verificați răspunsul la semnalele telecomenzii. În mod implicit, totul ar trebui să funcționeze - rigla va ieși din scară de la semnalele primite (dacă nu există nicio reacție, mergeți la setări Configurare audio/Intrare audio). Apoi, apăsați pictograma de înregistrare, aduceți telecomanda cât mai aproape de LED-ul de recepție, apăsați butonul telecomenzii și mențineți apăsat timp de câteva secunde. Opriți înregistrarea - Gata! În fereastră vom vedea o scanare a semnalului IR primit. Ceea ce este interesant este că semnalul va fi deja detectat - nu vom vedea frecvența purtătoare, ci doar semnalul util. Acest lucru se întâmplă deoarece capacitățile de intrare ale microfonului nu au timp să se reîncarce.

Semnalul primit poate fi scalat după timp, amplitudine și, ceea ce este foarte convenabil, prin evidențierea unei anumite perioade, puteți vedea imediat durata acestuia. Semnalul primit poate fi salvat (de preferință în format wav - nu va exista distorsiune) sau exportat în MP3, text, fișier binar(lucru util!).

De exemplu, semnal de la telecomanda televizorului meu (format NEC):

Toate intervalele de timp sunt vizibile din imagine, puteți chiar să calculați adresa telecomenzii și codul de comandă al butonului - totul este clar și de înțeles.

P.S.
Mare cerere! Dacă asamblați un astfel de receptor, salvați pachetele telecomenzilor și trimiteți-le mie prin e-mail (în fila „despre proiect”) - acest lucru va ajuta foarte mult la îmbunătățirea algoritmului receptorului universal. În numele fișierului, indicați de la ce provine telecomanda și producătorul (de exemplu: tv-sony.wav).


Mai multe despre lucrul cu telecomenzile IR!
Am propus cea mai simplă variantă de a „simți” semnalul de la telecomanda IR, dar există multe soluții care pot face mult mai mult! Primiți un semnal IR, analizați, salvați, redați, programați telecomenzile, controlați computerul... Această secțiune va conține link-uri către astfel de soluții.

1. DvzRcEditor
Programul va merge primul DvzRcEditor, pe care l-am aruncat mobi. Programul a fost realizat de cineva Dvz 2010(din pacate nu exista coordonate pentru el, poate stie cineva?).


- Un program pentru analiza și repetarea semnalelor IR.
Programul vă permite atât să înregistrați, cât și să redați mesaje IR folosind o intrare de microfon și o ieșire audio. Există instrumente pentru analiza mesajelor IR și crearea unei baze de date cu mesaje de telecomandă (există o mică bază de date pentru diverse telecomenzi). Soluție interesantă este suport pentru propria telecomandă realizată pe ATtiny2313.


Telecomanda are 7 taste cu ajutorul cărora poți seta orice comenzi din cele analizate, iar programul în sine poate înregistra semnalele pentru aceste butoane în microcontroler (cu condiția să flashezi acolo bootloader-ul pentru prima dată).

Totul este simplu și clar - mi-a plăcut!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
Nici măcar nu este un program - este tot internetul resursă dedicată telecomenzilor IR. Conține mult informatii utile, hardware și soluții software pentru toate ocaziile. Iată ce scriu autorii despre SlyControl:
- Asta program universal pentru a controla orice folosind un computer.

Pentru ce poate fi folosit:
— controlul oricăror programe de la orice telecomandă (telecomandă), de la o tastatură multimedia folosind taste sau un joystick
— emulare tastatură și mouse de pe orice telecomandă
— planificator (nu doar rulați programul în funcție de timp, ci și efectuați unele acțiuni cu acesta)
- oprirea computerului prin cronometru sau eveniment
— puteți aprinde luminile din apartament și de la telecomandă, trebuie doar să adăugați pluginul corespunzător 😉

Există, de asemenea, un program despre resursă RCExplorer 2.1— o bază de date cu telecomenzi IR (baza de date conține mai mult de 200 de intrări).


Programul vă permite să:
— Primiți semnale de la telecomenzi folosind placa de sunet, port COM, IgorPlug-USB sau IgorPlug2
- Analizați semnalul în detaliu - (modulație, caracteristici de sincronizare, caracteristici de codare, coduri de repetiție etc., toate cele cunoscute de mine sunt acceptate în acest moment protocoale, programul poate funcționa și cu protocoale necunoscute.
— Afișați grafic semnalul în timp real și conform datelor din baza de date
— Căutați o telecomandă similară în baza de date
— Reproduceți comanda telecomenzii folosind date din baza de date prin portul COM

În general, asigurați-vă că vizitați resursa - va fi interesant.

(Vizitat de 20.417 ori, 9 vizite astăzi)

Telecomanda cu infraroșu este una dintre cele mai multe moduri simple interactiunea cu dispozitive electronice. Deci, în aproape fiecare casă există mai multe astfel de dispozitive: televizor, centru muzical, video player, aer conditionat. Dar cel mai mult aplicație interesantă telecomandă cu infraroșu— controlul de la distanță al robotului. De fapt, în această lecție vom încerca să implementăm această metodă de control folosind popularul controler Arduino Uno.

1. Telecomanda IR

Ce este nevoie pentru a învăța un robot să se supună unei telecomenzi cu infraroșu (IR)? În primul rând, avem nevoie de telecomanda în sine. Puteți folosi o telecomandă TV obișnuită sau puteți achiziționa o telecomandă în miniatură pentru radioul auto. Aceste tipuri de telecomenzi sunt adesea folosite pentru a controla roboții.

Această telecomandă are 10 butoane numericeși 11 butoane pentru manipularea muzicii: volum, derulare înapoi, redare, oprire etc. Mai mult decât suficient pentru scopurile noastre.

2. Senzor IR

În al doilea rând, pentru a primi un semnal de la telecomandă avem nevoie de un senzor IR special. În general, putem detecta radiația infraroșu cu o fotodiodă/fototranzistor convențional, dar spre deosebire de acesta, senzorul nostru IR percepe semnalul infraroșu doar la o frecvență de 38 kHz (uneori 40 kHz). Această proprietate permite senzorului să ignore o mulțime de zgomote luminoase străine de la aprinderea lămpilor și a soarelui.

Pentru acest tutorial vom folosi popularul senzor IR VS1838B, care are următoarele caracteristici:

  • frecvență purtătoare: 38 kHz;
  • tensiune de alimentare: 2,7 - 5,5 V;
  • consum de curent: 50 µA.

Pot fi utilizați și alți senzori, de exemplu: TSOP4838, TSOP1736, SFH506.

3. Conexiune

Senzorul are trei fire (trei picioare). Dacă vă uitați la senzorul din partea receptorului de semnal IR, așa cum se arată în figură,

  • apoi în stânga va exista o ieșire către controler,
  • în centru - contact negativ de putere (masă),
  • iar în dreapta - contactul de putere pozitivă (2,7 - 5,5V).

Schema schematică a conexiunii

Aspectul aspectului

4. Program

După conectarea senzorului IR, vom scrie un program pentru Arduino Uno. Pentru a face acest lucru, vom folosi biblioteca standard IRremotă, care este conceput special pentru a simplifica munca de recepție și transmitere a semnalelor IR. Folosind această bibliotecă vom accepta comenzi de la telecomandă și, pentru început, pur și simplu le vom afișa în fereastra monitorului port serial. Acest program ne va fi util pentru a înțelege ce cod oferă fiecare buton.

#include "IRremote.h" IRrecv irrecv(2); // indică pinul la care este conectat receptorul rezultate decode_results; void setup() ( Serial.begin(9600); // setați viteza portului COM irrecv.enableIRIn(); // începeți să primiți ) void loop() ( dacă (irrecv.decode(&rezultatele)) ( // dacă date sosite Serial .println(results.value, HEX // imprimă datele irrecv.resume( // acceptă următoarea comandă ) );

Încărcați programul pe Arduino. După aceea, încercăm să primim comenzi de la telecomandă. Deschideți monitorul portului serial (Ctrl+Shift+M), ridicați telecomanda și îndreptați-o către senzor. Apăsând diferite butoane, observăm codurile corespunzătoare acestor butoane în fereastra monitorului.

Problemă la încărcarea programului

În unele cazuri, atunci când încercați să încărcați un program în controler, poate apărea o eroare:

TDK2 nu a fost declarat în domeniul său de aplicare

Pentru a o remedia, ștergeți doar două fișiere din folderul bibliotecă. Să mergem la explorator. Accesați folderul în care este instalată aplicația Arduino IDE (cel mai probabil „C:\Program Files (x86)\Arduino”). Apoi la folderul bibliotecii:

…\Arduino\libraries\RobotIRremote

Și ștergeți fișierele: IRremoteTools.cppŞi IRremoteTools.h. Apoi, repornim Arduino IDE și încercăm să încărcăm din nou programul pe controler.

5. Controlați LED-ul utilizând telecomanda IR

Acum că știm ce coduri corespund butoanelor telecomenzii, încercăm să programăm controlerul să pornească și să stingă LED-ul atunci când sunt apăsate butoanele de volum. Pentru a face acest lucru avem nevoie de coduri (pot varia în funcție de telecomandă):

  • FFA857 - creșterea volumului;
  • FFE01F - scăderea volumului.

Ca LED, folosim LED-ul încorporat pe pinul nr. 13, astfel încât schema de conectare va rămâne aceeași. Deci, programul:

#include "IRremote.h" IRrecv irrecv(2); // indică pinul la care este conectat receptorul rezultate decode_results; void setup() ( irrecv.enableIRIn(); // începeți să primiți) void loop() ( if (irrecv.decode(&rezultatele)) ( // dacă datele sosesc comutați (results.value) ( ​​​​cazul 0xFFA857: digitalWrite( 13, HIGH cas 0xFFE01F: digitalWrite(13, LOW);

Îl încărcăm în Arduino și îl testăm. Clic vol+— LED-ul se aprinde. Clic vol-- iese. Acum, știind cum funcționează totul, puteți controla motoarele roboților sau alte dispozitive microelectronice de casă în locul unui LED!

Există multe articole pe Internet despre cum să-ți faci propria telecomandă TV folosind Arduino, dar aveam nevoie de o telecomandă universală pentru a-mi controla televizorul și playerul media. Principalul avantaj al telecomenzii mele universale este că butoanele din aplicația pentru telefon Android au dublu scop, dar uită-te la videoclip.



Telecomanda este foarte convenabilă, deoarece aproape aceleași butoane de pe ecran sunt folosite pentru a controla televizorul și playerul. O diferență este că „ AV„în modul de control al televizorului se schimbă într-un buton” " (opriți) când treceți la modul de control al playerului. Imaginile arată două moduri, în stânga este modul de control al televizorului, în dreapta este modul de control al playerului.

Ei bine, acum vă voi spune puțin despre crearea unei astfel de telecomenzi. Pentru dispozitiv am folosit telecomanda pentru ERGO TV si telecomanda pentru media player-ul DUNE HD TV101W.

Pentru a primi date de la telecomenzile pe care le-am folosit senzor infrarosu TSOP1138 (analogic TSOP4838) la o frecvență de funcționare de 38 kHz și l-a conectat la placa Arduino conform schemei:

Această schiță nu va fi necesară pentru a determina codarea transmisiei de date și pentru a citi codul butoanelor telecomenzii.

În schița din linia int RECV_PIN = 11; indicați numărul nostru de pin 4

După încărcarea schiței, deschideți „monitorul portului” și, apăsând butoanele telecomenzii, priviți datele primite.

Imaginea prezintă un exemplu de scanare a butonului de pornire de la telecomanda televizorului și telecomanda playerului. Acum creăm un tabel pentru codurile butoanelor.

L-am luat ca in poza de mai sus. Sub inscriptie televizor codurile butoanelor telecomenzii TV; sub inscriptie Player- coduri de la telecomanda playerului media.

Acum deconectam receptorul de semnal infraroșu de la placa Arduino și îl conectăm la acesta modul Bluetooth HC-05 și LED infraroșu conform diagramei din fotografie.

După aceea, trecem direct la schiță.

Schiţa

#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) ( // codurile butoanelor pentru telecomanda televizorului if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40) ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); delay(40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); delay(40); ) if (x == 100) ( irsend.sendNEC(0x807FF00F, 32); delay(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); delay(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32 delay(40) if (x == ); delay(40); 107) ( irsend.sendNEC(0x807F48B7, 32); delay(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); delay(40); if (x == 109) ( irsend. sendNEC(0x807F6897, 32);


întârziere (40);

) ) if (y == 2) ( //codurile butoanelor telecomenzii playerului media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); delay(40); if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); delay(40); ) if (x == 100) ( irsend.sendNEC( 0xFDE817, 32); delay(40); if (x == 101) ( irsend.sendNEC(0xFDA857, 32); delay(40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; delay (40); if (x == 103) ( irsend.sendNEC(0xFDA857, 32); delay(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); delay(40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); delay(40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); delay(40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); delay(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); delay(40); ) if (x == 109) ( irsend.sendNEC(0xFD20DF, 32); delay(40); ) ) ) )
În schiță va trebui să editați codurile butoanelor, și anume în rândurile:

Dacă (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40);
Modificați valoarea 807F08F7 la:

Dacă (y == 1) ( //codurile butoanelor pentru telecomanda televizorului if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); ) Unde 12345678 este codul butonului dvs. După editarea schiței folosind codurile butoanelor, încărcați schița în

Placa Arduino Pult la telefon.

La pornire vom avea un ecran cu roșu pictograma bluetoothîn colțul din dreapta jos, ceea ce indică faptul că nu suntem conectați la dispozitivul nostru.

După aceea, faceți clic pe această pictogramă. Ar trebui să vedem o fereastră cu o listă cu toate cele disponibile dispozitive bluetooth, unde ne selectăm dispozitivul pentru a ne conecta.

Acum ne-am întors din nou ecranul de startși deja putem controla televizorul:

Pentru a trece la modul de control trebuie să apăsăm butonul etichetat "Player". După cum am spus mai devreme, butonul nostru etichetat „AV” se va schimba într-un buton „ ":

Pentru a vă deconecta de la dispozitivul nostru, țineți apăsat butonul „Power” timp de câteva secunde.

Ei bine, câteva fotografii cu dispozitivul meu terminat.

A ieșit destul de bine, se pare. Astept comentarii la articol.

În această lecție ne vom uita la conectarea unui receptor IR la Arduino. Vă vom spune ce bibliotecă ar trebui utilizată pentru un receptor IR, vă vom demonstra o schiță pentru testarea funcționării unui receptor infraroșu de la o telecomandă și vom analiza comenzile în C++ pentru a primi un semnal. Să observăm imediat că senzorul IR Arduino nu este potrivit pentru fiecare telecomandă, frecvența semnalului poate diferi.

Dispozitiv receptor IR. Principiul de funcționare

Receptoarele de radiații infraroșii sunt acum utilizate pe scară largă în aparate electrocasnice, datorită lui pret accesibil, simplitate și ușurință în utilizare. Aceste dispozitive vă permit să controlați dispozitivele folosind o telecomandă și pot fi găsite în aproape orice tip de echipament. Dar, în ciuda acestui fapt, modulul Bluetooth câștigă treptat din ce în ce mai multă popularitate.

Principiul de funcționare al unui receptor IR. Procesarea semnalului de la telecomandă

Receptorul IR de pe Arduino este capabil să primească și să proceseze un semnal infraroșu sub formă de impulsuri de o anumită durată și frecvență. Folosit la fabricarea senzorului de obstacole și a telemetrului pentru Arduino. De obicei, receptorul IR are trei picioare și este format din următoarele elemente: fotodioda PIN, amplificator, filtru trece banda, detector de amplitudine, filtru integrator si tranzistor de iesire.

Sub influența radiației infraroșii într-o fotodiodă, care are între pŞi n regiunile au creat o regiune suplimentară de semiconductor ( i-regiune), curentul începe să curgă. Semnalul merge la un amplificator și apoi la un filtru trece-bandă, care este reglat la o frecvență fixă: 30; 33; 36; 38; 40 și 56 kiloherți și protejează receptorul de interferențe. Interferența poate fi cauzată de orice aparat de uz casnic.

Pentru ca semnalul de la telecomandă să fie recepționat de receptorul IR Arduino, telecomanda trebuie să fie la aceeași frecvență cu care este setat filtrul din receptorul IR. Prin urmare, nu orice telecomandă va funcționa. Ar trebui să selectați un receptor IR și un transmițător IR cu aceeași frecvență. După filtru, semnalul merge la un detector de amplitudine care integrează filtrul și tranzistorul de ieșire.

Cum se conectează un receptor IR la Arduino

Carcasele receptoarelor cu infraroșu conțin un filtru optic pentru a proteja dispozitivul de câmpurile electromagnetice externe, acestea au o formă specială pentru a focaliza radiația primită pe o fotodiodă. Pentru a conecta receptorul IR la Arduino UNO, se folosesc trei picioare, care sunt conectate la - GND, 5V și A0. Vă recomandăm să folosiți 3,3 volți pentru a începe pentru a nu arde senzorul IR în timpul configurării.

Pentru această lecție vom avea nevoie de următoarele detalii:

  • Placa Arduino Uno / Arduino Nano / Arduino Mega;
  • panou;
  • receptor IR;
  • telecomanda;
  • 1 LED și rezistor de 220 Ohm;
  • fire mascul-mascul si barbat-fema.

Schema de conectare a receptorului IR la portul analog Arduino

Conectați receptorul IR conform diagramei prezentate mai sus și conectați LED-urile la pinii 12 și 13. Înainte de a descărca programul, va trebui să instalați biblioteca IRremote.h, dacă nu este deja instalată. Această bibliotecă nu se aplica la biblioteci standard mediu Programare Arduino IDE. Puteți descărca biblioteca IRremote.h și schița finită într-o arhivă de la Google Drive prin link.

Schiță pentru receptorul IR Arduino:

#include // conectați biblioteca pentru receptorul IR IRrecv irrecv(A0); // indică pinul la care este conectat receptorul IR decode_results rezultate; void setup () // procedura de configurare ( irrecv.enableIRIn (); // începeți să primiți semnal infrarosu pinMode(13, IEȘIRE); // pinul 13 va fi ieșirea pinMode(12, IEȘIRE); // pinul 12 va fi ieșirea pinMode(A0, INPUT); // pinul A0 va fi intrarea (ing. „input”) Serial.begin(9600); // conectați monitorul portului) bucla void () // bucla procedura ( if (irrecv.decode (&rezultate)) // dacă datele au ajuns, executați comenzile( Serial .println(results.value); // trimite datele primite către port // aprinde și stinge LED-urile, în funcție de semnalul primit if (results.value == 16754775) ( digitalWrite (13, HIGH); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, HIGH ) if (results.value == 16724175) ( digitalWrite (12, LOW ); ) irrecv.resume (); // accept următorul semnal pe receptorul IR } }

Explicații pentru cod:

  1. Biblioteca IRremote.h conține un set de comenzi și vă permite să simplificați schița;
  2. Declarația decode_results atribuie rezultatele numelui variabilei semnalelor primite de la telecomandă.

Senzorul IR poate fi utilizat în multe dispozitive de pe microcontrolerul Arduino, inclusiv controlul de la distanță a unui servo drive pe Arduino de la un receptor IR. La configurare, ar trebui să porniți monitorul portului Arduino IDE și să aflați ce semnal trimite acest sau acel buton de pe telecomandă. Codurile rezultate ar trebui folosite în schiță după semnul dublu egal în condițiile if().

De asemenea, citește des:

Cele mai bune articole pe această temă