Universaalne kaugjuhtimispult Arduino jaoks. Andmete edastamine infrapunavahemikus Arduino abil Infrapunavastuvõtja ühendamine arduinoga

Internetis on palju artikleid selle kohta, kuidas Arduino abil oma teleri kaugjuhtimispulti teha, kuid teleri ja meediumipleieri juhtimiseks oli mul vaja universaalset kaugjuhtimispulti. Minu universaalse puldi peamine eelis on see, et Androidi telefonirakenduses on nupud kaheotstarbelised, aga vaadake videot.



Pult on väga mugav selle poolest, et teleri ja pleieri juhtimiseks kasutatakse peaaegu samu nuppe ekraanil. Üks erinevus on see, et " AV"teleri juhtimisrežiimis muutub nupuks" " (peatus) mängija juhtimisrežiimile lülitumisel. Piltidel on kaks režiimi, vasakul on teleri juhtimisrežiim, paremal on pleieri juhtimisrežiim.

Noh, nüüd räägin teile natuke sellise kaugjuhtimispuldi loomisest. Seadme jaoks kasutasin ERGO teleri pulti ja DUNE HD TV101W meediapleieri pulti.

Pultidelt andmete vastuvõtmiseks kasutasin infrapunaandurit TSOP1138 (analoogne TSOP4838-ga) töösagedusel 38 kHz ja ühendasin selle Arduino plaadiga vastavalt skeemile:

Seda visandit ei ole vaja andmeedastuse kodeeringu määramiseks ja kaugjuhtimispuldi nuppude koodide lugemiseks.

Visandil real int RECV_PIN = 11; märkige meie PIN-kood 4

Pärast visandi üleslaadimist avage “pordimonitor” ja kaugjuhtimispuldi nuppe vajutades vaadake vastuvõetud andmeid.

Pildil on näide teleri kaugjuhtimispuldi ja pleieri kaugjuhtimispuldi toitenupu skannimisest. Nüüd loome nuppude koodide tabeli.

Sain selle nagu ülaltoodud fotol. Sildi all TV Teleri kaugjuhtimispuldi nuppude koodid; pealdise all Mängija- koodid meediapleieri kaugjuhtimispuldist.

Nüüd ühendame oma infrapuna signaali vastuvõtja Arduino plaadi küljest lahti ja ühendame sellega HC-05 Bluetoothi ​​mooduli ja infrapuna LED-i vastavalt fotol olevale skeemile.

Pärast seda liigume otse visandi juurde.

Sketš

#kaasa 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) ( // teleri kaugjuhtimispuldi nuppude koodid if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); viivitus(40) ); ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); viivitus (40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); viivitus (40); ) if (x == 100) ( irsend.sendNEC(0x807FF00F, 32); viivitus(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); viivitus(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); viivitus(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); viivitus(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); viivitus(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); viivitus(40); ) if (x == 106) ( irsend.sendNEC(0xC707F38) , 32); viivitus(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); viivitus(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); viivitus(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); viivitus(40); ) ) if (y == 2) ( //meediumipleieri kaugjuhtimispuldi nuppude koodid if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); viivitus(40); ) if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); viivitus(40); ) if (x == 100) ( irsend.sendNEC (0xFDE817, 32); viivitus (40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); viivitus (40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32) ); viivitus (40); ) if (x == 103) ( irsend.sendNEC(0xFDA857, 32); viivitus(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); viivitus( 40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); viivitus (40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); viivitus (40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); viivitus (40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); viivitus (40); ) if (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); viivitus(40); ) ) ) )


Visandil peate redigeerima nuppude koode, nimelt ridades:

Kui (x == 97) ( irsend.sendNEC(0x807F08F7, 32); viivitus(40);
Muutke väärtus 807F08F7 väärtuseks:

If (y == 1) ( //nupu koodid teleri kaugjuhtimispuldi jaoks if (x == 97) ( irsend.sendNEC(0x12345678, 32); viivitus(40); )
Kus 12345678 on teie nupu kood.

Pärast visandi redigeerimist nupukoodide abil laadige eskiis Arduino tahvlile ja jätkake rakenduse installimisega oma telefoni.

Lülitame telefonis sisse Bluetoothi, otsime üles oma seadme, loome paari ja käivitame siis rakenduse Pult telefonis.

Käivitamisel kuvatakse paremas alanurgas punase bluetooth-ikooniga ekraan, mis annab märku, et me pole oma seadmega ühendatud.

Pärast seda klõpsake sellel ikoonil. Peaksime nägema akent kõigi saadaolevate Bluetooth-seadmete loendiga, kus valime ühendamiseks oma seadme.

Nüüd oleme tagasi põhiekraanil ja saame juba telerit juhtida:

Juhtrežiimile lülitumiseks peame vajutama sildiga nuppu "Mängija". Nagu ma varem ütlesin, muutub meie nupp nimetusega "AV" nupuks " ":

Meie seadmega ühenduse katkestamiseks hoidke lihtsalt paar sekundit all toitenuppu.

Noh, paar fotot minu valmis seadmest.

Päris hästi tuli välja, tundub. Ootan kommentaare artikli kohta.

See saadab IR LED-ile kodeeritud ja moduleeritud andmete paketi ning nuppu all hoides kordab ka pakette.

  • IR LED-i nähtamatu infrapunavalgus tabab Trima IR-vastuvõtja moodulit, kus see muundatakse demoduleeritud elektriimpulssideks.
  • Iarduino_IR teek loeb ja dekodeerib pidevalt IR-vastuvõtja impulsse (kasutades teist Arduino riistvarataimerit)
  • Silmuskoodis kontrollime teegi poolt dekodeeritud andmeid seadmele (lambile) määratud andmetega ja kui need ühtivad, siis muudame Trema mooduli Solid State sisendis olekut (“1”/“0”). Seetõttu lülitage relee seade (lamp) sisse või välja.
  • Seade võib olla kasulik, kui määrate ruumi valgustuse juhtimiseks teleri kaugjuhtimispuldil kasutamata nupud (näiteks värvilised teleteksti nupud).

    Hõõglampide asemel saab ühendada mis tahes ~220 V võrguseadme, mille voolutarve on kuni 2 A.

    Meil on vaja:

    • IR kaugjuhtimispult x 1tk (sobib iga TV IR kaugjuhtimispult)
    • Seadmed (lambid), mida me juhime x 3 tk.

    Projekti elluviimiseks peame installima raamatukogu:

    • Teek iarduino_IR IR transiiveritega töötamiseks
      TÄHTIS: raamatukogu kasutab teist riistvarataimerit,
      ÄRGE VÄLJENDAGE PWM-SIGNAALID 3 VÕI 11 VÄLJUNDIGA!

    Teekide installimise kohta saate teada Wiki lehelt – Teekide installimine Arduino IDE-sse.

    Video:

    Ühendusskeem:

    See ahel kasutab ainult digitaalseid mooduleid; neid saab ühendada mis tahes (nii digitaal- kui ka analoog) Arduino tihvtidega. Näiteks ühendasime kõik moodulid analoogväljunditega. Mitte igaüks ei tea, et Arduino analoogtihvtid võivad töötada tavaliste digitaalsete tihvtidena, võimaldades teil vastu võtta (IR-vastuvõtjalt) ja edastada (pooljuhtreleedele) digitaalseid signaale loogiliste "0" ja "1" kujul.

    Kui ühendate seadmeid teiste kontaktidega, tuleb nende numbrid märkida visandi teisele (IR objekti deklaratsioon) ja kolmandale (pinRelay massiivi deklaratsioon) reale. Programmi kood on kirjutatud nii, et saate ühendada nii palju releed, kui palju on teie Arduino vabu tihvte, lihtsalt loetledes viigu numbrid visandi kolmandale reale (pinRelay massiivi deklaratsioon).

    Töö algoritm:

    • Alguses, määrab visand igale pooljuhtreleele järjestikku IR-kaugjuhtimisnupu koodi. Esiteks vilgub LED ja pooljuhtrelee vooluahel suletakse, mille väljund kuvatakse kõigepealt. Kui vajutate IR-kaugjuhtimispuldi mis tahes nuppu, määratakse selle nupu kood sellele releele ja järgmine hakkab vilkuma ja nii edasi, kuni kõik releed on infrapunakaugjuhtimispuldil nupud määratud.
    • Pärast kohtumistNuppude funktsioonid, kõik releed on välja lülitatud. Kui vajutate IR-kaugjuhtimispuldi nuppu, lülitub sisse relee, millele selle nupu kood on määratud. Kui vajutate näidatud nuppu uuesti, lülitub relee välja. Seade ei reageeri nuppude vajutamisele, mille koodi pole ühelegi releele määratud.
    • Kui Kui te ei soovi igal käivitamisel nupukoode määrata, märkige need varRelay massiivi deklareerimisel selgesõnaliselt välja ning eemaldage seadistuskoodist for- ja while-tsüklid.
    • Uurige välja iga nupu kood võid kirjutada järgmise rea: if(IR.check())(Serial.println(IR.data);)

    Programmi kood:

    #kaasa // teegi ühendamine IR-vastuvõtjaga töötamiseks iarduino_IR_RX IR(A5); // IR-objekti deklareerimine IR-vastuvõtjaga töötamiseks (näitades iga viigu, millega IR-vastuvõtja on ühendatud) const uint8_t pinRelay = (A1,A2,A3); // deklareerida massiiv, mis näitab kõigi kontaktide (digitaalsete või analoogsete) numbreid, millega pooljuhtreleed on ühendatud const uint8_t allRelay = sizeof(pinRelay); // konstandi deklareerimine, edastades selle elementide arvu pinRelay massiivi (releede arv) uint32_t varRelay; // deklareerib massiivi IR-vastuvõtja koodidega (käskudega), sealhulgas releed bool modRelay; // relee olekutega massiivi deklareerimine uint8_t setRelay; // deklareerib muutuja releede arvuga, mille jaoks on kirjutatud IR-vastuvõtja käsk void setup())( IR.begin(); // initsialiseerige töö infrapunatransiiveriga for(uint8_t i=0; i IR-vastuvõtja moodul koos IR-kaugjuhtimispuldiga võimaldab hõlpsasti rakendada Arduino plaadi kaugjuhtimist.

    See pole midagi muud kui VS1838B IR-vastuvõtja, mille plaadile on paigaldatud tootja soovitatud rakmed.

    Selle mooduliga töötamiseks karbist välja võttes vajate kaugjuhtimispulti sagedusega 38 kHz.

    Selle plaadi eeliseks on push-in pistik, mis võimaldab ilma jootmiseta asendada IR-vastuvõtja teise vastu, mis töötab teie projekti jaoks vajalikul sagedusel.

    Peamised tehnilised omadused:

    Toitepinge: 2,7 - 5,5V

    Modulatsioonisagedus: 38kHz

    Temperatuurivahemik: - 20 ... + 80°C

    Liides: digitaalne

    Arduinoga ühendamine

    Moodul on varustatud kolme kontaktiga 2,54 mm pistikuga

    : ühendub GND kontaktiga

    : ühendub +5V väljundiga

    : ühendub digitaalse viiguga (näites D2)

    Näide tööst Arduino keskkonnas

    Selle mooduliga töötamiseks peate installima IRRemote teegi

    Laadige alla, pakkige lahti ja asetage see Arduino kausta teekide kausta. Kui Arduino IDE oli teegi lisamise ajal avatud, taaskäivitage keskkond.

    Kaugjuhtimispuldi nuppude lugemine

    Kaugjuhtimispuldi näitude lugemiseks täitke allolev visand. See väljastab porti vajutatud nuppude kodeeringu.

    Näitena kasutame kaugjuhtimispulti, nagu pildil, kuna Seda tüüpi kaugjuhtimispult on komplektis

    Erinevate kaugjuhtimispultide tööloogika erinevustest saad lugeda meie kogukonna liikme originaalartiklist hüüdnime all

    Näidiskood:

    #kaasa int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); //Looge objekt konkreetsest pordist signaali vastuvõtmiseks decode_results tulemused; //Tulemust salvestav muutuja tühine seadistamine () { Sari // Alusta vastuvõtmist) tühine silmus() ( if (irrecv.decode(&results)) //Signaali vastuvõtmisel... { Sari.println(tulemused.väärtus); //...väljastab selle väärtuse jadaporti irrecv.resume(); ) )

    Sa peaksid pordimonitoris nägema järgmist:

    Iga nuppu peaaegu sekundi all hoides saame umbes 10 koodi. Esimene on nupu kood. Ja pärast seda hakkab ilmuma standardkood, mis teatab, et nupp on kinni jäänud.

    Arduino plaadi juhtimine kaugjuhtimispuldiga

    Paneme Arduino plaadi (D13) LED-i süttima, kui esimene nupp on kodeeritud, ja kustub, kui teine ​​nupp on kodeeritud.

    Näidiskood:

    // Testitud Arduino IDE 1.0.3 peal#kaasa int RECV_PIN = 2; int LED = 13; IRrecv irrecv(RECV_PIN); decode_results tulemused; tühine seadistamine () { Sari.begin(9600); irrecv.enableIRIn(); // Käivitage vastuvõtja pinMode (LED, VÄLJUND); ) tühine silmus() ( if (irrecv.decode(&results)) ( Sari.println(tulemused.väärtus); if (results.value == 16769565) // Kodeeringu 1 vastuvõtmisel( digitalWrite (LED, HIGH); // Lülitage LED sisse) if (results.value == 16761405) // Kodeeringu 2 vastuvõtmisel( digitalWrite (LED, LOW); // Lülitage LED välja) irrecv.resume(); // Hankige järgmine väärtus } }

    Tere päevast kõigile (või ööd, kuidas soovite), alustame lüürilise sissejuhatusega. Tänapäeval on paljudel inimestel majad Teler puldiga, tuuner, DVD mängija . Paljud inimesed (ja pered) ei kujuta oma kodust elu ette ilma puldita käes. Nõus – kui tore on olla kodumasinate meister ja igal hetkel nendele riistvaratükkidele oma tahe dikteerida. Selles artiklis tahaksime kaugjuhtimistehnoloogiat põhjalikumalt vaadelda ja tuua mõned rakendusenäited meie vajadustele vastavaks.

    Mida me siis eksperimendi komponentidena vajame? Võimalusena müüakse valmis IR puldi ja IR vastuvõtja mooduleid. Kuid me ei taha oodata ja raha maksta, seega tegutseme karmimalt. Võtame aluseks tundmatu päritoluga puldi, meil on ka Hiina tuunerist pärit tahvlijupp, millele on joodetud infrapuna vastuvõtja. Alloleval fotol näete neid komponente. Kui aus olla, siis pult leiti kontorilaualt ebavajaliku rämpsu vahelt ning plaat koos IR-vastuvõtjaga võeti lähimast raadiote remonditöökojast.

    No siis, nagu ma ütlesin Hannibal - "Edasi Kartaagosse" . Peame lihtsalt vastuvõtja lahti jootma ja plaadiga ühendama Arduino järgmise skeemi järgi...

    • IR-vastuvõtja ühendamine

    IR vastuvõtja mis tahvlilt joodetud, sellel pole ühtegi märgistust, see on lihtsalt üks tundmatu Hiina raadiokomponent, mida toodeti tuhandeid. Lühidalt võib öelda - ühes hoones see ühendabfotodiood, eelvõimendi ja draiver . Väljundi moodustab normaalTTL signaal ilma polsterduseta, sobib edasiseks töötlemiseks mikrokontrolleri poolt. Kandesagedus on võib-olla (!) 36 kHz, aga nüüd pole see nii oluline... Proovime selle plaadiga ühendadaArduino , annab tingimusdiagramm selle seadme soovitud pinouti. Alloleval diagrammil on punasega esile tõstetud meie keha kujuIR vastuvõtja , rohelisega esile tõstetud – pinout, millel see on tahvliga ühendatudArduino .

    Tähelepanu!!! Internetis on sellises pakendis (TSOP) olevate seadmete jaoks palju pinout diagramme. Selles artiklis toodud pinoutid ei pruugi ühtida Internetis leiduvatega, kuid nii on kõik meiega seotud. Kui IR-vastuvõtja hakkab ühendamisel kuumenema, lülitage kokkupandud vooluahel kohe välja; see tähendab, et ühenduse pistikupesa ei vasta tegelikule ja peate selle peaaegu juhuslikult valima. Täpselt nii tegimegi, sest internetist leitud vooluringid meie IR-vastuvõtjale ei sobinud. Siin on üldiselt peaasi, et Arduino plaati ei põletataks, olge ettevaatlik!!!

    • IRremote raamatukogu

    Nii et kõik on seotud. Kaugjuhtimispuldi koodide lugemiseks on raamatukogu IRremote.h, just tema abiga uurime oma kaugjuhtimispulti või õigemini nuppude koode. Edaspidi kasutame loetud koode enda tarbeks. Sketš, millega nupukoode loetakse, on toodud selle teegi näidetes, seda nimetatakse IRrecvDemo. Tähelepanu!!! Visandi koostamisel annab see vea, kohe alguses peate lisama veel kaks pistikprogrammi teeki:

    #include "boarddefs.h" //Täiendav teek #include "IRremote.h" #include "IRremoteInt.h" //Täiendav teek int RECV_PIN = 2; //Pin IR-vastuvõtja väljundsignaali ühendamiseks //Looge IRrecv klassi eksemplar, edastades parameetrina infrapunavastuvõtja signaali ühendamise viigu IRrecv irrecv(RECV_PIN); decode_results tulemused; //Muutuja vajutatud nupu vastuvõetud koodi salvestamiseks void setup() ( Serial.begin(9600); irrecv.enableIRIn(); //IR-vastuvõtja töö lubamine ) void loop() ( if (irrecv.decode( &results)) //Kui juhtus sündmus/nuppu vajutati ( Serial.println(results.value, HEX); //Väljastage vajutatud nupu kood kuueteistkümnendsüsteemis pordimonitori irrecv.resume(); // Järgmise väärtuse/nupu lugemise viivitus(100);)

    Pärast seda, kui eskiis on tahvlile üles laaditudArduino(me kasutame Arduino nano kilbil I/O juhtmevaba kaitsekilp nano jaoks ), saab avada pordi monitor ja vaadake, millised koodid ilmuvad, kui vajutate kaugjuhtimispuldi nuppe. Visandi tulemus on näidatud alloleval ekraanipildil:

    Muide, nagu pordi monitor Kasutame oma tõestatud tarkvara, kui kedagi huvitab, võib lugeda artiklit ja alla laadida Serial Monitor Pro.

    #define KEY_ONOFF 0x807F807F //Sisse-/Välja-nupp #define KEY_MUTE 0x807F48B7 //Vaigistusnupp #define KEY_1 0x807F00FF //Button 1 #define KEY_2 0x807FE01F #define KEY_2 0x807FE01F /definexF8KEY23 e KEY_4 0x807F20DF //Nupp 4 #define KEY_5 0x807FD02F //Nupp 5 #define KEY_6 0x807F50AF //Nupp 6 #define KEY_7 0x807F10EF //Nupp 7 #define KEY_8 0x807FF00F //defineF8B797_/Button #define KEY_0 0x807FC837 //Nupp 0

    Ja nüüd on üldiselt kõik viimaseks testiks valmis - see on releemoodulite sisse- ja väljalülitamise kontrollimise elementaarne test. Siin on väike ülesanne:

    • Kasutame kahte releemoodulit
    • Seome relee nr 1 kaugjuhtimispuldi nupuga “1”.
    • Relee nr 2 on seotud kaugjuhtimispuldi nupuga “2”.
    • Mis tahes releemooduli sisselülitamine toimub, vajutades nuppu, millele see on määratud
    • Mis tahes releemooduli väljalülitamine toimub ka vajutades nuppu, millele see on määratud
    • Sisse/välja nupu vajutamine lülitab tingimusteta välja mõlemad releemoodulid (kui need olid sisse lülitatud või üks neist on sisse lülitatud)

    Sketš, mis rakendab ülaltoodud ülesannet:

    #include "boarddefs.h" //Täiendav teek #include "IRremote.h" #include "IRremoteInt.h" //Täiendav teek #define KEY_ONOFF 0x807F807F //Sisse/välja nupp #define KEY_1 0x807F00FF #/define KEY12 //Button KEY12 0x807FE01F //Button 2 #define RELOUT1 3 //Relee 1 väljundport #define RELOUT2 4 //Relee 2 väljundport int RECV_PIN = 2; IRrecv irrecv(RECV_PIN); decode_results tulemused; staatiline tõeväärtus REL1_ONOFF = väär; staatiline tõeväärtus REL2_ONOFF = väär; void setup() ( pinMode(RELOUT1, OUTPUT); pinMode(RELOUT2, OUTPUT); Serial.begin(9600); irrecv.enableIRIn(); // vastuvõtja käivitamine ) void loop() ( if (irrecv.decode(&results) )) ( switch(results.value) ( ​​Case(KEY_ONOFF): REL1_ONOFF = vale; REL2_ONOFF = vale; break; case(KEY_1): if(REL1_ONOFF) REL1_ONOFF = vale; else REL1_ONOFF = tõene; katkestus; case(KEY_2 ): if(REL2_ONOFF) REL2_ONOFF = vale; else REL2_ONOFF = tõene; break; ) irrecv.resume(); ) digitalWrite(RELOUT1, REL1_ONOFF); digitalWrite(RELOUT2, REL2_ONOFF); viivitus(100); )

    Ja artikli lõpus on video, mis demonstreerib mõlema visandi tööd. Kui soovite ja teil on loominguline kujutlusvõime, saate laiendada lisandmoodulite parki ja hallata kõike keerukamalt. Meie artiklis püüdsime tuua selle tehnoloogia rakendamise põhinäite. Tänan tähelepanu eest ja naudi vaatamist!!!

    Kommentaaride toimimiseks lubage JavaScript.

    Internetis on palju artikleid selle kohta, kuidas Arduino abil oma teleri kaugjuhtimispulti teha, kuid teleri ja meediumipleieri juhtimiseks oli mul vaja universaalset kaugjuhtimispulti. Minu universaalse puldi peamine eelis on see, et Androidi telefonirakenduses on nupud kaheotstarbelised, aga vaadake videot.



    Pult on väga mugav selle poolest, et teleri ja pleieri juhtimiseks kasutatakse peaaegu samu nuppe ekraanil. Üks erinevus on see, et " AV"teleri juhtimisrežiimis muutub nupuks" " (peatus) mängija juhtimisrežiimile lülitumisel. Piltidel on kaks režiimi, vasakul on teleri juhtimisrežiim, paremal on pleieri juhtimisrežiim.

    Noh, nüüd räägin teile natuke sellise kaugjuhtimispuldi loomisest. Seadme jaoks kasutasin ERGO teleri pulti ja DUNE HD TV101W meediapleieri pulti.

    Pultidelt andmete vastuvõtmiseks kasutasin infrapunaandurit TSOP1138 (analoogne TSOP4838-ga) töösagedusel 38 kHz ja ühendasin selle Arduino plaadiga vastavalt skeemile:

    Seda visandit ei ole vaja andmeedastuse kodeeringu määramiseks ja kaugjuhtimispuldi nuppude koodide lugemiseks.

    Visandil real int RECV_PIN = 11; märkige meie PIN-kood 4

    Pärast visandi üleslaadimist avage “pordimonitor” ja kaugjuhtimispuldi nuppe vajutades vaadake vastuvõetud andmeid.

    Pildil on näide teleri kaugjuhtimispuldi ja pleieri kaugjuhtimispuldi toitenupu skannimisest. Nüüd loome nuppude koodide tabeli.

    Sain selle nagu ülaltoodud fotol. Sildi all TV Teleri kaugjuhtimispuldi nuppude koodid; pealdise all Mängija- koodid meediapleieri kaugjuhtimispuldist.

    Nüüd ühendame oma infrapuna signaali vastuvõtja Arduino plaadi küljest lahti ja ühendame sellega HC-05 Bluetoothi ​​mooduli ja infrapuna LED-i vastavalt fotol olevale skeemile.

    Pärast seda liigume otse visandi juurde.

    Sketš

    #kaasa 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) ( // teleri kaugjuhtimispuldi nuppude koodid if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); viivitus(40) ); ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); viivitus (40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); viivitus (40); ) if (x == 100) ( irsend.sendNEC(0x807FF00F, 32); viivitus(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); viivitus(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); viivitus(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); viivitus(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); viivitus(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); viivitus(40); ) if (x == 106) ( irsend.sendNEC(0xC707F38) , 32); viivitus(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); viivitus(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); viivitus(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); viivitus(40); ) ) if (y == 2) ( //meediumipleieri kaugjuhtimispuldi nuppude koodid if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend. sendNEC(0xFDE01F, 32); viivitus(40); ) if (x == 99) ( irsend.sendNEC(0xFD18E7, 32); viivitus(40); ) if (x == 100) ( irsend.sendNEC (0xFDE817, 32); viivitus (40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); viivitus (40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32) ); viivitus (40); ) if (x == 103) ( irsend.sendNEC(0xFDA857, 32); viivitus(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); viivitus( 40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); viivitus (40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); viivitus (40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); viivitus (40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); viivitus (40); ) if (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); viivitus(40); ) ) ) )


    Visandil peate redigeerima nuppude koode, nimelt ridades:

    Kui (x == 97) ( irsend.sendNEC(0x807F08F7, 32); viivitus(40);
    Muutke väärtus 807F08F7 väärtuseks:

    If (y == 1) ( //nupu koodid teleri kaugjuhtimispuldi jaoks if (x == 97) ( irsend.sendNEC(0x12345678, 32); viivitus(40); )
    Kus 12345678 on teie nupu kood.

    Pärast visandi redigeerimist nupukoodide abil laadige eskiis Arduino tahvlile ja jätkake rakenduse installimisega oma telefoni.

    Lülitame telefonis sisse Bluetoothi, otsime üles oma seadme, loome paari ja käivitame siis rakenduse Pult telefonis.

    Käivitamisel kuvatakse paremas alanurgas punase bluetooth-ikooniga ekraan, mis annab märku, et me pole oma seadmega ühendatud.

    Pärast seda klõpsake sellel ikoonil. Peaksime nägema akent kõigi saadaolevate Bluetooth-seadmete loendiga, kus valime ühendamiseks oma seadme.

    Nüüd oleme tagasi põhiekraanil ja saame juba telerit juhtida:

    Juhtrežiimile lülitumiseks peame vajutama sildiga nuppu "Mängija". Nagu ma varem ütlesin, muutub meie nupp nimetusega "AV" nupuks " ":

    Meie seadmega ühenduse katkestamiseks hoidke lihtsalt paar sekundit all toitenuppu.

    Noh, paar fotot minu valmis seadmest.

    Päris hästi tuli välja, tundub. Ootan kommentaare artikli kohta.