Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Lexoni kodet e telekomandës arduino. Telekomanda universale në Arduino

Marrës IR dhe telekomandë infra të kuqe - mënyra më e zakonshme dhe më e lehtë për të kontrolluar pajisje elektronike. Spektri i rrezatimit infra të kuq nuk është i dukshëm për syrin e njeriut, por ai merret në mënyrë të përsosur nga marrës IR që janë të integruar në pajisje elektronike. Modulet Arduino telekomanda ir përdoren për kontroll teknika 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 e rrezatimit infra të kuqe, vetitë optike mund të ndryshojnë materiale të ndryshme. 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 duke përdorur materiale të veçanta fotografike, në bazë të të cilave bëhen marrës. Përveç trupave të nxehtë (Dielli, llambat inkandeshente ose qirinjtë), burimi i rrezatimit infra të kuqe mund të jenë pajisjet e gjendjes së ngurtë - LED IR, lazer. Rrezatimi në rrezen infra të kuqe ka një sërë veçorish që i bëjnë ato 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 ose zbulohen nga syri i njeriut.
  • Marrësit IR janë gjithashtu të lirë dhe të vegjël në madhësi.
  • Ndërhyrje e ulët pasi transmetuesi dhe marrësi janë të sintonizuar në të njëjtën frekuencë.
  • Në mungesë Ndikimi negativ mbi shëndetin e njeriut.
  • Reflektim i lartë nga shumica e materialeve.
  • Emituesit IR nuk ndikojnë në funksionimin e pajisjeve të tjera.

Telekomanda funksionon si më poshtë. Kur shtypni butonin, 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 paketave të pulsit 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 që përmban një fotodetektor (fotodiodë), amplifikues, një filtër brezi, një demodulator (një detektor që ju lejon të izoloni zarfin e sinjalit) dhe një tranzistor dalës. Gjithashtu ka filtra - elektrikë dhe optikë. Pajisjet e tilla funksionojnë në një distancë deri në 40 metra. Metoda IR e transmetimit të të dhënave ekziston në shumë pajisje: Pajisje shtëpiake, në 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 një larmi të madhe marrësish të ndryshëm, por është më mirë të përdorni TSOP312 ose të tjerë të përshtatshëm për Arduino. Të dhënat nga telekomanda te marrësi mund të transmetohen nëpërmjet protokollit RC5 ose NEC.

Për të përcaktuar se cila këmbë i përket, duhet të shikoni sensorin nga ana e marrësit. Pastaj në marrës kontakti qendror është i tokëzuar, në të majtë është dalja në mikrokontrollues, në të djathtë është fuqia.

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

Lidhja e marrësit IR me Arduino

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

Kështu duket diagrami me modulin marrës 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. Pas shkarkimit, kopjoni skedarët në dosjen \arduino\libraries. Për t'u lidhur me skicën tuaj, duhet të shtoni biblioteka skedari i kokës#përfshi .

Për të lexuar informacionin, përdorni shembullin IRrecvDumpV2 nga biblioteka. Nëse telekomanda ekziston tashmë në listën e atyre të njohura, atëherë skanimi nuk kërkohet. Për të lexuar kodet duhet të ekzekutoni Mjedisi ARduino IDE dhe hapni shembullin IRrecvDemo nga IRremote.

Ekziston një bibliotekë e dytë për të punuar me sinjale IR - kjo është IRlib. Në funksionalitet është i ngjashëm 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.

Operatori decode_results nevojitet për të caktuar rezultatet e emrit të ndryshores në sinjalin e marrë.

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

Pastaj, pasi të keni ngarkuar programin, duhet të hapni monitorin serial dhe të shtypni butonat në telekomandë. do të shfaqet në ekran kode të ndryshme. Ju duhet të bëni një shënim që tregon se me cilin buton korrespondon kodi i marrë. Është më i përshtatshëm për të regjistruar të dhënat e marra në një tabelë. Ky kod më pas mund të shkruhet në program në mënyrë që pajisja të mund të kontrollohet. 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ë kur ngarkoni një program, shfaqet gabimi "TDK2 nuk u deklarua në fushën e tij". Për ta rregulluar atë, duhet të shkoni te Explorer, të shkoni te dosja në të cilën është instaluar aplikacioni Arduino IDE dhe fshini skedarët IRremoteTools.cpp dhe IRremoteTools.h. Pas kësaj, 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ërdoruesit. Mund të veprojë si telekomandë celular, tabletë ose kompjuter - gjithçka që ju nevojitet është softuer special. Duke përdorur Arduino, ju mund të centralizoni të gjithë kontrollin. Me një buton në telekomandë mund të kryeni disa veprime në të njëjtën kohë - për shembull, ndizni televizorin dhe Blu-Ray në të njëjtën kohë.

Kur krijoni pajisje për të punuar me telekomandat IR, një mjet me të cilin mund të regjistroni dhe analizoni sinjalet IR është shumë i nevojshëm. Një mjet i tillë, në mënyrë ideale, mund të jetë një oshiloskop dixhital ose analizues logjik, por jo të gjithë i kanë këto pajisje dhe blerja e tyre me qëllim është e shtrenjtë. Si të jesh? Ekziston një zgjidhje shumë e thjeshtë - një kartë zanore e kompjuterit! Ne do të regjistrojmë sinjalin duke e përdorur atë.

Përveç kartës së zërit (e cila, shpresoj, është në kompjuterin tuaj), do të na duhet një marrës i sinjalit IR. Do të ishte më e saktë të montoni një qark marrës të plotë me TSOP, por ne do ta bëjmë atë sa më thjesht të jetë e mundur - do të marrim LED-in më të zakonshëm IR (të njëjtin që është në telekomandën tuaj) si marrës IR. 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 (e preva kordonin me lidhësin nga një mikrofon i vjetër që nuk funksionon).

LED lidhet si më poshtë:

Si rezultat, marrim pajisjen e mëposhtme:

Fusni spinën në hyrjen e mikrofonit (ajo Ngjyra rozë). Në cilësimet e kartës së zërit, zgjidhni mikrofonin si pajisje hyrëse, ktheni kontrollin e fitimit në maksimum dhe kontrolloni kutinë e fitimit shtesë. Për të kontrolluar, drejtojeni telekomandën te marrësi LED (duhet ta afroni sa më afër telekomandës), shtypni tastin - 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 me hyrje në linjë karta e zërit - gjithçka do të funksionojë njësoj, vetëm amplituda e sinjalit të regjistruar do të bëhet shumë më e vogël.


Tani na duhet një program për të regjistruar zërin.
Çdo program që keni do të jetë i përshtatshëm për këto qëllime. Nëse nuk keni një program të preferuar për të punuar me zërin, unë sugjeroj një të vogël dhe program falas— Wavosaur (http://www.wavosaur.com/) Programi funksionon pa instalim dhe ka madhësia e vogël- sa te dua :).

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

Pas fillimit të programit, ndizni treguesin e nivelit (vizorin në anën e djathtë të dritares) dhe kontrolloni përgjigjen 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, shkoni te cilësimet Konfigurimi i audios/Audio in). Më pas, shtypni ikonën e regjistrimit, afrojeni telekomandën sa më afër LED-së marrëse, shtypni butonin e telekomandës dhe mbajeni për disa sekonda. Çaktivizo regjistrimin - U krye! Në dritare do të shohim një skanim të sinjalit IR të marrë. Ajo që është interesante është se sinjali tashmë do të zbulohet - ne nuk do të shohim frekuencën e bartësit, por vetëm sinjalin e dobishëm. Kjo ndodh sepse kapacitetet hyrëse të hyrjes së mikrofonit nuk kanë kohë për t'u rimbushur.

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

Për shembull, sinjal nga telekomanda ime e televizorit (format NEC):

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

P.S.
Kërkesa e madhe! Nëse montoni një marrës të tillë, ruani paketat e telekomandave tuaja dhe ma dërgoni me email (në skedën "Rreth projektit") - kjo do të ndihmojë shumë në përmirësimin e algoritmit të marrësit universal. Në emrin e skedarit, tregoni se nga është telekomanda dhe nga prodhuesi (për shembull: tv-sony.wav).


Më shumë rreth punës me telekomandat IR!
Unë propozova opsionin më të thjeshtë për të "ndjerë" 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 DvzRcEditor, të cilën e hodha mobi. Programin e ka bërë dikush Dvz 2010(për fat të keq nuk ka koordinata për të, ndoshta dikush e di?).


- Një program për analizimin dhe përsëritjen e sinjaleve IR.
Programi ju lejon të regjistroni dhe luani mesazhe IR duke përdorur hyrjen e mikrofonit dhe daljen audio. Ka mjete për analizimin e mesazheve IR dhe krijimin e një baze të dhënash të mesazheve të telekomandës (ekziston një bazë të dhënash të vogël për kontrolle të ndryshme në distancë). Zgjidhje interesanteështë mbështetje për telekomandën tuaj të krijuar në ATtiny2313.


Telekomanda ka 7 çelësa me të cilët mund të vendosni çdo komandë nga ato të analizuara, dhe vetë programi mund të regjistrojë 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ë gjithë internetin burim i dedikuar për telekomandat IR. Përmban shumë informacione të dobishme, harduer dhe zgjidhje softuerike për të gjitha rastet. Ja çfarë shkruajnë autorët për SlyControl:
- Kjo program universal për të kontrolluar çdo gjë duke përdorur një kompjuter.

Për çfarë mund të përdoret kjo:
— kontrolli i çdo programi nga çdo telekomandë (komandë në distancë), nga një tastierë multimediale duke përdorur çelësa ose një levë
— emulimi i tastierës dhe miut nga çdo telekomandë
— planifikues (jo vetëm ekzekutoni programin sipas kohës, por kryeni edhe disa veprime me të)
- fikja e kompjuterit me kohëmatës ose ngjarje
— dritat në apartament mund të ndizni edhe nga telekomanda, mjafton të shtoni shtojcën përkatëse 😉

Ekziston gjithashtu një program për burimin RCExplorer 2.1— një bazë të dhënash me telekomandë IR (baza e të dhënave përmban më shumë se 200 hyrje).


Programi ju lejon të:
— Merr sinjale nga telekomanda duke përdorur kartë zëri, porta COM, IgorPlug-USB ose IgorPlug2
- Analizoni sinjalin në detaje - (modulimi, karakteristikat e kohës, veçoritë e kodimit, kodet e përsëritjes, etj., të gjitha të njohura për mua janë të mbështetura ky moment protokollet, programi mund të punojë edhe 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 duke përdorur të dhëna nga baza e të dhënave nëpërmjet portës COM

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

(Vizituar 20,417 herë, 9 vizita sot)

Telekomanda me rreze infra të kuqe është një nga më të mirat mënyra të thjeshta ndërveprim me pajisjet elektronike. Pra, pothuajse në çdo shtëpi ka disa pajisje të tilla: TV, Qendra muzikore, video player, kondicioner. Por më së shumti aplikim interesant telekomandë infra të kuqe— telekomandë e robotit. Në fakt, në këtë mësim do të përpiqemi të zbatojmë këtë metodë kontrolli duke përdorur kontrolluesin popullor Arduino Uno.

1. Telekomandë IR

Çfarë duhet për të mësuar një robot që t'i bindet një telekomande me rreze infra të kuqe (IR)? Së pari, na duhet vetë telekomanda. Mund të përdorni një telekomandë të rregullt të televizorit ose mund të blini një telekomandë miniaturë për radion e makinës suaj. Këto lloje të telekomandave përdoren shpesh për të kontrolluar robotët.

Kjo telekomandë ka 10 butona dixhital dhe 11 butona për manipulimin e muzikës: volum, rikthim, luaj, ndalim, etj. Më se e mjaftueshme për qëllimet tona.

2. Sensori IR

Së dyti, për të marrë një sinjal nga telekomanda, na duhet një sensor i veçantë IR. Në përgjithësi, ne mund të zbulojmë rrezatim infra të kuqe me një fotodiodë/fototransistor konvencional, por ndryshe nga ai, sensori ynë IR percepton sinjalin infra të kuqe vetëm në një frekuencë prej 38 kHz (ndonjëherë 40 kHz). Është kjo veti që lejon sensorin të injorojë shumë zhurmë të dritës së jashtme nga llambat e ndriçimit dhe dielli.

Për këtë tutorial ne do të përdorim sensorin popullor IR VS1838B, e cila ka karakteristikat e mëposhtme:

  • frekuenca e bartësit: 38 kHz;
  • Tensioni i furnizimit: 2,7 - 5,5 V;
  • Konsumi aktual: 50 µA.

Mund të përdoren sensorë të tjerë, për shembull: TSOP4838, TSOP1736, SFH506.

3. Lidhja

Sensori ka tre priza (tre këmbë). Nëse shikoni sensorin nga ana e marrësit të sinjalit IR, siç tregohet në figurë,

  • atëherë në të majtë do të ketë një dalje në kontrollues,
  • në qendër - kontakt negativ i fuqisë (tokë),
  • dhe në të djathtë - kontakti pozitiv i fuqisë (2.7 - 5.5V).

Diagrami skematik i lidhjes

Pamja e paraqitjes

4. Programi

Pasi të kemi lidhur sensorin IR, ne do të shkruajmë një program për Arduino Uno. Për ta bërë këtë, ne do të përdorim bibliotekën standarde IRremote, i cili është krijuar posaçërisht për të thjeshtuar punën me marrjen dhe transmetimin e sinjaleve IR. Duke përdorur këtë bibliotekë, ne do të pranojmë komanda nga telekomanda dhe për të filluar, thjesht i shfaqim ato në dritaren e monitorit porta serike. Ky program do të jetë i dobishëm për ne për të kuptuar se çfarë kodi jep secili buton.

#include "IRremote.h" IRrecv irrecv(2); // tregoni pinin me të cilin është lidhur marrësi dekode_rezultatet; void setup() ( Serial.begin(9600); // vendosni shpejtësinë e portës COM irrecv.enableIRIn(); // filloni të merrni ) void loop() ( if (irrecv.decode(&results)) ( // nëse të dhënat e mbërritura Serial .println(results.value, HEX); // printoni të dhënat irrecv.resume(); // pranoni komandën tjetër ) )

Ngarkoni programin në Arduino. Pas kësaj, ne përpiqemi të marrim komanda nga telekomanda. Hapni monitorin e portës serike (Ctrl+Shift+M), merrni telekomandën dhe drejtojeni te sensori. Duke shtypur butona të ndryshëm, ne vëzhgojmë kodet që u korrespondojnë këtyre butonave në dritaren e monitorit.

Problem me ngarkimin e programit

Në disa raste, kur përpiqeni të ngarkoni një program në kontrollues, mund të shfaqet një gabim:

TDK2 nuk ishte deklaruar në objektin e tij

Për ta rregulluar atë, thjesht fshini dy skedarë nga dosja e bibliotekës. Le të shkojmë te eksploruesi. Shkoni te dosja ku është instaluar aplikacioni Arduino IDE (me shumë mundësi "C:\Program Files (x86)\Arduino"). Pastaj në dosjen e bibliotekës:

…\Arduino\libraries\RobotIRremote

Dhe fshini skedarët: IRremoteTools.cpp Dhe IRremoteTools.h. Më pas, ne rifillojmë Arduino IDE dhe përpiqemi ta ngarkojmë përsëri programin në kontrollues.

5. Kontrolloni LED-in duke përdorur telekomandën IR

Tani që e dimë se cilat kode korrespondojnë me butonat e telekomandës, ne përpiqemi të programojmë kontrolluesin që të ndezë dhe fikë LED kur shtypen butonat e volumit. Për ta bërë këtë, na duhen kode (mund të ndryshojnë në varësi të telekomandës):

  • FFA857 - rrit volumin;
  • FFE01F - zvogëloni volumin.

Si LED, ne përdorim LED-in e integruar në pinin nr. 13, kështu që diagrami i lidhjes do të mbetet i njëjtë. Pra, programi:

#include "IRremote.h" IRrecv irrecv(2); // tregoni pinin me të cilin është lidhur marrësi dekode_rezultatet; void setup() (irrecv.enableIRIn(); // filloni marrjen ) void loop() ( if (irrecv.decode(&results)) ( // nëse të dhënat mbërritën kaloni (rezultatet.vlera) (rasti 0xFFA857: digitalWrite( 13, LARTË); pushim; rasti 0xFFE01F: dixhitalWrite(13, LOW); break; ) irrecv.resume(); // prano komandën tjetër ) )

Ne e ngarkojmë atë në Arduino dhe e testojmë. Klikoni vëll+— LED ndizet. Klikoni vol-- shkon jashtë. Tani, duke e ditur se si funksionon gjithçka, ju mund të kontrolloni motorët e robotëve ose pajisje të tjera mikroelektronike shtëpiake në vend të një LED!

Ka shumë artikuj në internet se si të krijoni telekomandën tuaj duke përdorur 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 e telefonit Android janë me qëllime të dyfishta, por shikoni videon.



Telekomanda është shumë e përshtatshme në atë që pothuajse të njëjtat butona në ekran përdoren për të kontrolluar televizorin dhe luajtësin. Një ndryshim është se " AV"në modalitetin e kontrollit të televizorit ndryshon në një buton" " (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 përdora telekomandën për televizorin ERGO dhe telekomandën për media playerin DUNE HD TV101W.

Për të marrë të dhëna nga telekomanda që përdora sensor infra të kuqe TSOP1138 (analog i TSOP4838) me një frekuencë funksionimi prej 38 kHz dhe e lidhi atë me bordin Arduino sipas skemës:

Kjo skicë nuk do të nevojitet 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 në rreshtin int RECV_PIN = 11; tregoni numrin tonë të pinit 4

Pas ngarkimit të skicës, hapni "monitorin e portit" dhe, duke shtypur butonat e telekomandës, shikoni të dhënat e marra.

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

E kam marrë 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ë sinjalit infra të kuqe nga bordi Arduino dhe e lidhim atë me të Moduli Bluetooth HC-05 dhe LED infra të kuqe sipas diagramit në foto.

Pas kësaj, ne kalojmë drejtpërdrejt në skicë.

Skicë

#përfshi 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; ) 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.send7FD827, 32); , 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 së luajtësit të mediave nëse (x == 97) (irsend.sendNEC(0xFDC23D, 32); vonesë(40); ) nëse (x == 98) ( irsend. 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ë redaktoni kodet e butonave, përkatësisht në rreshtat:

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

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

Pas redaktimit të skicës duke përdorur kodet tuaja të butonave, ngarkoni skicën në Pllaka Arduino dhe vazhdoni me instalimin e aplikacionit në telefonin tuaj.

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

Në fillim do të kemi një ekran me të kuqe ikonë bluetooth në këndin e poshtëm djathtas, që tregon se nuk jemi të lidhur me pajisjen tonë.

Pas kësaj, klikoni në këtë ikonë. Ne duhet të shohim një dritare me një listë të të gjitha të disponueshme pajisje bluetooth, ku zgjedhim pajisjen tonë për t'u lidhur.

Tani jemi kthyer sërish ekrani kryesor dhe ne tashmë mund të kontrollojmë televizorin:

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

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 mjaft mirë, me sa duket. Pres komente për artikullin.

Në këtë mësim do të shikojmë lidhjen e një marrësi IR me Arduino. Ne do t'ju tregojmë se cila bibliotekë duhet të përdoret për një marrës IR, do të demonstrojmë një skicë për testimin e funksionimit të një marrësi infra të kuqe nga një telekomandë dhe do të analizojmë komandat në C++ për të marrë një sinjal. Le të vërejmë menjëherë 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 e rrezatimit infra të kuqe tani përdoren gjerësisht në Pajisje shtëpiake, falë çmim i përballueshëm, thjeshtësia dhe lehtësia e përdorimit. Këto pajisje ju lejojnë të kontrolloni pajisjet duke përdorur një telekomandë dhe mund të gjenden në pothuajse çdo lloj pajisjeje. Por pavarësisht kësaj, moduli Bluetooth gradualisht po fiton gjithnjë e më shumë popullaritet.

Parimi i funksionimit të një marrësi IR. Përpunimi i sinjalit nga telekomanda

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 gjetësit të rrezes për Arduino. Zakonisht marrësi IR ka tre këmbë dhe përbëhet nga elementët e mëposhtëm: Fotodiodë PIN, përforcues, filtër brez-pass, detektor amplitudë, filtër integrues dhe transistor dalës.

Nën ndikimin e rrezatimit infra të kuqe në një fotodiodë, e cila ka ndërmjet fq Dhe n rajonet krijuan një rajon shtesë të gjysmëpërçuesit ( i-rajon), rryma fillon të rrjedhë. Sinjali shkon në një përforcues dhe më pas në një filtër brezpass, i cili është i akorduar në një frekuencë fikse: 30; 33; 36; 38; 40 dhe 56 kilohertz dhe mbron marrësin nga ndërhyrjet. Ndërhyrjet mund të shkaktohen nga çdo pajisje shtëpiake.

Në mënyrë që sinjali nga telekomanda të merret nga marrësi IR Arduino, telekomanda duhet të jetë në të njëjtën frekuencë siç është vendosur filtri në marrësin IR. Prandaj, jo çdo telekomandë do të funksionojë. Ju duhet të zgjidhni një marrës IR dhe një transmetues IR me të njëjtën frekuencë. Pas filtrit, sinjali shkon në një detektor amplitudë që integron filtrin dhe transistorin e daljes.

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

Kutitë 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 këmbë, të cilat janë të lidhura me - GND, 5V dhe A0. Ne rekomandojmë fillimin e përdorimit të 3,3 volt, në mënyrë që të mos digjet sensori IR gjatë konfigurimit.

Për këtë mësim do të na duhen detajet e mëposhtme:

  • Pllaka Arduino Uno / Arduino Nano / Arduino Mega;
  • dërrasë buke;
  • marrës IR;
  • telekomandë;
  • 1 LED dhe rezistencë 220 Ohm;
  • telat mashkull-mashkull dhe mashkull-femër.

Diagrami i lidhjes së marrësit IR me portën analoge Arduino

Lidhni marrësin IR sipas diagramit të paraqitur më sipër dhe lidhni LED-të me kunjat 12 dhe 13. Përpara se të shkarkoni programin, do t'ju duhet të instaloni bibliotekën IRremote.h, nëse nuk është instaluar tashmë. Kjo bibliotekë nuk zbatohet për bibliotekat standarde mjedisi Programimi Arduino IDE. Ju mund të shkarkoni bibliotekën IRremote.h dhe skicën e përfunduar në një arkiv nga Google Drive lidhje .

Skicë për marrësin IR Arduino:

#përfshi // lidhni bibliotekën për marrësin IR IRrecv irrecv(A0); // tregoni pinin me të cilin është lidhur marrësi IR rezultatet e dekodimit të rezultateve; konfigurimi i pavlefshëm () // konfigurimi i procedurës (irrecv.enableIRIn (); // filloni të merrni sinjal 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 (eng. "input") Seriali.fillim(9600); // lidhni monitorin e portit) void loop () // cikli i procedurës ( if (irrecv.deshifroj (&rezultatet)) // nëse të dhënat kanë mbërritur, ekzekutoni komandat( Serial .println (rezultatet.vlera); // dërgoni të dhënat e marra në port // ndizni dhe fikni LED-të, në varësi të sinjalit të marrë if (results.value == 16754775) ( digitalWrite (13, LARTË); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, I LARTË); ) nëse (rezultatet.vlera == 16724175) (Dixhital Shkruani (12, ULËT); ) irrecv.rifillimi (); // pranoj sinjali i radhës 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 i cakton rezultatet e emrit të ndryshores sinjaleve të marra nga telekomanda.

Sensori IR mund të përdoret në shumë pajisje në mikrokontrolluesin Arduino, duke përfshirë telekomandimin e një servo drive në Arduino nga një marrës IR. Kur konfiguroni, duhet të aktivizoni monitorin e portit 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ë barazimit të dyfishtë në kushtet if().

Gjithashtu lexoni shpesh:

Artikujt më të mirë mbi këtë temë