Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • Skema për leximin e një sinjali infra të kuqe në një kompjuter. Kontrollimi i arduino me telekomandë IR

Skema për leximin e një sinjali infra të kuqe në një kompjuter. Kontrollimi i arduino me telekomandë IR

Ka shumë artikuj në internet se si të krijoni telekomandën tuaj të televizorit në Arduino, por më duhej një telekomandë universale për të kontrolluar televizorin tim dhe luajtësin e mediave. Avantazhi kryesor i telekomandës sime universale është se butonat në aplikacionin për telefonin android janë me qëllime të dyfishta, por meqë ra fjala, shikoni videon.



Telekomanda është shumë e përshtatshme në atë që në ekran përdoren pothuajse të njëjtat butona për të kontrolluar televizorin dhe luajtësin. Një ndryshim është se " AV"në modalitetin e kontrollit të televizorit, ndryshon në butonin" "(ndaloni) kur kaloni në modalitetin e kontrollit të luajtësit. Fotografitë tregojnë dy mënyra, në të majtë është modaliteti i kontrollit të televizorit, në të djathtë është modaliteti i kontrollit të luajtësit.

Epo, tani do t'ju tregoj pak për krijimin e një telekomande të tillë. Për pajisjen kam përdorur një telekomandë ERGO TV dhe një telekomandë DUNE HD TV101W media player.

Për të marrë të dhëna nga konsolat, përdora një sensor infra të kuqe TSOP1138 (analog i TSOP4838) me një frekuencë funksionimi prej 38 kHz dhe e lidha atë me tabelën Arduino si më poshtë:

Kjo skicë do të kërkohet për të përcaktuar kodimin e transmetimit të të dhënave dhe për të lexuar kodin e butonave të telekomandës.

Në skicë, në rreshtin int RECV_PIN = 11; ne tregojmë pinin tonë në numrin 4

Pasi të keni plotësuar skicën, hapni "monitorin e portit" dhe, duke shtypur butonat në telekomandë, shikoni të dhënat e marra.

Figura tregon një shembull të skanimit të butonit të ndezjes nga telekomanda e televizorit dhe telekomanda e luajtësit. Tani krijojmë një tabelë për kodet e butonave.

E bëra si në foton e mësipërme. Nën mbishkrimin TV Kodet e butonave të telekomandës së televizorit; nën mbishkrim Lojtar- kodet nga telekomanda e luajtësit të mediave.

Tani ne shkëputim marrësin tonë të sinjaleve infra të kuqe nga bordi Arduino dhe lidhim modulin Bluetooth HC-05 dhe LED infra të kuqe me të sipas diagramit në foto.

Pas kësaj, shkoni direkt në skicë.

Skicë

#përfshi IRsend irsend; int y = 1; konfigurimi i zbrazët () (Serial.fillimi (9600);) cikli i zbrazët () (nëse (Serial.disponueshëm ()> 0) (int x = Serial.lexo (); nëse (x == 49) (y = 1; ) nëse (x == 50) (y = 2;) nëse (y == 1) (// kodet e butonave për telekomandën e televizorit nëse (x == 97) (irsend.sendNEC (0x807F08F7, 32); vonesë (40 );) nëse (x == 98) (irsend.sendNEC (0x807FA857, 32); vonesë (40);) nëse (x == 99) (irsend.sendNEC (0x807F708F, 32); vonesë (40);) nëse (x == 100) (irsend.sendNEC (0x807FF00F, 32); vonesë (40);) nëse (x == 101) (irsend.sendNEC (0x807F30CF, 32); vonesë (40);) nëse (x == 102) (irsend.sendNEC (0x807FB04F, 32); vonesë (40);) nëse (x == 103) (irsend.sendNEC (0x807F9867, 32); vonesë (40);) nëse (x == 104) (irsend .sendNEC (0x807F58A7, 32); vonesë (40);) nëse (x == 105) (irsend.sendNEC (0x807FD827, 32); vonesë (40);) nëse (x == 106) (irsend.sendNEC (0x807F , 32); vonesë (40);) nëse (x == 107) (irsend.sendNEC (0x807F48B7, 32); vonesë (40);) nëse (x == 108) (irsend.sendNEC (0x807FB847, 32); vonesë (40);) nëse (x == 109) (irsend.sendNEC (0x807F6897, 32); vonesë (40); )) nëse (y == 2) (// kodet e butonave të telekomandës nga luajtësi i mediave nëse (x == 97) (irsend.sendNEC (0xFDC23D, 32); vonesë (40);) nëse (x == 98) (send. sendNEC (0xFDE01F, 32); vonesë (40);) nëse (x == 99) (irsend.sendNEC (0xFD18E7, 32); vonesë (40);) nëse (x == 100) (irsend .sendNEC (0xFDE817, 32); vonesë (40);) nëse (x == 101) (irsend.sendNEC (0xFDA857, 32); vonesë (40);) nëse (x == 102) (irsend.sendNEC (0xFD6897 , 32); vonesë (40);) nëse (x == 103) (irsend.sendNEC (0xFDA857, 32); vonesë (40);) nëse (x == 104) (irsend.sendNEC (0xFD6897, 32); vonesë (40); ) nëse (x == 105) (irsend.sendNEC (0xFDE817, 32); vonesë (40);) nëse (x == 106) (irsend.sendNEC (0xFD18E7, 32); vonesë (40) ;) nëse (x == 107) (irsend.sendNEC (0xFD9867, 32); vonesë (40);) nëse (x == 108) (irsend.sendNEC (0xFD28D7, 32); vonesë (40);) nëse ( x == 109) (irsend.sendNEC (0xFD20DF, 32); vonesë (40);))))


Në skicë, do t'ju duhet të modifikoni kodet e butonave, përkatësisht në rreshtat:

Nëse (x == 97) (irsend.sendNEC (0x807F08F7, 32); vonesë (40);
Ndrysho vlerën 807F08F7 në:

Nëse (y == 1) (// kodet e butonit për telekomandën e televizorit nëse (x == 97) (irsend.sendNEC (0x12345678, 32); vonesë (40);)
Ku 12345678 është kodi juaj i butonit.

Pasi të redaktoni skicën duke përdorur kodet tuaja të butonave, ngarkoni skicën në tabelën Arduino dhe vazhdoni me instalimin e aplikacionit në telefon.

Ne ndezim Bluetooth-in në telefon, kërkojmë pajisjen tonë, krijojmë një çift dhe më pas hapim aplikacionin Pult në telefon.

Kur të hapet, do të kemi një ekran me një ikonë të kuqe bluetooth në këndin e poshtëm djathtas, i cili sinjalizon se nuk jemi të lidhur me pajisjen tonë.

Pas kësaj, klikoni në këtë ikonë. Duhet të kemi një dritare me një listë të të gjitha pajisjeve të disponueshme Bluetooth, ku zgjedhim pajisjen tonë për t'u lidhur.

Tani jemi kthyer në ekranin kryesor dhe tashmë mund të kontrollojmë televizorin:

Për të kaluar në modalitetin e kontrollit, duhet të shtypim butonin me mbishkrimin "Lojtar"... Siç thashë më parë, butoni ynë i emërtuar "AV" do të ndryshojë në " ":

Për t'u shkëputur nga pajisja jonë, thjesht mbani të shtypur butonin "Power" për disa sekonda.

Epo, disa foto të pajisjes sime të përfunduar.

Doli, me sa duket, jo keq. Pres komente mbi artikullin.

Marrësi IR dhe telekomanda infra të kuqe janë mënyra më e zakonshme dhe më e thjeshtë për të kontrolluar pajisjet elektronike. Spektri i rrezatimit infra të kuq nuk është i dukshëm për syrin e njeriut, por ai pranohet mirë nga marrësit IR që janë të integruar në pajisje elektronike. Modulet e largëta Arduino ir përdoren për të kontrolluar pajisje të ndryshme në vijën e shikimit.

Përdorimi i gjerë i emetuesve IR është bërë i mundur për shkak të kostos së tyre të ulët, thjeshtësisë dhe lehtësisë së përdorimit. Rrezatimi IR shtrihet në rangun nga 750 në 1000 mikron - kjo është pjesa më e afërt e spektrit me dritën e dukshme. Në rajonin infra të kuqe, vetitë optike të materialeve të ndryshme mund të ndryshojnë. Disa gota, për shembull, bëhen të errët ndaj rrezeve IR, ndërsa parafina, përkundrazi, është transparente në spektrin IR.

Rrezatimi regjistrohet me ndihmën e materialeve të posaçme fotografike, në bazë të të cilave bëhen marrësit. Një burim i rrezatimit infra të kuqe, përveç trupave të nxehtë (dielli, llambat inkandeshente ose qirinjtë), mund të jenë pajisjet e gjendjes së ngurtë - LED IR, lazer. Rrezatimi në rangun infra të kuqe ka një numër karakteristikash, falë të cilave ato janë të përshtatshme për t'u përdorur në telekomandat:

  • Emituesit e gjendjes së ngurtë (IR LED) janë të lirë dhe kompakt.
  • Rrezet infra të kuqe nuk perceptohen apo regjistrohen nga syri i njeriut.
  • Marrësit IR janë gjithashtu të lirë dhe të vegjël në madhësi.
  • Ndërhyrje të ulëta pasi transmetuesi dhe marrësi janë të sintonizuar në të njëjtën frekuencë.
  • Nuk ka asnjë ndikim negativ në shëndetin e njeriut.
  • Reflektueshmëri e lartë nga shumica e materialeve.
  • Emituesit IR nuk ndikojnë në funksionimin e pajisjeve të tjera.

Funksionimi i telekomandës kryhet si më poshtë. Kur shtypet butoni, sinjali kodohet në dritën infra të kuqe, marrësi e merr atë dhe kryen veprimin e kërkuar. Informacioni është i koduar si një sekuencë logjike e shpërthimeve të pulseve me një frekuencë të caktuar. Marrësi merr këtë sekuencë dhe demodulon të dhënat. Për të marrë një sinjal, përdoret një mikroqark, i cili përmban një fotodetektor (fotodiodë), përforcues, një filtër brezi, një demodulator (një detektor që ju lejon të zgjidhni zarfin e sinjalit) dhe një transistor dalës. Ka edhe filtra - elektrikë dhe optikë. Pajisjet e tilla punojnë në një distancë deri në 40 metra. Metoda IR e transmetimit të të dhënave ekziston në shumë pajisje: në pajisje shtëpiake, pajisje industriale, kompjuterë, linja me fibra optike.

Marrës IR Arduino

Për të lexuar sinjalin IR, do t'ju duhet vetë bordi Arduino, një tabelë buke, një marrës sinjali IR dhe kërcyesit. Ka shumë marrës të ndryshëm atje, por është më mirë të përdorni TSOP312 ose ndonjë tjetër të përshtatshëm për Arduino. Të dhënat nga tastiera te marrësi mund të transmetohen duke përdorur protokollin RC5 ose NEC.

Për të përcaktuar se cilës këmbë i përket, duhet të shikoni sensorin nga ana e marrësit. Pastaj në marrës kontakti qendror është toka, në të majtë është dalja në mikrokontrollues, në të djathtë është furnizimi me energji elektrike.

Për lehtësi, mund të përdoren module të gatshme marrës IR.

Lidhja e një marrësi IR me një arduino

Daljet IR të marrësit janë të lidhura me Arduino me GND, portat 5V dhe një hyrje dixhitale. Diagrami për lidhjen e sensorit me pinin e 11-të dixhital është paraqitur më poshtë.

Kështu duket qarku me modulin e marrësit infra të kuqe:


Bibliotekat për të punuar me IR

Për të punuar me pajisjet IR, mund të përdorni bibliotekën IRremote, e cila thjeshton ndërtimin e sistemeve të kontrollit. Ju mund ta shkarkoni bibliotekën. Pasi të keni shkarkuar, kopjoni skedarët në dosjen \ arduino \ libraries. Për t'u lidhur me skicën tuaj të bibliotekës, duhet të shtoni skedarin e kokës #include .

Për të lexuar informacionin, përdoret shembulli IRrecvDumpV2 nga biblioteka. Nëse telekomanda ekziston tashmë në listën e njohur, atëherë skanimi nuk kërkohet. Për të lexuar kodet, duhet të nisni ARDuino IDE dhe të hapni shembullin IRrecvDemo nga IRremote.

Ekziston edhe një bibliotekë e dytë për të punuar me sinjale IR - IRlib. Është i ngjashëm në funksionalitet me atë të mëparshëm. Krahasuar me IRremote, IRlib ka një shembull për përcaktimin e frekuencës së një sensori IR. Por biblioteka e parë është më e thjeshtë dhe më e përshtatshme për t'u përdorur.

Pas ngarkimit të bibliotekës, mund të filloni të lexoni sinjalet e marra. Për këtë përdoret kodi i mëposhtëm.

Deklarata decode_results përdoret për të emërtuar sinjalin që rezulton në variablin e rezultateve.

Në kod, ju duhet të rishkruani "HEX" në "DEC".

Më pas, pasi të keni ngarkuar programin, duhet të hapni monitorin serial dhe të shtypni butonat në telekomandë. Në ekran do të shfaqen kode të ndryshme. Ju duhet të bëni një shënim me cilin buton korrespondon kodi i marrë. Është më i përshtatshëm për të shkruar të dhënat e marra në një tabelë. Pastaj ky kod mund të shkruhet në program në mënyrë që të mund të kontrolloni pajisjen. Kodet shkruhen në kujtesën e vetë bordit arduino EEPROM, gjë që është shumë e përshtatshme, pasi nuk keni nevojë të programoni butonat sa herë që ndizni telekomandën.

Ndodh që gjatë ngarkimit të një programi, lëshohet gabimi "TDK2 nuk u deklarua në fushën e tij". Për ta rregulluar atë, duhet të shkoni te eksploruesi, të shkoni te dosja ku është instaluar aplikacioni Arduino IDE dhe të fshini skedarët IRremoteTools.cpp dhe IRremoteTools.h. Pas kësaj, ju duhet të ringarkoni programin në mikrokontrollues.

konkluzioni

Përdorimi i telekomandës Arduino ir e bën jetën më të lehtë për përdoruesin. Një telefon celular, tablet ose kompjuter mund të veprojë si një telekomandë - gjithçka që ju nevojitet është softuer special. Me ndihmën e Arduino, ju mund të centralizoni të gjithë kontrollin. Mund të kryeni disa veprime njëherësh me një buton në telekomandë - për shembull, ndizni TV dhe Blu-Ray në të njëjtën kohë.

Kur krijoni pajisje për të punuar me telekomandat IR, është shumë i nevojshëm një mjet me të cilin regjistrohen dhe analizohen sinjalet IR. Idealisht, një mjet i tillë mund të jetë një oshiloskop dixhital ose një analizues logjik, por jo të gjithë i kanë këto pajisje dhe është e shtrenjtë për t'u blerë posaçërisht. Si të jesh? Ekziston një zgjidhje shumë e thjeshtë - një kartë zanore e kompjuterit! Ne do të regjistrojmë sinjalin me ndihmën e tij.

Përveç kartës së zërit (që shpresoj ta keni në kompjuterin tuaj), na duhet një marrës IR. Do të ishte më e saktë të montoni një qark marrës të plotë me TSOP, por ne do të veprojmë sa më thjesht të jetë e mundur - si marrës IR, do të marrim LED-in më të zakonshëm IR (ai që është në telekomandën tuaj). Sigurisht, ju mund të merrni një fotodiodë IR, por një LED IR është më e lehtë për t'u marrë. LED IR duhet të lidhet drejtpërdrejt me hyrjen e mikrofonit të kartës së zërit. Për ta bërë këtë, ju nevojitet një prizë 3,5 mm dhe një copë teli i mbrojtur (unë e preva kordonin me lidhësin nga mikrofoni i vjetër që nuk funksionon).

LED lidhet si më poshtë:

Si rezultat, marrim pajisjen e mëposhtme:

Fusim spinën në hyrjen e mikrofonit (është rozë). Në cilësimet e kartës së zërit, zgjidhni mikrofonin si pajisje hyrëse, hiqni kontrollin e fitimit në maksimum dhe kontrolloni kutinë e kontrollit të fitimit shtesë. Për të kontrolluar, ne e drejtojmë telekomandën te marrësi LED (është e nevojshme ta afroni sa më afër telekomandës), shtypni butonin - klikimet duhet të dëgjohen në altoparlantë.

Nëse, për ndonjë arsye, nuk keni hyrje të mikrofonit (për shembull, në një laptop) - lidhni marrësin në linjën e kartës së zërit - gjithçka do të funksionojë njësoj, vetëm amplituda e sinjalit të regjistruar do të bëhet shumë më të vogla.


Tani na duhet një program për regjistrimin e zërit.
Për këto qëllime, çdo program që keni është i përshtatshëm. Nëse nuk keni një program të preferuar për të punuar me tingull, unë ofroj një program të vogël dhe falas - Wavosaur (http://www.wavosaur.com/) Programi funksionon pa instalim dhe është i vogël në madhësi - siç më pëlqen :) .

Një program për të punuar me zë.

Pas fillimit të programit, ndizni treguesin e nivelit (vizorin në anën e djathtë të dritares) dhe kontrolloni reagimin ndaj sinjaleve të telekomandës. Si parazgjedhje, gjithçka duhet të funksionojë - sunduesi do të shkojë jashtë shkallës nga sinjalet e marra (nëse nuk ka reagim, ne ngjitemi në cilësimet Konfigurimi i audios / Audio in). Më pas, shtypim ikonën e regjistrimit, e afrojmë telekomandën sa më afër LED-së marrëse, shtypim tastin e telekomandës dhe e mbajmë për disa sekonda. Çaktivizo regjistrimin - U krye! Në dritare do të shohim një skanim të sinjalit IR të marrë. Është interesante se sinjali tashmë do të zbulohet - ne nuk do të shohim frekuencën e bartësit, por vetëm sinjalin e dobishëm. Kjo për faktin se kapacitetet hyrëse të hyrjes së mikrofonit nuk kanë kohë për t'u rimbushur.

Sinjali i marrë mund të shkallëzohet në kohë, amplitudë dhe, gjë që është shumë e përshtatshme, duke theksuar një interval të caktuar, mund të shihni menjëherë kohëzgjatjen e tij. Sinjali i marrë mund të ruhet (më mirë në formatin wav - nuk do të ketë shtrembërime) ose të eksportohet në MP3, tekst, skedar binar (gjë e dobishme!).

Për shembull, sinjali im i telekomandës nga TV (format NEC):

Të gjitha intervalet kohore mund të shihen nga fotografia, madje mund të llogarisni adresën e telekomandës dhe kodin komandues të butonit - gjithçka është e qartë dhe e kuptueshme.

P.S.
Kërkesë e madhe! Nëse montoni një marrës të tillë, ruani paketat e telekomandës tuaj dhe ma dërgoni për sapun (në skedën "Rreth projektit") - kjo do të ndihmojë shumë në përmirësimin e algoritmit të marrësit universal. Në emër të skedarit, tregoni nga telekomanda dhe kompania e prodhuesit (për shembull: tv-sony.wav).


Më shumë rreth punës me telekomandat IR!
Unë sugjerova mënyrën më të lehtë për të "ndier" sinjalin nga telekomanda IR, por ka shumë zgjidhje që mund të bëjnë shumë më tepër! Merrni një sinjal IR, analizoni, ruani, luani, programoni telekomandat, kontrolloni kompjuterin tuaj ... Ky seksion do të përmbajë lidhje me zgjidhje të tilla.

1. DvzRcEditor
Programi do të shkojë i pari. Redaktori DvzRc, të cilën e hodha mobi. Programi është bërë nga një i caktuar Dvz 2010(për fat të keq nuk ka koordinata, ndoshta kush e di?).


- Një program për analizën dhe përsëritjen e sinjaleve IR.
Programi lejon përdorimin e hyrjes së mikrofonit dhe daljes audio për të regjistruar dhe riprodhuar mesazhe IR. Ka mjete për analizimin e mesazhit IR dhe krijimin e një baze të dhënash të dërgesave të konzollave (ekziston një bazë e vogël për konzolla të ndryshme). Një zgjidhje interesante është të mbështesni telekomandën tuaj të krijuar në ATtiny2313.


Telekomanda ka 7 çelësa në të cilët mund të vendosni çdo komandë nga ato të analizuara, dhe vetë programi mund të shkruajë sinjalet për këto butona në mikrokontrollues (me kusht që të ndezni ngarkuesin atje për herë të parë).

Gjithçka është e thjeshtë dhe e qartë - më pëlqeu!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
Nuk është as një program - është një burim i tërë interneti i dedikuar për telekomandat IR. Përmban shumë informacione të dobishme, zgjidhje harduerike dhe softuerike për të gjitha rastet. Ja çfarë shkruajnë autorët për SlyControl:
Është një program universal për menaxhimin e gjithçkaje me një kompjuter.

Për çfarë mund të përdoret:
- kontrolli i çdo programi nga çdo telekomandë (RC), nga tastiera, çelësat multimedialë ose levë
- emulim i tastierës dhe miut nga çdo telekomandë
- planifikues (jo vetëm ekzekutoni programin në kohë, por gjithashtu kryeni disa veprime me të)
- mbyllja e kompjuterit me kohëmatës ose ngjarje
- Mund të ndizni edhe dritën në apartament nga telekomanda, mjafton të shtoni plugin-in e duhur 😉

Dhe ekziston gjithashtu një program për burimin RCExplorer 2.1- baza e të dhënave në telekomandat IR (baza e të dhënave përmban më shumë se 200 regjistrime).


Programi ju lejon të:
- Merrni një sinjal nga konsolat duke përdorur një kartë zanore, port COM, IgorPlug-USB ose IgorPlug2
- Analizoni sinjalin në detaje - (modulimi, koha, veçoritë e kodimit, kodet e përsëritura, etj., Të gjitha protokollet e njohura për mua për momentin janë të mbështetura, programi mund të funksionojë me protokolle të panjohura.
- Paraqitni grafikisht sinjalin në kohë reale dhe sipas të dhënave nga baza e të dhënave
- Kërkoni për një telekomandë të ngjashme në bazën e të dhënave
- Riprodhoni komandën e telekomandës sipas të dhënave nga baza përmes portës COM

Në përgjithësi, sigurohuni që të vizitoni burimin - do të jetë interesante.

(Vizituar 20 417 herë, 9 vizita sot)

Ka shumë artikuj në internet se si të krijoni telekomandën tuaj të televizorit në Arduino, por më duhej një telekomandë universale për të kontrolluar televizorin tim dhe luajtësin e mediave. Avantazhi kryesor i telekomandës sime universale është se butonat në aplikacionin për telefonin android janë me qëllime të dyfishta, por meqë ra fjala, shikoni videon.



Telekomanda është shumë e përshtatshme në atë që në ekran përdoren pothuajse të njëjtat butona për të kontrolluar televizorin dhe luajtësin. Një ndryshim është se " AV"në modalitetin e kontrollit të televizorit, ndryshon në butonin" "(ndaloni) kur kaloni në modalitetin e kontrollit të luajtësit. Fotografitë tregojnë dy mënyra, në të majtë është modaliteti i kontrollit të televizorit, në të djathtë është modaliteti i kontrollit të luajtësit.

Epo, tani do t'ju tregoj pak për krijimin e një telekomande të tillë. Për pajisjen kam përdorur një telekomandë ERGO TV dhe një telekomandë DUNE HD TV101W media player.

Për të marrë të dhëna nga konsolat, përdora një sensor infra të kuqe TSOP1138 (analog i TSOP4838) me një frekuencë funksionimi prej 38 kHz dhe e lidha atë me tabelën Arduino si më poshtë:

Kjo skicë do të kërkohet për të përcaktuar kodimin e transmetimit të të dhënave dhe për të lexuar kodin e butonave të telekomandës.

Në skicë, në rreshtin int RECV_PIN = 11; ne tregojmë pinin tonë në numrin 4

Pasi të keni plotësuar skicën, hapni "monitorin e portit" dhe, duke shtypur butonat në telekomandë, shikoni të dhënat e marra.

Figura tregon një shembull të skanimit të butonit të ndezjes nga telekomanda e televizorit dhe telekomanda e luajtësit. Tani krijojmë një tabelë për kodet e butonave.

E bëra si në foton e mësipërme. Nën mbishkrimin TV Kodet e butonave të telekomandës së televizorit; nën mbishkrim Lojtar- kodet nga telekomanda e luajtësit të mediave.

Tani ne shkëputim marrësin tonë të sinjaleve infra të kuqe nga bordi Arduino dhe lidhim modulin Bluetooth HC-05 dhe LED infra të kuqe me të sipas diagramit në foto.

Pas kësaj, shkoni direkt në skicë.

Skicë

#përfshi IRsend irsend; int y = 1; konfigurimi i zbrazët () (Serial.fillimi (9600);) cikli i zbrazët () (nëse (Serial.disponueshëm ()> 0) (int x = Serial.lexo (); nëse (x == 49) (y = 1; ) nëse (x == 50) (y = 2;) nëse (y == 1) (// kodet e butonave për telekomandën e televizorit nëse (x == 97) (irsend.sendNEC (0x807F08F7, 32); vonesë (40 );) nëse (x == 98) (irsend.sendNEC (0x807FA857, 32); vonesë (40);) nëse (x == 99) (irsend.sendNEC (0x807F708F, 32); vonesë (40);) nëse (x == 100) (irsend.sendNEC (0x807FF00F, 32); vonesë (40);) nëse (x == 101) (irsend.sendNEC (0x807F30CF, 32); vonesë (40);) nëse (x == 102) (irsend.sendNEC (0x807FB04F, 32); vonesë (40);) nëse (x == 103) (irsend.sendNEC (0x807F9867, 32); vonesë (40);) nëse (x == 104) (irsend .sendNEC (0x807F58A7, 32); vonesë (40);) nëse (x == 105) (irsend.sendNEC (0x807FD827, 32); vonesë (40);) nëse (x == 106) (irsend.sendNEC (0x807F , 32); vonesë (40);) nëse (x == 107) (irsend.sendNEC (0x807F48B7, 32); vonesë (40);) nëse (x == 108) (irsend.sendNEC (0x807FB847, 32); vonesë (40);) nëse (x == 109) (irsend.sendNEC (0x807F6897, 32); vonesë (40); )) nëse (y == 2) (// kodet e butonave të telekomandës nga luajtësi i mediave nëse (x == 97) (irsend.sendNEC (0xFDC23D, 32); vonesë (40);) nëse (x == 98) (send. sendNEC (0xFDE01F, 32); vonesë (40);) nëse (x == 99) (irsend.sendNEC (0xFD18E7, 32); vonesë (40);) nëse (x == 100) (irsend .sendNEC (0xFDE817, 32); vonesë (40);) nëse (x == 101) (irsend.sendNEC (0xFDA857, 32); vonesë (40);) nëse (x == 102) (irsend.sendNEC (0xFD6897 , 32); vonesë (40);) nëse (x == 103) (irsend.sendNEC (0xFDA857, 32); vonesë (40);) nëse (x == 104) (irsend.sendNEC (0xFD6897, 32); vonesë (40); ) nëse (x == 105) (irsend.sendNEC (0xFDE817, 32); vonesë (40);) nëse (x == 106) (irsend.sendNEC (0xFD18E7, 32); vonesë (40) ;) nëse (x == 107) (irsend.sendNEC (0xFD9867, 32); vonesë (40);) nëse (x == 108) (irsend.sendNEC (0xFD28D7, 32); vonesë (40);) nëse ( x == 109) (irsend.sendNEC (0xFD20DF, 32); vonesë (40);))))


Në skicë, do t'ju duhet të modifikoni kodet e butonave, përkatësisht në rreshtat:

Nëse (x == 97) (irsend.sendNEC (0x807F08F7, 32); vonesë (40);
Ndrysho vlerën 807F08F7 në:

Nëse (y == 1) (// kodet e butonit për telekomandën e televizorit nëse (x == 97) (irsend.sendNEC (0x12345678, 32); vonesë (40);)
Ku 12345678 është kodi juaj i butonit.

Pasi të redaktoni skicën duke përdorur kodet tuaja të butonave, ngarkoni skicën në tabelën Arduino dhe vazhdoni me instalimin e aplikacionit në telefon.

Ne ndezim Bluetooth-in në telefon, kërkojmë pajisjen tonë, krijojmë një çift dhe më pas hapim aplikacionin Pult në telefon.

Kur të hapet, do të kemi një ekran me një ikonë të kuqe bluetooth në këndin e poshtëm djathtas, i cili sinjalizon se nuk jemi të lidhur me pajisjen tonë.

Pas kësaj, klikoni në këtë ikonë. Duhet të kemi një dritare me një listë të të gjitha pajisjeve të disponueshme Bluetooth, ku zgjedhim pajisjen tonë për t'u lidhur.

Tani jemi kthyer në ekranin kryesor dhe tashmë mund të kontrollojmë televizorin:

Për të kaluar në modalitetin e kontrollit, duhet të shtypim butonin me mbishkrimin "Lojtar"... Siç thashë më parë, butoni ynë i emërtuar "AV" do të ndryshojë në " ":

Për t'u shkëputur nga pajisja jonë, thjesht mbani të shtypur butonin "Power" për disa sekonda.

Epo, disa foto të pajisjes sime të përfunduar.

Doli, me sa duket, jo keq. Pres komente mbi artikullin.

Në këtë mësim, merrni parasysh lidhjen e një marrësi IR me një Arduino. Ne do t'ju tregojmë se cila bibliotekë duhet të përdoret për marrësin IR, do të demonstrojmë një skicë për testimin e funksionimit të marrësit infra të kuqe nga telekomanda dhe do të analizojmë komandat në C ++ për të marrë sinjalin. Menjëherë, vërejmë se sensori IR Arduino nuk është i përshtatshëm për çdo telekomandë, frekuenca e sinjalit mund të ndryshojë.

Pajisja e marrësit IR. Parimi i funksionimit

Marrësit infra të kuqe përdoren gjerësisht sot në pajisjet shtëpiake për shkak të çmimit të tyre të përballueshëm, thjeshtësisë dhe lehtësisë së përdorimit. Këto pajisje ju lejojnë të kontrolloni pajisjet duke përdorur një telekomandë dhe mund të gjenden pothuajse në çdo lloj teknologjie. Por, pavarësisht kësaj, gradualisht moduli Bluetooth po fiton gjithnjë e më shumë popullaritet.

Parimi i funksionimit të marrësit IR. Përpunimi i sinjalit me telekomandë

Marrësi IR në Arduino është i aftë të marrë dhe përpunojë një sinjal infra të kuqe, në formën e pulseve të një kohëzgjatjeje dhe frekuence të caktuar. Përdoret në prodhimin e sensorit të pengesave dhe zbuluesit të distancës për Arduino. Në mënyrë tipike, një marrës IR ka tre këmbë dhe përbëhet nga elementët e mëposhtëm: fotodiodë PIN, përforcues, filtër brezi, detektor amplitudë, filtër integrues dhe transistor dalës.

Nën ndikimin e rrezatimit infra të kuqe në një fotodiodë, në të cilën ndërmjet fq dhe n zonat krijuan një zonë shtesë të gjysmëpërçuesit ( i-zona), fillon të rrjedhë një rrymë. Sinjali shkon në amplifikator dhe më pas në filtrin brez-pass, i cili është i sintonizuar në një frekuencë fikse: 30; 33; 36; 38; 40 dhe 56 kHz dhe mbron marrësin nga ndërhyrjet. Çdo pajisje shtëpiake mund të shkaktojë ndërhyrje.

Në mënyrë që sinjali nga telekomanda të merret nga marrësi Arduino IR, telekomanda duhet të jetë në të njëjtën frekuencë me të cilën është sintonizuar filtri në marrësin IR. Prandaj, jo çdo telekomandë është e përshtatshme për këtë punë. Përputhni marrësin IR dhe transmetuesin IR me të njëjtën frekuencë. Pas filtrit, sinjali shkon në një detektor amplitudë, një filtër integrues dhe një transistor dalës.

Si të lidhni një marrës IR me Arduino

Strehimet e marrësve infra të kuqe përmbajnë një filtër optik për të mbrojtur pajisjen nga fushat e jashtme elektromagnetike; ato janë bërë në një formë të veçantë për të fokusuar rrezatimin e marrë në një fotodiodë. Për të lidhur marrësin IR me Arduino UNO, përdoren tre kunja, të cilat janë të lidhura me - GND, 5V dhe A0. Ne ju këshillojmë të filloni të përdorni 3.3 volt, në mënyrë që të mos digjen sensorin IR gjatë konfigurimit.

Për mësimin, na duhen detajet e mëposhtme:

  • Arduino Uno / Arduino Nano / Arduino Mega board;
  • dërrasë për bukë;
  • marrës IR;
  • telekomandë;
  • 1 LED dhe rezistencë 220 Ohm;
  • telat baba-baba dhe baba-mami.

Diagrami i lidhjes së një marrësi IR me portin analog të Arduino

Lidheni marrësin IR siç tregohet më sipër dhe lidhni LED-të në 12 dhe 13 kunjat. Përpara se të shkarkoni programin, do t'ju duhet të instaloni bibliotekën IRremote.h, nëse nuk është instaluar ende. Kjo bibliotekë nuk i përket bibliotekave standarde të mjedisit programues Arduino IDE. Ju mund të shkarkoni bibliotekën IRremote.h dhe skicën e përfunduar në një arkiv nga Google Drive duke përdorur lidhjen.

Skicë për marrësin IR Arduino:

#përfshi // lidhni bibliotekën për marrësin IR IRrecv irrecv (A0); // specifikoni pinin me të cilin është lidhur marrësi IR rezultatet e dekodimit të rezultateve; konfigurimi i pavlefshëm () // procedura e konfigurimit (irrecv.enableIRIn (); // filloni të merrni sinjalin infra të kuqe pinMode (13, OUTPUT); // pin 13 do të jetë dalja pinMode (12, OUTPUT); // pin 12 do të jetë dalja pinMode (A0, INPUT); // pin A0 do të jetë hyrja (anglisht "input") Seriali .fillimi (9600); // lidhni monitorin e portit) void loop () // cikli i procedurës (nëse (irrecv.deshifroj (& rezultatet)) // nëse erdhën të dhënat, ekzekutoni komandat(Seriali .println (rezultatet.vlera); // dërgoni të dhënat e marra në port // ndezni dhe fikni LED-të, në varësi të sinjalit të marrë nëse (rezultatet.vlera == 16754775) (Shkrua dixhital (13, LARTË);) nëse (rezultatet.vlera == 16769055) (shkrimi dixhital (13, ULËT);) nëse (rezultatet.vlera == 16718055) (Shkruani dixhital (12, LARTË);) nëse (rezultatet.vlera == 16724175) (Dixhital Shkruani (12, LOW);) irrecv.rifillimi (); // merrni sinjalin tjetër në marrësin IR } }

Shpjegime për kodin:

  1. Biblioteka IRremote.h përmban një grup komandash dhe ju lejon të thjeshtoni skicën;
  2. Deklarata decode_results cakton emrin e rezultateve të ndryshores sinjaleve të marra nga telekomanda.

Sensori IR mund të përdoret në shumë pajisje në mikrokontrolluesin Arduino, duke përfshirë telekomandimin e servo drive në Arduino nga marrësi IR. Kur konfiguroni, duhet të ndizni monitorin e portës Arduino IDE dhe të zbuloni se çfarë sinjali dërgohet nga ky ose ai buton në telekomandë. Kodet që rezultojnë duhet të përdoren në skicë pas shenjës së dyfishtë të barazimit në kushtet if ().

Gjithashtu lexoni shpesh:

Artikujt kryesorë të lidhur