Arduino: udhibiti wa mbali wa infrared na mpokeaji. Kudhibiti arduino na udhibiti wa mbali wa IR

Kuna makala nyingi kwenye Mtandao kuhusu jinsi ya kutengeneza kidhibiti chako cha mbali cha TV kwa kutumia Arduino, lakini nilihitaji kidhibiti cha mbali ili kudhibiti TV yangu na kicheza media. Faida kuu ya yangu udhibiti wa kijijini kwa wote Shida ni kwamba vitufe kwenye programu ya simu ya Android vina kusudi mbili, lakini angalia video.



Udhibiti wa kijijini ni rahisi sana kwa kuwa karibu vifungo sawa kwenye skrini hutumiwa kudhibiti TV na mchezaji. Tofauti moja ni kwamba " AV"katika hali ya udhibiti wa TV inabadilika hadi kitufe" " (simama) wakati wa kubadili hali ya udhibiti wa mchezaji. Picha zinaonyesha njia mbili, upande wa kushoto ni hali ya udhibiti wa TV, upande wa kulia ni mode ya udhibiti wa mchezaji.

Kweli, sasa nitakuambia kidogo juu ya kuunda udhibiti wa mbali kama huo. Kwa kifaa nilitumia kidhibiti cha mbali cha ERGO TV na kidhibiti cha mbali cha kicheza media cha DUNE HD TV101W.

Ili kupokea data kutoka kwa rimoti nilizotumia sensor ya infrared TSOP1138 (inayofanana na TSOP4838) kwenye mzunguko wa uendeshaji 38 kHz na kuiunganisha kwa bodi ya Arduino kulingana na mchoro:

Mchoro huu hautahitajika ili kuamua encoding ya maambukizi ya data na kusoma kanuni ya vifungo vya udhibiti wa kijijini.

Katika mchoro katika mstari int RECV_PIN = 11; onyesha nambari yetu ya siri 4

Baada ya kupakia mchoro, fungua "mfuatiliaji wa bandari" na, ukisisitiza vifungo vya udhibiti wa kijijini, angalia data iliyopokelewa.

Picha inaonyesha mfano wa kuchanganua kitufe cha kuwasha/kuzima kutoka kwa kidhibiti cha mbali cha TV na kidhibiti cha mbali cha kichezaji. Sasa tunaunda meza kwa nambari za kifungo.

Nimeipata kama kwenye picha hapo juu. Chini ya maandishi TV Nambari za kifungo cha udhibiti wa kijijini cha TV; chini ya maandishi Mchezaji- nambari kutoka kwa kidhibiti cha mbali cha kicheza media.

Sasa tunatenganisha mpokeaji wetu wa ishara ya infrared kutoka kwa bodi ya Arduino na kuiunganisha nayo Moduli ya Bluetooth HC-05 na LED ya infrared kulingana na mchoro kwenye picha.

Baada ya hayo, tunahamia moja kwa moja kwenye mchoro.

Mchoro

#pamoja na tuma irsend; int y = 1; usanidi batili() ( Serial.begin(9600); ) kitanzi batili() (ikiwa (Serial.available() > 0) ( int x = Serial.soma(); ikiwa (x == 49) ( y = 1; ) ikiwa (x == 50) ( y = 2; ) ikiwa (y == 1) ( // vitufe misimbo ya kidhibiti cha mbali cha TV ikiwa (x == 97) ( irsend.sendNEC(0x807F08F7, 32); kuchelewa (40 ); ) ikiwa (x == 98) ( irsend.sendNEC(0x807FA857, 32); chelewesha(40); ) ikiwa (x == 99) ( irsend.sendNEC(0x807F708F, 32); chelewesha(40);) (x == 100) ( irsend.sendNEC(0x807FF00F, 32); chelewesha(40); ) ikiwa (x == 101) ( irsend.sendNEC(0x807F30CF, 32); chelewesha(40); ) ikiwa (x == 102) ( irsend.sendNEC(0x807FB04F, 32); chelewesha(40); ) ikiwa (x == 103) ( irsend.sendNEC(0x807F9867, 32); chelewesha(40); ) ikiwa (x == 104) ( tuma .tumaNEC(0x807F58A7, 32) ikiwa (x == 105) ( irsend.sendNEC(0x807F38C7); chelewesha(40); 32); ) ( irsend.sendNEC(0x807F48B7, 32); chelewesha(40); ) ikiwa (x == 108) ( irsend.sendNEC(0x807FB847, 32); chelewesha(40); ikiwa (x == 109) ( irsend.tumaNEC (0x807F6897, 32); kuchelewa (40); ) ) ikiwa (y == 2) ( //misimbo ya vibonye vya udhibiti wa mbali wa kicheza media ikiwa (x == 97) ( irsend.sendNEC(0xFDC23D, 32); chelewesha(40); ) ikiwa (x == 98) ( irsend. sendNEC(0xFDE01F, 32); chelewesha(40); ikiwa (x == 99) ( irsend.sendNEC(0xFD18E7, 32); delay(40); ) ikiwa (x == 100) ( irsend.sendNEC( 0xFDE817, 32) ikiwa (x == 101) ( irsend.sendNEC(0xFDA857, 32); chelewesha(40); ) ikiwa (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; kuchelewa (40) ) ikiwa (x == 103) ( irsend.sendNEC(0xFDA857, 32); chelewesha(40); ) ikiwa (x == 104) ( irsend.sendNEC(0xFD6897, 32); chelewesha(40) ); ) ikiwa (x == 105) ( irsend.sendNEC(0xFDE817, 32); chelewesha(40); ) ikiwa (x == 106) ( irsend.sendNEC(0xFD18E7, 32); kuchelewa(40); ) ikiwa (x == 106) ( irsend.sendNEC(0xFD18E7, 32); chelewesha(40); ) (x == 107) ( irsend.sendNEC(0xFD9867, 32); chelewesha(40); ) ikiwa (x == 108) ( irsend.sendNEC(0xFD28D7, 32); chelewesha(40); ) ikiwa (x == 109) ( irsend.sendNEC(0xFD20DF, 32); kuchelewa(40); ) ) ) )


Katika mchoro utahitaji kuhariri misimbo ya kifungo, yaani katika mistari:

Iwapo (x == 97) ( irsend.sendNEC(0x807F08F7, 32); kuchelewa(40);
Badilisha thamani 807F08F7 kuwa:

Ikiwa (y == 1) ( //kitufe cha misimbo ya kidhibiti cha mbali cha TV ikiwa (x == 97) ( irsend.sendNEC(0x12345678, 32); chelewesha(40); )
Ambapo 12345678 ndio msimbo wa kitufe chako.

Baada ya kuhariri mchoro kwa kutumia misimbo yako ya vitufe, pakia mchoro kwa Bodi ya Arduino na uendelee kusakinisha programu kwenye simu yako.

Tunawasha Bluetooth kwenye simu, tunatafuta kifaa chetu, tunaunda jozi, kisha kuzindua programu Piga kwenye simu.

Wakati wa kuanza tutakuwa na skrini iliyo na nyekundu ikoni ya bluetooth kwenye kona ya chini ya kulia, ambayo inaashiria kwamba hatujaunganishwa kwenye kifaa chetu.

Baada ya hayo, bonyeza kwenye ikoni hii. Tunapaswa kuona dirisha na orodha ya yote inapatikana vifaa vya bluetooth, ambapo tunachagua kifaa chetu cha kuunganisha.

Sasa tumerudi tena skrini kuu na tayari tunaweza kudhibiti TV:

Ili kubadilisha hadi modi ya kudhibiti tunahitaji kubonyeza kitufe kilichoandikwa "Mchezaji". Kama nilivyosema hapo awali, kitufe chetu kilichoandikwa "AV" kitabadilika kuwa kitufe " ":

Ili kukata muunganisho wa kifaa chetu, shikilia tu kitufe cha "Nguvu" kwa sekunde chache.

Naam, picha chache za kifaa changu kilichomalizika.

Iligeuka vizuri kabisa, inaonekana. Nasubiri maoni kwenye makala.

Wakati wa kuunda vifaa vya kufanya kazi na vidhibiti vya mbali vya IR, chombo ambacho unaweza kurekodi na kuchambua ishara za IR ni muhimu sana. Chombo kama hicho, kwa kweli, kinaweza kuwa oscilloscope ya dijiti au mchanganuzi wa mantiki, lakini sio kila mtu ana vifaa hivi, na kuvinunua kwa makusudi ni ghali. Jinsi ya kuwa? Kuna suluhisho rahisi sana - kadi ya sauti ya kompyuta! Tutarekodi ishara kwa kuitumia.

Mbali na kadi ya sauti (ambayo, natumaini, iko kwenye kompyuta yako), tutahitaji mpokeaji wa ishara ya IR. Itakuwa sahihi zaidi kukusanya mzunguko kamili wa kipokeaji na TSOP, lakini tutafanya kwa urahisi iwezekanavyo - tutachukua IR LED ya kawaida (ile ile iliyo kwenye udhibiti wako wa mbali) kama kipokea IR. Unaweza, bila shaka, kuchukua photodiode ya IR, lakini IR LED ni rahisi kupata. LED ya IR lazima iunganishwe moja kwa moja na pembejeo ya kipaza sauti ya kadi ya sauti. Ili kufanya hivyo, unahitaji kuziba 3.5mm na kipande cha waya yenye ngao (mimi kukata kamba na kontakt kutoka kipaza sauti ya zamani isiyo ya kazi).

LED imeunganishwa kama ifuatavyo:

Kama matokeo, tunapata kifaa kifuatacho:

Ingiza plagi kwenye pembejeo ya kipaza sauti (it Rangi ya Pink) Katika mipangilio ya kadi ya sauti, chagua maikrofoni kama kifaa cha kuingiza, geuza kidhibiti cha faida hadi cha juu zaidi na uteue kisanduku faida ya ziada. Kuangalia, onyesha udhibiti wa kijijini kwenye mpokeaji wa LED (unahitaji kuleta karibu iwezekanavyo kwa udhibiti wa kijijini), bonyeza kitufe - mibofyo inapaswa kusikilizwa kwenye wasemaji.

Ikiwa, kwa sababu yoyote, huna pembejeo ya maikrofoni(kwa mfano, kwenye kompyuta ndogo) - unganisha mpokeaji pembejeo ya mstari kadi ya sauti - kila kitu kitafanya kazi sawa, tu amplitude ya ishara iliyorekodi itakuwa ndogo zaidi.


Sasa tunahitaji programu ya kurekodi sauti.
Mpango wowote ulio nao utafaa kwa madhumuni haya. Ikiwa huna programu unayopenda ya kufanya kazi na sauti, napendekeza programu ndogo na ya bure - Wavosaur (http://www.wavosaur.com/) Programu hiyo inafanya kazi bila usakinishaji na ina ukubwa mdogo- jinsi ninavyopenda :).

Programu ya kufanya kazi na sauti.

Baada ya kuanza programu, fungua kiashiria cha ngazi (mtawala upande wa kulia wa dirisha) na uangalie majibu kwa ishara za udhibiti wa kijijini. Kwa msingi, kila kitu kinapaswa kufanya kazi - mtawala ataondoka kwa kiwango kutoka kwa ishara zilizopokelewa (ikiwa hakuna majibu, nenda kwa mipangilio. Usanidi wa sauti/Sauti ndani) Ifuatayo, bonyeza ikoni ya kurekodi, leta kidhibiti cha mbali karibu iwezekanavyo na LED inayopokea, bonyeza kitufe cha udhibiti wa mbali na ushikilie kwa sekunde kadhaa. Zima kurekodi - Imekamilika! Katika dirisha tutaona scan ya ishara ya IR iliyopokea. Kinachovutia ni kwamba ishara tayari itagunduliwa - hatutaona frequency ya mtoa huduma, lakini tu ishara muhimu. Hii hutokea kwa sababu uwezo wa pembejeo wa ingizo la maikrofoni hauna wakati wa kuchaji tena.

Ishara iliyopokelewa inaweza kupunguzwa kwa wakati, amplitude na, ambayo ni rahisi sana, kwa kuonyesha kipindi fulani, unaweza kuona mara moja muda wake. Ishara iliyopokelewa inaweza kuokolewa (ikiwezekana katika muundo wa wav - hakutakuwa na upotoshaji) au kusafirishwa kwa MP3, maandishi, faili ya binary(kitu muhimu!).

Kwa mfano, ishara kutoka kwa udhibiti wangu wa mbali wa TV (umbizo la NEC):

Vipindi vya wakati wote vinaonekana kutoka kwenye picha, unaweza hata kuhesabu anwani ya udhibiti wa kijijini na msimbo wa amri ya kifungo - kila kitu ni wazi na kinaeleweka.

P.S.
Ombi kubwa! Ikiwa unakusanya mpokeaji kama huyo, hifadhi vifurushi vya vidhibiti vyako vya mbali na unitumie kwa barua pepe (kwenye kichupo cha "kuhusu mradi") - hii itasaidia sana kuboresha algorithm ya mpokeaji wa ulimwengu wote. Katika jina la faili, onyesha kidhibiti cha mbali kinatoka wapi na mtengenezaji (kwa mfano: tv-sony.wav).


Zaidi kuhusu kufanya kazi na vidhibiti vya mbali vya IR!
Nilipendekeza chaguo rahisi zaidi "kuhisi" ishara kutoka kwa udhibiti wa kijijini wa IR, lakini kuna ufumbuzi mwingi ambao unaweza kufanya mengi zaidi! Pokea mawimbi ya IR, changanua, hifadhi, cheza tena, panga vidhibiti vyako vya mbali, dhibiti kompyuta yako... Sehemu hii itakuwa na viungo vya suluhu kama hizo.

1. DvzRcEditor
Programu itaenda kwanza DvzRcEditor, ambayo niliitupa mobi. Mpango huo ulifanywa na mtu Dvz 2010(kwa bahati mbaya hakuna kuratibu kwake, labda mtu anajua?).


- Mpango wa kuchambua na kurudia ishara za IR.
Programu hukuruhusu kurekodi na kucheza ujumbe wa IR kwa kutumia ingizo la maikrofoni na pato la sauti. Kuna zana za kuchambua ujumbe wa IR na kuunda hifadhidata ya ujumbe wa udhibiti wa kijijini (kuna hifadhidata ndogo ya vidhibiti mbalimbali vya mbali). Suluhisho la kuvutia ni msaada kwa udhibiti wako wa mbali uliotengenezwa kwenye ATtiny2313.


Udhibiti wa kijijini una funguo 7 ambazo unaweza kuweka amri yoyote kutoka kwa wale waliochambuliwa, na programu yenyewe inaweza kurekodi ishara za vifungo hivi kwenye microcontroller (mradi unawasha bootloader huko kwa mara ya kwanza).

Kila kitu ni rahisi na wazi - niliipenda!


2. SlyControl.
http://slydiman.narod.ru/scr/index.htm
Huu sio hata mpango - ni rasilimali nzima ya mtandao inayotolewa kwa vidhibiti vya mbali vya IR. Ina mengi habari muhimu, vifaa na ufumbuzi wa programu kwa hafla zote. Hivi ndivyo waandishi wanaandika kuhusu SlyControl:
-Hii programu ya ulimwengu wote kudhibiti chochote kwa kutumia kompyuta.

Hii inaweza kutumika kwa nini:
- udhibiti wa programu zozote kutoka kwa udhibiti wowote wa mbali (kidhibiti cha mbali), kutoka kwa kibodi ya medianuwai kwa kutumia vitufe au kijiti cha kufurahisha
— Uigaji wa kibodi na kipanya kutoka kwa udhibiti wowote wa mbali
- mpangilio (sio tu endesha programu kulingana na wakati, lakini pia fanya vitendo kadhaa nayo)
- kuzima kompyuta kwa kipima muda au tukio
- unaweza pia kuwasha taa kwenye ghorofa kutoka kwa kidhibiti cha mbali, unahitaji tu kuongeza programu-jalizi inayofaa 😉

Pia kuna programu kwenye rasilimali RCExplorer 2.1— hifadhidata ya vidhibiti vya mbali vya IR (database ina maingizo zaidi ya 200).


Programu hukuruhusu:
- Pokea mawimbi kutoka kwa vidhibiti vya mbali kwa kutumia kadi ya sauti, bandari ya COM, IgorPlug-USB au IgorPlug2
- Changanua mawimbi kwa undani - (urekebishaji, sifa za saa, vipengele vya usimbaji, misimbo ya marudio, n.k., yote ninayojua yanatumika kwenye wakati huu itifaki, programu inaweza pia kufanya kazi na itifaki zisizojulikana.
- Onyesha ishara kwa wakati halisi na kulingana na data kutoka kwa hifadhidata
- Tafuta kidhibiti cha mbali sawa katika hifadhidata
- Toa tena amri ya udhibiti wa mbali kwa kutumia data kutoka kwa hifadhidata kupitia bandari ya COM

Kwa ujumla, hakikisha kutembelea rasilimali - itakuwa ya kuvutia.

(Walitembelewa mara 20,417, ziara 9 leo)

Udhibiti wa mbali wa infrared ni mojawapo ya wengi zaidi njia rahisi mwingiliano na vifaa vya elektroniki. Kwa hiyo, karibu kila nyumba kuna vifaa kadhaa vile: TV, Kituo cha muziki, kicheza video, kiyoyozi. Lakini matumizi ya kuvutia zaidi ya udhibiti wa kijijini wa infrared ni udhibiti wa kijijini wa roboti. Kweli, katika somo hili tutajaribu kutekeleza njia hii ya udhibiti kwa kutumia mtawala maarufu wa Arduino Uno.

1. Udhibiti wa kijijini wa IR

Je, inachukua nini ili kufundisha roboti kutii kidhibiti cha mbali cha infrared (IR)? Kwanza, tunahitaji udhibiti wa kijijini yenyewe. Unaweza kutumia kidhibiti cha mbali cha runinga cha kawaida, au unaweza kununua kidhibiti cha mbali kidogo cha redio ya gari lako. Aina hizi za udhibiti wa kijijini mara nyingi hutumiwa kudhibiti roboti.

Kidhibiti hiki cha mbali kina 10 vifungo vya nambari na vifungo 11 vya kuchezea muziki: sauti, rudisha nyuma, cheza, simamisha, nk. Zaidi ya kutosha kwa madhumuni yetu.

2. Sensor ya IR

Pili, kupokea ishara kutoka kwa udhibiti wa kijijini tunahitaji sensor maalum ya IR. Kwa ujumla, tunaweza kutambua mionzi ya infrared kwa photodiode/phototransistor ya kawaida, lakini tofauti na hiyo, kihisi chetu cha IR huona mawimbi ya infrared pekee kwa masafa ya 38 kHz (wakati mwingine 40 kHz). Ni mali hii ambayo inaruhusu sensor kupuuza kelele nyingi za mwanga kutoka kwa taa za taa na jua.

Kwa somo hili tutatumia kihisi maarufu cha IR VS1838B, ambayo ina sifa zifuatazo:

  • mzunguko wa carrier: 38 kHz;
  • voltage ya usambazaji: 2.7 - 5.5 V;
  • matumizi ya sasa: 50 µA.

Sensorer nyingine zinaweza kutumika, kwa mfano: TSOP4838, TSOP1736, SFH506.

3. Muunganisho

Sensor ina njia tatu (miguu mitatu). Ukiangalia sensor kutoka upande wa mpokeaji wa ishara ya IR, kama inavyoonyeshwa kwenye takwimu,

  • basi upande wa kushoto kutakuwa na pato kwa mtawala,
  • katikati - mawasiliano hasi ya nguvu (ardhi),
  • na upande wa kulia - mawasiliano mazuri ya nguvu (2.7 - 5.5V).

Mchoro wa mpangilio wa uunganisho

Muonekano wa mpangilio

4. Mpango

Baada ya kuunganisha sensor ya IR, tutaandika programu ya Arduino Uno. Ili kufanya hivyo, tutatumia maktaba ya kawaida Umbali wa mbali, ambayo imeundwa mahsusi ili kurahisisha kazi kwa kupokea na kusambaza ishara za IR. Kwa kutumia maktaba hii tutakubali amri kutoka kwa udhibiti wa kijijini, na kwa kuanzia, tu kuzionyesha kwenye dirisha la kufuatilia bandari ya serial. Mpango huu utakuwa na manufaa kwetu ili kuelewa ni msimbo gani kila kifungo hutoa.

#pamoja na "IRremote.h" IRrecv irrecv(2); // onyesha pini ambayo mpokeaji ameunganishwa matokeo ya decode_results; usanidi utupu() ( Serial.begin(9600); // weka kasi bandari ya COM irrecv.enableIRIn(); // anza kupokea ) batili kitanzi() (ikiwa (irrecv.decode(&matokeo)) ( // ikiwa data iliwasili Serial.println(results.value, HEX); // chapisha data irrecv.resume(); // kukubali timu inayofuata)

Pakia programu kwenye Arduino. Baada ya hayo, tunajaribu kupokea amri kutoka kwa udhibiti wa kijijini. Fungua ufuatiliaji wa mlango wa mfululizo (Ctrl+Shift+M), chukua kidhibiti cha mbali, na uelekeze kwenye kihisi. Kwa kushinikiza vifungo tofauti, tunaona kanuni zinazofanana na vifungo hivi kwenye dirisha la kufuatilia.

Tatizo limetokea wakati wa kupakia programu

Katika hali nyingine, wakati wa kujaribu kupakia programu kwenye mtawala, hitilafu inaweza kuonekana:

TDK2 haikutangazwa Katika upeo wake

Ili kuirekebisha, futa faili mbili kutoka kwa folda ya maktaba. Twende kwa mpelelezi. Nenda kwenye folda ambayo imewekwa Maombi ya Arduino IDE (uwezekano mkubwa zaidi ni "C:\Program Files (x86)\Arduino"). Kisha kwa folda ya maktaba:

…\Arduino\maktaba\RobotIRremote

Na kufuta faili: IRemoteTools.cpp Na IRremoteTools.h. Kisha tunaanza upya Kitambulisho cha Arduino, na tena tunajaribu kupakia programu kwenye mtawala.

5. Dhibiti LED kwa kutumia udhibiti wa kijijini wa IR

Sasa tunajua ni kanuni gani zinazofanana na vifungo vya udhibiti wa kijijini, tunajaribu kupanga mtawala ili kugeuka na kuzima LED wakati vifungo vya sauti vinasisitizwa. Ili kufanya hivyo tunahitaji nambari (zinaweza kutofautiana kulingana na udhibiti wa mbali):

  • FFA857 - kuongeza kiasi;
  • FFE01F - punguza sauti.

Kama LED, tunatumia LED iliyojengwa kwenye pin No. 13, hivyo mchoro wa uunganisho utabaki sawa. Kwa hivyo, programu:

#pamoja na "IRremote.h" IRrecv irrecv(2); // onyesha pini ambayo mpokeaji ameunganishwa matokeo ya decode_results; usanidi utupu() ( irrecv.enableIRIn(); // anza kupokea ) batili kitanzi() (ikiwa (irrecv.decode(&matokeo)) ( // ikiwa data imefika badilisha (matokeo.thamani) ( kisa 0xFFA857: digitalWrite( 13, JUU kesi 0xFFE01F: digitalWrite (13, LOW) irrecv.

Tunapakia kwa Arduino na kuijaribu. Bofya juzuu+- LED inawaka. Bofya ujazo-- huenda nje. Sasa, ukijua jinsi yote yanavyofanya kazi, unaweza kudhibiti injini za roboti au vifaa vingine vya kielektroniki vya nyumbani badala ya LED!

Katika somo hili tutaangalia kuunganisha kipokea IR kwa Arduino. Tutakuambia ni maktaba gani inapaswa kutumika kwa kipokezi cha IR, onyesha mchoro wa kujaribu utendakazi wa kipokezi cha infrared kutoka kwa kidhibiti cha mbali, na kuchambua amri katika C++ ili kupokea mawimbi. Hebu tuangalie mara moja kwamba sensor ya IR ya Arduino haifai kwa kila udhibiti wa kijijini, mzunguko wa ishara unaweza kutofautiana.

Kifaa cha kupokea IR. Kanuni ya uendeshaji

Wapokeaji mionzi ya infrared sasa zinatumika sana katika vyombo vya nyumbani, Shukrani kwa bei nafuu, unyenyekevu na urahisi wa matumizi. Vifaa hivi vinakuwezesha kudhibiti vifaa kwa kutumia udhibiti wa kijijini na vinaweza kupatikana karibu na aina yoyote ya vifaa. Lakini licha ya hili, moduli ya Bluetooth hatua kwa hatua inapata umaarufu zaidi na zaidi.

Kanuni ya uendeshaji wa mpokeaji wa IR. Inachakata mawimbi kutoka kwa kidhibiti cha mbali

Mpokeaji wa IR kwenye Arduino ana uwezo wa kupokea na kusindika mawimbi ya infrared kwa namna ya mipigo ya muda na masafa fulani. Inatumika katika utengenezaji wa sensor ya kizuizi na kitafuta anuwai kwa Arduino. Kwa kawaida, kipokezi cha IR kina miguu mitatu na kinajumuisha vipengele vifuatavyo: PIN photodiode, amplifier, bandpass filter, detector ya amplitude, kuunganisha chujio na transistor ya pato.

Chini ya ushawishi wa mionzi ya infrared katika photodiode, ambayo ina kati uk Na n mikoa iliunda eneo la ziada la semiconductor ( i-kanda), mkondo huanza kutiririka. Ishara inakwenda kwa amplifier na kisha kwa chujio cha bendi, ambacho kimewekwa kwa mzunguko uliowekwa: 30; 33; 36; 38; 40 na 56 kilohertz na hulinda mpokeaji kutokana na kuingiliwa. Kuingilia kunaweza kusababishwa na kifaa chochote cha kaya.

Ili ishara kutoka kwa udhibiti wa kijijini ipokewe na mpokeaji wa Arduino IR, udhibiti wa kijijini lazima uwe kwenye mzunguko sawa na kichujio katika kipokea IR kimewekwa. Kwa hiyo, si kila udhibiti wa kijijini utafanya kazi. Unapaswa kuchagua kipokezi cha IR na kisambaza data cha IR chenye masafa sawa. Baada ya chujio, ishara huenda kwa detector ya amplitude ambayo inaunganisha chujio na transistor ya pato.

Jinsi ya kuunganisha kipokeaji cha IR kwa Arduino

Nyumba za wapokeaji wa infrared zina chujio cha macho ili kulinda kifaa kutoka kwa mashamba ya nje ya umeme; Ili kuunganisha mpokeaji wa IR kwa Arduino UNO, miguu mitatu hutumiwa, ambayo imeunganishwa - GND, 5V na A0. Tunapendekeza utumie Volti 3.3 kuanza nazo ili usichome kitambuzi cha IR wakati wa kusanidi.

Kwa somo hili tutahitaji maelezo yafuatayo:

  • Arduino Uno / Arduino Nano / Arduino Mega bodi;
  • bodi ya mkate;
  • Mpokeaji wa IR;
  • udhibiti wa kijijini;
  • 1 LED na 220 Ohm resistor;
  • waya wa kiume na wa kiume na wa kike.

Mchoro wa uunganisho wa mpokeaji wa IR kwenye bandari ya analogi ya Arduino

Unganisha kipokezi cha IR kulingana na mchoro ulioonyeshwa hapo juu na uunganishe LED kwenye pini 12 na 13. Kabla ya kupakua programu, utahitaji kufunga maktaba ya IRremote.h, ikiwa haijasakinishwa tayari. Maktaba hii haitumiki kwa maktaba za kawaida mazingira Programu ya Arduino IDE. Unaweza kupakua maktaba ya IRremote.h na mchoro uliokamilika kwenye kumbukumbu moja kutoka Hifadhi ya Google kiungo.

Mchoro wa kipokeaji cha Arduino IR:

#pamoja na // unganisha maktaba kwa kipokea IR IREcv irrecv(A0); // onyesha pini ambayo mpokeaji wa IR ameunganishwa decode_results matokeo; usanidi wa utupu () // usanidi wa utaratibu ( irrecv.enableIRIn (); // kuanza kupokea ishara ya infrared pinMode(13, OUTPUT); // pini 13 itakuwa pato pinMode(12, OUTPUT); // pini 12 itakuwa pato pinMode(A0, INPUT); // pin A0 itakuwa ingizo (eng. "ingizo") Serial.begin(9600); // kuunganisha kufuatilia bandari) kitanzi tupu () // kitanzi cha utaratibu ( ikiwa (irrecv.decode (&matokeo)) // ikiwa data imefika, tekeleza amri( Serial.println(results.value); // tuma data iliyopokelewa kwenye bandari // kuwasha na kuzima LEDs, kulingana na ishara iliyopokea ikiwa (matokeo.thamani == 16754775) ( digitalWrite (13, HIGH); ) ikiwa (matokeo.thamani == 16769055) ( digitalWrite (13, CHINI); ) ikiwa (matokeo.thamani == 16718055) (DijitaliAndika (12, 12, CHINI); JUU ) ikiwa (matokeo.thamani == 16724175) (DijitaliAndika (12, CHINI); ) irrecv.resume (); // pokea ishara inayofuata kwenye mpokeaji wa IR } }

Maelezo ya kanuni:

  1. Maktaba ya IRremote.h ina seti ya amri na inakuwezesha kurahisisha mchoro;
  2. Taarifa ya decode_results inapeana matokeo ya jina tofauti kwa ishara zilizopokelewa kutoka kwa udhibiti wa mbali.

Sensor ya IR inaweza kutumika katika vifaa vingi kwenye kidhibiti kidogo cha Arduino, ikiwa ni pamoja na udhibiti wa kijijini wa gari la servo kwenye Arduino kutoka kwa mpokeaji wa IR. Wakati wa kusanidi, unapaswa kuwasha ufuatiliaji wa bandari ya Arduino IDE na ujue ni ishara gani inayotumwa na hii au kifungo kwenye udhibiti wa kijijini. Nambari zinazotokana zinapaswa kutumika katika mchoro baada ya ishara ya usawa maradufu katika hali ya if().

Pia mara nyingi husoma: