Univerzalni daljinski upravljalnik za Arduino. Prenos podatkov v infrardečem območju z uporabo Arduina. Priključitev infrardečega sprejemnika na arduino

Na internetu je veliko člankov o tem, kako narediti lasten TV daljinski upravljalnik z Arduinom, vendar sem potreboval univerzalni daljinski upravljalnik za nadzor TV-ja in multimedijskega predvajalnika. Glavna prednost mojega univerzalnega daljinskega upravljalnika je, da so gumbi v Android telefonski aplikaciji dvonamenski, pa poglejte video.



Daljinski upravljalnik je zelo priročen, saj se za upravljanje televizorja in predvajalnika uporabljajo skoraj isti gumbi na zaslonu. Ena razlika je, da " AV"v načinu upravljanja televizorja se spremeni v gumb" " (stop), ko preklopite v način upravljanja predvajalnika. Slike prikazujejo dva načina, na levi je način upravljanja TV-ja, na desni je način upravljanja predvajalnika.

No, zdaj vam bom povedal nekaj o ustvarjanju takega daljinskega upravljalnika. Za napravo sem uporabil daljinski upravljalnik za ERGO TV in daljinski upravljalnik za medijski predvajalnik DUNE HD TV101W.

Za sprejem podatkov z daljinskega upravljalnika sem uporabil infrardeči senzor TSOP1138 (analogno TSOP4838) pri delovni frekvenci 38 kHz in ga povezal s ploščo Arduino po shemi:

Ta skica ne bo potrebna za določitev kodiranja prenosa podatkov in branje kode gumbov daljinskega upravljalnika.

Na skici v vrstici int RECV_PIN = 11; navedite našo številko PIN 4

Po nalaganju skice odprite »port monitor« in s pritiskom na gumbe daljinskega upravljalnika poglejte prejete podatke.

Slika prikazuje primer skeniranja gumba za vklop z daljinskega upravljalnika televizorja in daljinskega upravljalnika predvajalnika. Zdaj ustvarimo tabelo za kode gumbov.

Dobil sem ga kot na zgornji sliki. Pod napisom TV kode gumbov daljinskega upravljalnika televizorja; pod napisom Igralec- kode iz daljinskega upravljalnika multimedijskega predvajalnika.

Zdaj odklopimo naš sprejemnik infrardečega signala iz plošče Arduino in nanj povežemo Bluetooth modul HC-05 in infrardečo LED v skladu s shemo na fotografiji.

Po tem preidemo neposredno na skico.

Skica

#vključi 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) ( // kode gumbov za daljinski upravljalnik televizorja 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 == 105) ( irsend.sendNEC(0x807FD827, 32); delay(40); ) if (x == 106) ( irsend.sendNEC(0x807F38C7) , 32); zakasnitev(40); ) če (x == 107) ( irsend.sendNEC(0x807F48B7, 32); zakasnitev(40); ) če (x == 108) ( irsend.sendNEC(0x807FB847, 32); zakasnitev(40); ) if (x == 109) (irsend.sendNEC(0x807F6897, 32); zamuda (40); ) ) if (y == 2) ( //kode gumbov daljinskega upravljalnika multimedijskega predvajalnika 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); zakasnitev(40); ) če (x == 101) ( irsend.sendNEC(0xFDA857, 32); zakasnitev(40); ) če (x == 102) ( irsend.sendNEC(0xFD6897, 32) ); zakasnitev (40); ) če (x == 103) (irsend.sendNEC(0xFDA857, 32); zakasnitev(40); ) če (x == 104) ( irsend.sendNEC(0xFD6897, 32); zakasnitev( 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); zamuda(40); ) ) ) )


Na skici boste morali urediti kode gumbov, in sicer v vrsticah:

If (x == 97) (irsend.sendNEC(0x807F08F7, 32); delay(40);
Spremenite vrednost 807F08F7 v:

If (y == 1) ( //kode gumbov za daljinski upravljalnik televizorja if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
Kjer je 12345678 koda za vaš gumb.

Ko uredite skico s svojimi kodami gumbov, naložite skico na ploščo Arduino in nadaljujte z namestitvijo aplikacije na vaš telefon.

V telefonu vklopimo Bluetooth, poiščemo svojo napravo, ustvarimo par, nato zaženemo aplikacijo Pult na telefonu.

Ob zagonu bomo imeli zaslon z rdečo ikono bluetooth v spodnjem desnem kotu, ki signalizira, da nismo povezani z našo napravo.

Po tem kliknite to ikono. Videti bi moralo okno s seznamom vseh razpoložljivih bluetooth naprav, kjer izberemo svojo napravo za povezavo.

Zdaj smo spet na glavnem zaslonu in že lahko upravljamo televizor:

Za preklop v način upravljanja moramo pritisniti gumb z oznako "Igralec". Kot sem že rekel, se bo naš gumb z oznako "AV" spremenil v gumb " ":

Če želite prekiniti povezavo z našo napravo, preprosto nekaj sekund pridržite gumb »Power«.

No, nekaj fotografij moje končane naprave.

Izkazalo se je kar dobro, se zdi. Čakam na komentarje na članek.

Na IR LED pošlje paket kodiranih in moduliranih podatkov, ob pritisku na gumb pa tudi ponovi pakete.

  • Nevidna infrardeča svetloba iz IR LED zadene IR sprejemni modul Trima, kjer se pretvori v demodulirane električne impulze.
  • Knjižnica iarduino_IR nenehno bere in dekodira impulze iz IR sprejemnika (z uporabo drugega časovnika strojne opreme Arduino)
  • V kodi zanke preverimo podatke, ki jih knjižnica dekodira, s tistimi, ki so dodeljeni napravi (svetilki) in če se ujemajo, spremenimo stanje (“1”/“0”) na vhodu modula Trema Solid State. Rele torej vklopi ali izklopi napravo (svetilko).
  • Naprava je lahko uporabna, če neuporabljenim gumbom na daljinskem upravljalniku televizorja (na primer barvnim gumbom teleteksta) dodelite osvetlitev v prostoru.

    Namesto žarnic z žarilno nitko lahko priključite katero koli ~220 V omrežno napravo s porabo toka do 2 A.

    Potrebovali bomo:

    • IR daljinski upravljalnik x 1 kos (uporablja se vsak IR daljinski upravljalnik televizorja)
    • Naprave (svetilke), ki jih bomo krmilili x 3 kom.

    Za izvedbo projekta moramo namestiti knjižnico:

    • Knjižnica iarduino_IR za delo z IR sprejemniki
      POMEMBNO: knjižnica uporablja drugi časovnik strojne opreme,
      NE IZHODAJTE SIGNALOV PWM NA 3 ALI 11 IZHOD!

    Kako namestiti knjižnice, lahko izveste na strani Wiki – Namestitev knjižnic v Arduino IDE.

    Video:

    Shema povezave:

    To vezje uporablja samo digitalne module, ki jih je mogoče povezati s poljubnimi (tako digitalnimi kot analognimi) zatiči Arduino. Na primer, vse module smo povezali z analognimi izhodi. Vsi ne vedo, da lahko analogni zatiči Arduino delujejo kot navadni digitalni zatiči, kar vam omogoča sprejemanje (iz IR sprejemnika) in oddajanje (na polprevodniške releje) digitalnih signalov v obliki logičnih "0" in "1".

    Če boste naprave povezovali z drugimi pini, je treba njihove številke navesti v drugi (deklaracija IR objekta) in tretji (deklaracija pinRelay array) vrstici skice. Programska koda je napisana tako, da lahko povežete toliko relejev, kolikor je prostih pinov na vašem Arduinu, preprosto tako, da navedete številke pinov v tretji vrstici skice (deklaracija polja pinRelay).

    Algoritem dela:

    • Na začetku skica dodeljuje kodo gumba IR daljinskega upravljalnika vsakemu polprevodniškemu releju zaporedno. Najprej utripa LED in sklene se vezje polprevodniškega releja, katerega izhod je prvi prikazan. Če pritisnete kateri koli gumb na IR daljinskem upravljalniku, bo koda za ta gumb dodeljena temu releju, naslednji pa bo začel utripati in tako naprej, dokler niso vsi releji dodeljeni gumbom na IR daljinskem upravljalniku.
    • Po imenovanjuFunkcije gumbov, vsi releji so izklopljeni. Če pritisnete gumb IR daljinskega upravljalnika, se vklopi rele, ki mu je dodeljena koda tega gumba. Če ponovno pritisnete prikazani gumb, se bo rele izklopil. Naprava se ne bo odzvala na pritisk tipk, katerih koda ni bila dodeljena nobenemu releju.
    • čeČe ne želite dodeliti kod gumbov ob vsakem zagonu, jih izrecno navedite, ko deklarirate matriko varRelay, in odstranite zanki for in while iz nastavitvene kode.
    • Poiščite kodo za vsak gumb lahko napišete naslednjo vrstico: if(IR.check())(Serial.println(IR.data);)

    Programska koda:

    #vključi // povežite knjižnico za delo z IR sprejemnikom iarduino_IR_RX IR(A5); // deklariraj IR objekt za delo z IR sprejemnikom (ki označuje kateri koli pin, na katerega je IR sprejemnik povezan) const uint8_t pinRelay = (A1,A2,A3); // deklariraj matriko, ki označuje številke vseh nožic (digitalnih ali analognih), na katere so priključeni polprevodniški releji const uint8_t allRelay = sizeof(pinRelay); // deklariraj konstanto s posredovanjem njenega števila elementov v matriki pinRelay (število relejev) uint32_t varRelay; // deklariramo polje s kodami (ukazi) IR sprejemnika, vključno z releji bool modRelay; // deklariraj matriko s stanji releja uint8_t setRelay; // deklariramo spremenljivko s številom relejev, za katere je zapisan ukaz iz IR sprejemnika void setup())( IR.begin(); // inicializira delo z IR sprejemnikom for(uint8_t i=0; i Modul IR Receiver v kombinaciji z IR daljinskim upravljalnikom vam bo omogočil enostavno izvedbo daljinskega upravljanja Arduino plošče.

    To ni nič drugega kot IR sprejemnik VS1838B s snopom, ki ga priporoča proizvajalec, nameščenim na plošči.

    Za delo s tem modulom iz škatle potrebujete daljinski upravljalnik s frekvenco 38 kHz.

    Prednost te plošče je vtični konektor, ki omogoča zamenjavo IR sprejemnika z drugim, ki deluje na frekvenci, ki je potrebna za vaš projekt, brez spajkanja.

    Glavne tehnične lastnosti:

    Napajalna napetost: 2,7 - 5,5V

    Frekvenca modulacije: 38kHz

    Temperaturno območje: - 20 ... + 80°C

    Vmesnik: digitalni

    Povezovanje z Arduinom

    Modul je opremljen s tripolnim konektorjem 2,54 mm

    : priključi se na GND pin

    : priključi na +5V izhod

    : priključi se na digitalni pin (na primer D2)

    Primer dela v okolju Arduino

    Za delo s tem modulom morate namestiti knjižnico IRRemote

    Prenesite, razpakirajte in postavite v mapo knjižnic v mapi Arduino. Če je bil Arduino IDE v času dodajanja knjižnice odprt, znova zaženite okolje.

    Branje gumbov daljinskega upravljalnika

    Če želite prebrati odčitke daljinskega upravljalnika, izpolnite spodnjo skico. V vrata bo poslal kodiranje pritisnjenih gumbov.

    Kot primer bomo uporabili daljinski upravljalnik, kot je na sliki, ker Tovrstni daljinski upravljalnik je priložen v kompletu

    O razlikah v logiki delovanja različnih daljinskih upravljalnikov si lahko preberete v izvirnem članku člana naše skupnosti pod vzdevkom

    Vzorčna koda:

    #vključi int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); //Ustvarite objekt za sprejem signala iz določenih vrat rezultati decode_results; //Spremenljivka, ki shrani rezultat praznina nastaviti () { Serijski // Začni prejemati) nična zanka() ( if (irrecv.decode(&results)) //Ko prejmete signal ... { Serijski.println(rezultati.vrednost); //...izdaj svojo vrednost v serijska vrata irrecv.resume(); ) )

    V monitorju vrat bi morali videti naslednje:

    Če vsak gumb držimo skoraj sekundo, dobimo približno 10 kod. Prva je koda gumba. In po njej se začne pojavljati standardna koda, ki poroča, da je gumb zataknjen.

    Upravljanje plošče Arduino z daljinskim upravljalnikom

    Naj LED na plošči Arduino (D13) zasveti, ko je prvi gumb kodiran, in ugasne, ko je drugi gumb kodiran.

    Vzorčna koda:

    // Preizkušeno na Arduino IDE 1.0.3#vključi int RECV_PIN = 2; int LED = 13; IRrecv irrecv(RECV_PIN); rezultati decode_results; praznina nastaviti () { Serijski.begin(9600); irrecv.enableIRIn(); // Zaženite sprejemnik pinMode(LED, IZHOD); ) nična zanka() ( if (irrecv.decode(&results)) ( Serijski.println(rezultati.vrednost); če (results.value == 16769565) // Pri prejemu kodiranja 1( digitalWrite(LED, HIGH); // Vklopite LED) če (results.value == 16761405) // Pri prejemu kodiranja 2( digitalWrite(LED, LOW); // Izklopite LED) irrecv.resume(); // Pridobi naslednjo vrednost } }

    Lep dan vsem (ali noč, kakor želite), začnimo z liričnim uvodom. Dandanes ima veliko ljudi hiše TV z daljinskim upravljalnikom, tuner, DVD predvajalnik . Mnogi ljudje (in družine) si ne morejo predstavljati domačega življenja brez daljinskega upravljalnika v roki. Strinjam se - kako super je biti mojster gospodinjskih aparatov in v vsakem trenutku narekovati svojo voljo tem kosom strojne opreme. V tem članku bi radi podrobneje preučili tehnologijo daljinskega upravljanja in podali nekaj primerov uporabe za naše potrebe.

    Torej, kaj potrebujemo kot komponente za naš poskus? Kot možnost prodajajo se že pripravljeni moduli IR daljinskega upravljalnika in IR sprejemnika. Ampak nočemo čakati in plačevati denarja, zato bomo delovali bolj trdo. Vzemimo za osnovo daljinski upravljalnik neznanega izvora, imamo tudi kos plošče iz kitajskega tunerja, na katerega je spajkan infrardeči sprejemnik. Na spodnji fotografiji lahko vidite te komponente. Resnici na ljubo so daljinca našli med nepotrebno kramo v pisarni, ploščo z IR sprejemnikom pa so odnesli iz najbližjega radijskega servisa.

    No, potem pa kot sem rekel Hanibal - "Naprej v Carthage" . Samo odspajkati moramo sprejemnik in ga povezati s ploščo Arduino po naslednji shemi...

    • Priključitev IR sprejemnika

    IR sprejemnik ki je prispajkana s plošče, nima nobenih oznak, je le še ena neznana kitajska radijska komponenta, ki so jo proizvedli na tisoče. Skratka, lahko rečemo - v eni zgradbi združujefotodioda, predojačevalnik in gonilnik . Izhod je oblikovan z normalnimTTL signal brez oblazinjenja, primeren za nadaljnjo obdelavo z mikrokontrolerjem. Nosilna frekvenca je mogoče (!) 36 kHz, vendar zdaj to ni tako pomembno ... Poskušajmo jo povezati na ploščoArduino , bo pogojni diagram dal želeni pinout te naprave. V spodnjem diagramu je z rdečo poudarjena oblika telesa, v katerem je izdelan našIR sprejemnik , označen z zeleno - pinout, na katerem je priključen na ploščoArduino .

    Pozor!!! Na internetu je veliko diagramov pinout za naprave v takem paketu (TSOP). Pinouts, podani v tem članku, morda ne sovpadajo s tistimi, ki jih najdete na internetu, vendar je tako vse povezano z nami. Če se IR-sprejemnik ob priključitvi začne segrevati, takoj izklopite sestavljeno vezje; to pomeni, da pinout povezave ne ustreza dejanskemu in ga boste morali izbrati skoraj naključno. Točno to smo storili, saj vezja, ki jih najdemo na internetu, niso bila primerna za naš IR sprejemnik. Tu je na splošno glavna stvar, da ne zažgete plošče Arduino, nadaljujte previdno!!!

    • IRoddaljena knjižnica

    Vse je torej povezano. Obstaja knjižnica za branje kod z daljinskega upravljalnika IRremote.h, z njegovo pomočjo bomo preučili naš daljinski upravljalnik oziroma kode gumbov. V prihodnje bomo prebrane kode uporabljali za lastne namene. Skica, s katero bodo prebrane kode gumbov, je predstavljena v primerih te knjižnice, imenuje se IRrecvDemo. Pozor!!! Pri prevajanju skice se prikaže napaka; na samem začetku morate dodati še dve knjižnici vtičnikov:

    #include "boarddefs.h" //Dodatna knjižnica #include "IRremote.h" #include "IRremoteInt.h" //Dodatna knjižnica int RECV_PIN = 2; //Pin za povezavo izhodnega signala iz IR sprejemnika //Ustvarite primerek razreda IRrecv, pri čemer posredujete pin za povezavo signala iz IR sprejemnika kot parameter IRrecv irrecv(RECV_PIN); rezultati decode_results; //Spremenljivka za shranjevanje prejete kode pritisnjenega gumba void setup() ( Serial.begin(9600); irrecv.enableIRIn(); //Omogočanje delovanja IR sprejemnika ) void loop() ( if (irrecv.decode( &results)) //Če se je zgodil dogodek/je bil gumb pritisnjen ( Serial.println(results.value, HEX); //Izdaj kodo pritisnjenega gumba v šestnajstiški obliki v nadzornik vrat irrecv.resume(); // Preberi naslednjo vrednost/gumb ) delay(100 ); )

    Ko je skica naložena na tabloArduino(uporabljamo Arduino Nano na ščitu V/I brezžični ščit za Nano ), je mogoče odpreti monitor vrat in si oglejte, katere kode se prikažejo, ko pritisnete gumbe na daljinskem upravljalniku. Rezultat skice je prikazan na spodnjem posnetku zaslona:

    Mimogrede, kot monitor vrat Uporabljamo našo preverjeno programsko opremo, če koga zanima, si lahko prebere članek in prenese Serial Monitor Pro.

    #define KEY_ONOFF 0x807F807F //Gumb za vklop/izklop #define KEY_MUTE 0x807F48B7 //Gumb za izklop zvoka #define KEY_1 0x807F00FF //Gumb 1 #define KEY_2 0x807FE01F //Gumb 2 #define KEY_3 0x807F609F //Gumb 3 #define KEY_4 0x807F20DF //Gumb 4 #define KEY_5 0x807FD02F //Button 5 #define KEY_6 0x807F50AF //Button 6 #define KEY_7 0x807F10EF //Button 7 #define KEY_8 0x807FF00F //Button 8 #define KEY_9 0x807F708F //Button 9 # definiraj KEY_0 0x807FC837 //Gumb 0

    In zdaj je na splošno vse pripravljeno za končni test - to bo osnovni test nadzora vklopa / izklopa relejnih modulov. Tukaj je majhna naloga:

    • Uporabljamo dva relejna modula
    • Rele št. 1 vežemo na gumb "1" daljinskega upravljalnika
    • Rele št. 2 je vezan na gumb "2" daljinskega upravljalnika
    • Vklop katerega koli od relejnih modulov se izvede s pritiskom na gumb, ki mu je dodeljen
    • Izklop katerega koli od relejnih modulov se izvede tudi s pritiskom na gumb, ki mu je dodeljen
    • Pritisk na tipko za vklop/izklop brezpogojno izklopi oba relejna modula (če sta bila vklopljena ali je eden od njiju vklopljen)

    Skica, ki izvaja zgornjo nalogo:

    #include "boarddefs.h" //Dodatna knjižnica #include "IRremote.h" #include "IRremoteInt.h" //Dodatna knjižnica #define KEY_ONOFF 0x807F807F //Gumb za vklop/izklop #define KEY_1 0x807F00FF //Gumb 1 #define KEY_2 0x807FE01F //Gumb 2 #define RELOUT1 3 //Izhodna vrata za rele 1 #define RELOUT2 4 //Izhodna vrata za rele 2 int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); rezultati decode_results; statična logična vrednost REL1_ONOFF = false; statična logična vrednost REL2_ONOFF = false; void setup() ( pinMode(RELOUT1, OUTPUT); pinMode(RELOUT2, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // Zaženi sprejemnik ) void loop() ( if (irrecv.decode(&results) )) ( switch(results.value) ( ​​case(KEY_ONOFF): REL1_ONOFF = false; REL2_ONOFF = false; break; case(KEY_1): if(REL1_ONOFF) REL1_ONOFF = false; else REL1_ONOFF = true; break; case(KEY_2) ): if(REL2_ONOFF) REL2_ONOFF = false; else REL2_ONOFF = true; break; ) irrecv.resume(); ) digitalWrite(RELOUT1, REL1_ONOFF); digitalWrite(RELOUT2, REL2_ONOFF); delay(100); )

    In na koncu članka je videoposnetek, ki prikazuje delo obeh skic. Če želite in imate ustvarjalno domišljijo, lahko razširite floto vtičnikov in upravljate vse na naprednejši način. V našem članku smo poskušali podati osnovni primer uporabe te tehnologije. Hvala za pozornost in uživajte ob ogledu!!!

    Omogočite javascript, da bodo komentarji delovali.

    Na internetu je veliko člankov o tem, kako narediti lasten TV daljinski upravljalnik z Arduinom, vendar sem potreboval univerzalni daljinski upravljalnik za nadzor TV-ja in multimedijskega predvajalnika. Glavna prednost mojega univerzalnega daljinskega upravljalnika je, da so gumbi v Android telefonski aplikaciji dvonamenski, pa poglejte video.



    Daljinski upravljalnik je zelo priročen, saj se za upravljanje televizorja in predvajalnika uporabljajo skoraj isti gumbi na zaslonu. Ena razlika je, da " AV"v načinu upravljanja televizorja se spremeni v gumb" " (stop), ko preklopite v način upravljanja predvajalnika. Slike prikazujejo dva načina, na levi je način upravljanja TV-ja, na desni je način upravljanja predvajalnika.

    No, zdaj vam bom povedal nekaj o ustvarjanju takega daljinskega upravljalnika. Za napravo sem uporabil daljinski upravljalnik za ERGO TV in daljinski upravljalnik za medijski predvajalnik DUNE HD TV101W.

    Za sprejem podatkov z daljinskega upravljalnika sem uporabil infrardeči senzor TSOP1138 (analogno TSOP4838) pri delovni frekvenci 38 kHz in ga povezal s ploščo Arduino po shemi:

    Ta skica ne bo potrebna za določitev kodiranja prenosa podatkov in branje kode gumbov daljinskega upravljalnika.

    Na skici v vrstici int RECV_PIN = 11; navedite našo številko PIN 4

    Po nalaganju skice odprite »port monitor« in s pritiskom na gumbe daljinskega upravljalnika poglejte prejete podatke.

    Slika prikazuje primer skeniranja gumba za vklop z daljinskega upravljalnika televizorja in daljinskega upravljalnika predvajalnika. Zdaj ustvarimo tabelo za kode gumbov.

    Dobil sem ga kot na zgornji sliki. Pod napisom TV kode gumbov daljinskega upravljalnika televizorja; pod napisom Igralec- kode iz daljinskega upravljalnika multimedijskega predvajalnika.

    Zdaj odklopimo naš sprejemnik infrardečega signala iz plošče Arduino in nanj povežemo Bluetooth modul HC-05 in infrardečo LED v skladu s shemo na fotografiji.

    Po tem preidemo neposredno na skico.

    Skica

    #vključi 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) ( // kode gumbov za daljinski upravljalnik televizorja 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 == 105) ( irsend.sendNEC(0x807FD827, 32); delay(40); ) if (x == 106) ( irsend.sendNEC(0x807F38C7) , 32); zakasnitev(40); ) če (x == 107) ( irsend.sendNEC(0x807F48B7, 32); zakasnitev(40); ) če (x == 108) ( irsend.sendNEC(0x807FB847, 32); zakasnitev(40); ) if (x == 109) (irsend.sendNEC(0x807F6897, 32); zamuda (40); ) ) if (y == 2) ( //kode gumbov daljinskega upravljalnika multimedijskega predvajalnika 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); zakasnitev(40); ) če (x == 101) ( irsend.sendNEC(0xFDA857, 32); zakasnitev(40); ) če (x == 102) ( irsend.sendNEC(0xFD6897, 32) ); zakasnitev (40); ) če (x == 103) (irsend.sendNEC(0xFDA857, 32); zakasnitev(40); ) če (x == 104) ( irsend.sendNEC(0xFD6897, 32); zakasnitev( 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); zamuda(40); ) ) ) )


    Na skici boste morali urediti kode gumbov, in sicer v vrsticah:

    If (x == 97) (irsend.sendNEC(0x807F08F7, 32); delay(40);
    Spremenite vrednost 807F08F7 v:

    If (y == 1) ( //kode gumbov za daljinski upravljalnik televizorja if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
    Kjer je 12345678 koda za vaš gumb.

    Ko uredite skico s svojimi kodami gumbov, naložite skico na ploščo Arduino in nadaljujte z namestitvijo aplikacije na vaš telefon.

    V telefonu vklopimo Bluetooth, poiščemo svojo napravo, ustvarimo par, nato zaženemo aplikacijo Pult na telefonu.

    Ob zagonu bomo imeli zaslon z rdečo ikono bluetooth v spodnjem desnem kotu, ki signalizira, da nismo povezani z našo napravo.

    Po tem kliknite to ikono. Videti bi moralo okno s seznamom vseh razpoložljivih bluetooth naprav, kjer izberemo svojo napravo za povezavo.

    Zdaj smo spet na glavnem zaslonu in že lahko upravljamo televizor:

    Za preklop v način upravljanja moramo pritisniti gumb z oznako "Igralec". Kot sem že rekel, se bo naš gumb z oznako "AV" spremenil v gumb " ":

    Če želite prekiniti povezavo z našo napravo, preprosto nekaj sekund pridržite gumb »Power«.

    No, nekaj fotografij moje končane naprave.

    Izkazalo se je kar dobro, se zdi. Čakam na komentarje na članek.