Univerzální dálkový ovladač pro Arduino. Přenos dat v infračerveném rozsahu pomocí Arduina Připojení infračerveného přijímače k ​​arduinu

Na internetu je mnoho článků o tom, jak si vyrobit vlastní TV ovladač pomocí Arduina, ale potřeboval jsem univerzální dálkový ovladač pro ovládání mé televize a přehrávače médií. Hlavní výhodou mého univerzálního dálkového ovladače je, že tlačítka v aplikaci pro Android telefon jsou dvouúčelová, ale podívejte se na video.



Dálkové ovládání je velmi pohodlné v tom, že téměř stejná tlačítka na obrazovce slouží k ovládání TV a přehrávače. Jeden rozdíl je v tom, že „ AV"v režimu ovládání TV se změní na tlačítko" " (stop) při přepnutí do režimu ovládání přehrávače. Obrázky ukazují dva režimy, vlevo je režim ovládání TV, vpravo režim ovládání přehrávače.

No, teď vám řeknu něco o vytvoření takového dálkového ovládání. Pro zařízení jsem použil dálkový ovladač k TV ERGO a dálkový ovladač k media playeru DUNE HD TV101W.

Pro příjem dat z dálkových ovladačů jsem použil infračervený senzor TSOP1138 (analogický k TSOP4838) s pracovní frekvencí 38 kHz a připojil jej k desce Arduino podle schématu:

Tento náčrt nebude potřeba k určení kódování přenosu dat a čtení kódu tlačítek dálkového ovládání.

V náčrtu v řádku int RECV_PIN = 11; uveďte naše číslo PIN 4

Po nahrání náčrtu otevřete „port monitor“ a stisknutím tlačítek dálkového ovládání se podívejte na přijatá data.

Na obrázku je příklad skenování tlačítka napájení z dálkového ovladače televizoru a ovladače přehrávače. Nyní vytvoříme tabulku pro kódy tlačítek.

Mám to jako na fotce výše. Pod nápisem televize kódy tlačítek dálkového ovládání televizoru; pod nápisem Hráč- kódy z dálkového ovládání přehrávače médií.

Nyní odpojíme náš přijímač infračerveného signálu od desky Arduino a připojíme k němu Bluetooth modul HC-05 a infračervenou LED podle schématu na fotografii.

Poté se přesuneme přímo do náčrtu.

Skica

#zahrnout 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) ( // kódy tlačítek pro dálkové ovládání televizoru if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); zpoždění(40 ); ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); zpoždění(40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); zpoždění(40); ) if (x == 100) ( irsend.sendNEC(0x807FF00F, 32); zpoždění(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); zpoždění(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); zpoždění(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); zpoždění(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); delay(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); delay(40); ) if (x == 106) ( irsend.send7F38C70 , 32); delay(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); delay(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); delay(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); zpoždění(40); ) ) if (y == 2) ( //kódy tlačítek dálkového ovládání přehrávače médií if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); zpoždění(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); delay(40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); delay(40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32 ); zpoždění (40); ) if (x == 103) ( irsend.sendNEC(0xFDA857, 32); zpoždění(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); zpoždění( 40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); zpoždění(40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); zpoždění(40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); zpoždění(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); zpoždění(40); ) if (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); zpoždění(40); ) ) ) )


V náčrtu budete muset upravit kódy tlačítek, konkrétně v řádcích:

If (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40);
Změňte hodnotu 807F08F7 na:

If (y == 1) ( //kódy tlačítek pro dálkové ovládání televizoru if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
Kde 12345678 je kód pro vaše tlačítko.

Po úpravě náčrtu pomocí kódů tlačítek nahrajte náčrt na desku Arduino a pokračujte v instalaci aplikace do telefonu.

Zapneme Bluetooth v telefonu, vyhledáme naše zařízení, vytvoříme pár a poté spustíme aplikaci Pult na telefonu.

Po spuštění se nám v pravém dolním rohu objeví obrazovka s červenou ikonou bluetooth, která signalizuje, že nejsme připojeni k našemu zařízení.

Poté klikněte na tuto ikonu. Měli bychom vidět okno se seznamem všech dostupných bluetooth zařízení, kde vybereme naše zařízení k připojení.

Nyní jsme zpět na hlavní obrazovce a již můžeme ovládat televizor:

Pro přepnutí do režimu ovládání musíme stisknout tlačítko označené "Hráč". Jak jsem řekl dříve, naše tlačítko označené „AV“ se změní na tlačítko „ ":

Chcete-li se od našeho zařízení odpojit, jednoduše na několik sekund podržte tlačítko „Napájení“.

No, pár fotek mého hotového zařízení.

Dopadlo to docela dobře, zdá se. Čekám na komentáře k článku.

Posílá paket zakódovaných a modulovaných dat do IR LED a při podržení tlačítka také opakované pakety.

  • Neviditelné infračervené světlo z IR LED dopadá na modul IR přijímače Trima, kde se přeměňuje na demodulované elektrické impulsy.
  • Knihovna iarduino_IR nepřetržitě čte a dekóduje pulzy z IR přijímače (pomocí druhého hardwarového časovače Arduino)
  • V kódu smyčky zkontrolujeme data dekódovaná knihovnou s daty přiřazenými zařízení (lampě) a pokud se shodují, pak změníme stav („1“/“0“) na vstupu modulu Trema Solid State Relé tedy zapíná nebo vypíná zařízení (lampu).
  • Zařízení může být užitečné, pokud přiřadíte nepoužívaná tlačítka na dálkovém ovladači televizoru (například barevná tlačítka teletextu) k ovládání osvětlení v místnosti.

    Místo žárovek můžete připojit libovolné síťové zařízení ~220 V s proudovým odběrem do 2 A.

    Budeme potřebovat:

    • IR dálkové ovládání x 1ks (pomůže jakýkoli IR dálkový ovladač TV)
    • Zařízení (lampy), které budeme ovládat x 3 ks.

    K realizaci projektu potřebujeme nainstalovat knihovnu:

    • Knihovna iarduino_IR pro práci s IR transceivery
      DŮLEŽITÉ: knihovna používá druhý hardwarový časovač,
      NEVYSTUPUJTE SIGNÁLY PWM NA 3 NEBO 11 VÝSTUPŮ!

    Jak instalovat knihovny najdete na stránce Wiki – Instalace knihoven v Arduino IDE.

    Video:

    Schéma zapojení:

    Tento obvod používá pouze digitální moduly, které lze připojit k jakémukoli (digitálnímu i analogovému) pinu Arduino. Například jsme všechny moduly připojili k analogovým výstupům. Ne každý ví, že analogové piny Arduino mohou fungovat jako běžné digitální piny, které vám umožňují přijímat (z IR přijímače) a přenášet (do polovodičových relé) digitální signály ve formě logických „0“ a „1“.

    Pokud budete zařízení připojovat k jiným pinům, pak jejich čísla musí být uvedena ve druhém (deklarace IR objektu) a třetím (deklarace pole pinRelay) náčrtu. Programový kód je napsán tak, že můžete připojit tolik relé, kolik je volných pinů na vašem Arduinu, jednoduše uvedením čísel pinů na třetím řádku náčrtu (deklarace pole pinRelay).

    Pracovní algoritmus:

    • Na začátku, náčrt postupně přiřadí kód tlačítka IR dálkového ovládání každému polovodičovému relé. Nejprve zabliká LED a sepne se obvod polovodičového relé, jehož výstup je indikován jako první. Pokud stisknete libovolné tlačítko na IR dálkovém ovladači, kód pro toto tlačítko bude přiřazen tomuto relé a další začne blikat atd., dokud nebudou všechna relé přiřazena tlačítkům na IR dálkovém ovladači.
    • Po domluvěFunkce tlačítek, všechna relé jsou vypnutá. Pokud stisknete tlačítko IR dálkového ovládání, sepne se relé, kterému je přiřazen kód tohoto tlačítka. Pokud znovu stisknete uvedené tlačítko, relé se vypne. Zařízení nebude reagovat na stisknutí tlačítek, jejichž kód nebyl přiřazen žádnému relé.
    • Li Pokud nechcete přiřazovat kódy tlačítkům při každém spuštění, pak je explicitně uveďte při deklaraci pole varRelay a odstraňte smyčky for a while z kódu nastavení.
    • Zjistěte kód pro každé tlačítko můžete napsat následující řádek: if(IR.check())(Serial.println(IR.data);)

    Programový kód:

    #zahrnout // připojení knihovny pro práci s IR přijímačem iarduino_IR_RX IR(A5); // deklarování IR objektu pro práci s IR přijímačem (označení libovolného pinu, ke kterému je IR přijímač připojen) const uint8_t pinRelay = (A1,A2,A3); // deklaruje pole udávající čísla všech pinů (digitálních nebo analogových), ke kterým jsou připojena polovodičová relé const uint8_t allRelay = sizeof(pinRelay); // deklaruje konstantu předáním jejího počtu prvků v poli pinRelay (počet relé) uint32_t varRelay; // deklaruje pole s kódy (příkazy) IR přijímače včetně relé bool modRelay; // deklaruje pole se stavy relé uint8_t setRelay; // deklaruje proměnnou s počtem relé, pro které je zapsán příkaz z IR přijímače void setup())( IR.begin(); // inicializuje práci s IR transceiverem for(uint8_t i=0; i Modul IR Receiver v kombinaci s IR dálkovým ovladačem vám umožní snadno implementovat dálkové ovládání desky Arduino.

    Není to nic jiného než IR přijímač VS1838B s doporučeným svazkem výrobce nainstalovaným na desce.

    Pro práci s tímto modulem po vybalení potřebujete dálkový ovladač s frekvencí 38 kHz.

    Výhodou této desky je zasouvací konektor, který umožňuje bez pájení vyměnit IR přijímač za jiný pracující na frekvenci potřebné pro váš projekt.

    Hlavní technické vlastnosti:

    Napájecí napětí: 2,7 - 5,5V

    Modulační frekvence: 38kHz

    Teplotní rozsah: - 20 ... + 80°C

    Rozhraní: Digitální

    Připojení k Arduinu

    Modul je vybaven třípinovým 2,54mm konektorem

    : připojuje se ke kolíku GND

    : připojuje se k výstupu +5V

    : připojuje se k digitálnímu kolíku (například D2)

    Ukázka práce v prostředí Arduino

    Pro práci s tímto modulem je třeba nainstalovat knihovnu IRRemote

    Stáhněte, rozbalte a vložte do složky libraries ve složce Arduino. Pokud bylo Arduino IDE v době přidávání knihovny otevřené, restartujte prostředí.

    Čtení tlačítek dálkového ovládání

    Chcete-li odečíst hodnoty dálkového ovládání, vyplňte níže uvedený nákres. Vyšle kódování stisknutých tlačítek na port.

    Jako příklad použijeme dálkové ovládání, jako na obrázku, protože Tento typ dálkového ovládání je součástí sady

    O rozdílech v logice ovládání různých dálkových ovladačů si můžete přečíst v původním článku od člena naší komunity pod přezdívkou

    Ukázkový kód:

    #zahrnout int RECV_PIN = 2; IRrecv irecv(RECV_PIN); //Vytvoří objekt pro příjem signálu z konkrétního portu výsledky decode_results; //Proměnná ukládající výsledek prázdnota založit () { Seriál // Začněte přijímat) neplatný smyčka() ( if (irrecv.decode(&results)) //Při příjmu signálu... { Seriál.println(vysledky.hodnota); //...vypíše svou hodnotu na sériový port irecv.resume(); ))

    Na monitoru portů byste měli vidět následující:

    Přidržením každého tlačítka téměř na sekundu získáme asi 10 kódů. První je kód tlačítka. A po něm se začne objevovat standardní kód, který hlásí, že se tlačítko zaseklo.

    Ovládání desky Arduino pomocí dálkového ovládání

    Necháme LED na desce Arduino (D13) svítit, když je zakódováno první tlačítko, a zhasnout, když je zakódováno druhé tlačítko.

    Ukázkový kód:

    // Testováno na Arduino IDE 1.0.3#zahrnout int RECV_PIN = 2; int LED = 13; IRrecv irecv(RECV_PIN); výsledky decode_results; prázdnota založit () { Seriál.begin(9600); irecv.enableIRIn(); // Spusťte přijímač pinMode(LED, OUTPUT); ) neplatný smyčka() ( if (irrecv.decode(&results)) ( Seriál.println(vysledky.hodnota); if (results.value == 16769565) // Při příjmu kódování 1( digitalWrite(LED, HIGH); // Zapněte LED) if (results.value == 16761405) // Při příjmu kódování 2( digitalWrite(LED, LOW); // Vypněte LED) irecv.resume(); // Získání další hodnoty } }

    Hezký den všem (nebo noc, jak chcete), začněme lyrickým úvodem. V dnešní době má mnoho lidí domy TV s dálkovým ovládáním, tuner, DVD přehrávač . Mnoho lidí (a rodin) si nedokáže představit svůj domácí život bez dálkového ovladače v ruce. Souhlaste - jak skvělé je být pánem domácích spotřebičů a kdykoli diktujte svou vůli těmto kusům hardwaru. V tomto článku bychom se rádi podívali na technologii dálkového ovládání hlouběji a uvedli některé příklady použití pro naše potřeby.

    Co tedy potřebujeme jako komponenty pro náš experiment? Jako možnost prodávají se hotové moduly IR dálkového ovládání a IR přijímače. Ale nechceme čekat a platit peníze, takže se budeme chovat tvrději. Vezměme si jako základ dálkový ovladač neznámého původu, máme tu i kus desky z čínského tuneru, na kterém je připájen infračervený přijímač. Na fotografii níže můžete vidět tyto komponenty. Abych byl upřímný, dálkové ovládání bylo nalezeno mezi nepotřebným harampádím v kancelářském stole a deska s IR přijímačem byla odebrána z nejbližší opravny rádií.

    Tedy, jak jsem říkal Hannibal - „Vpřed do Kartága“ . Musíme pouze odpájet přijímač a připojit jej k desce Arduino podle následujícího schématu...

    • Připojení IR přijímače

    IR přijímač který byl připájen z desky nemá žádné označení, je to jen další neznámá čínská rádiová součástka, kterých byly vyrobeny tisíce. Zkrátka můžeme říci – v jedné budově se to spojujefotodioda, předzesilovač a ovladač . Výstup je tvořen normálouTTL signál bez vycpávky, vhodné pro další zpracování mikrokontrolérem. Nosná frekvence je možná (!) 36 kHz, ale to teď není tak důležité... Zkusme to jen připojit k desceArduino , podmíněný diagram poskytne požadované pinout tohoto zařízení. Na níže uvedeném diagramu je červeně zvýrazněn tvar těla, ve kterém je naše tělo vyrobenoIR přijímač , zvýrazněný zeleně - pinout, kterým je spojen s deskouArduino .

    Pozornost!!! Na internetu existuje mnoho pinout diagramů pro zařízení v takovém balíčku (TSOP). Pinouty uvedené v tomto článku se nemusí shodovat s žádnými nalezenými na internetu, ale takto je s námi vše spojeno. Pokud se IR přijímač při zapojení začne zahřívat, okamžitě vypněte sestavený obvod, to znamená, že pinout připojení neodpovídá skutečnému a budete jej muset vybrat téměř náhodně. Přesně to jsme udělali, protože obvody nalezené na internetu nebyly vhodné pro náš IR přijímač. Zde obecně platí, že hlavní je nespálit desku Arduino, postupovat opatrně!!!

    • IRvzdálená knihovna

    Vše je tedy propojeno. K dispozici je knihovna pro čtení kódů z dálkového ovladače IRremote.h, právě s jeho pomocí budeme studovat naše dálkové ovládání, respektive kódy tlačítek. V budoucnu budeme načtené kódy používat pro vlastní účely. Náčrt, pomocí kterého se budou číst kódy tlačítek, je uveden v příkladech této knihovny, tzv IRrecvDemo. Pozornost!!! Při kompilaci náčrtu dává chybu, na samém začátku je třeba přidat další dvě knihovny zásuvných modulů:

    #include "boarddefs.h" //Další knihovna #include "IRremote.h" #include "IRremoteInt.h" //Další knihovna int RECV_PIN = 2; //Kolík pro připojení výstupního signálu z IR přijímače //Vytvoření instance třídy IRrecv, předání pinu pro připojení signálu z IR přijímače jako parametr IRrecv irecv(RECV_PIN); výsledky decode_results; //Proměnná pro uložení přijatého kódu stisknutého tlačítka void setup() ( Serial.begin(9600); irecv.enableIRIn(); //Povolení fungování IR přijímače ) void loop() ( if (irrecv.decode( &results)) //Pokud došlo k události/bylo stisknuto tlačítko ( Serial.println(results.value, HEX); //Vyšle kód stisknutého tlačítka v hexadecimálním tvaru na monitor portu irecv.resume(); // Přečíst další hodnotu/tlačítko ) delay(100 ); )

    Po nahrání náčrtu na tabuliArduino(používáme Arduino Nano na štítě I/O Wireless Shield pro Nano ), lze otevřít monitor portu a uvidíte, jaké kódy se objeví, když stisknete tlačítka na dálkovém ovladači. Výsledek náčrtu je zobrazen na níže uvedeném snímku obrazovky:

    Mimochodem, jako monitor portu Používáme náš osvědčený software, pokud má někdo zájem, může si přečíst článek a stáhnout Serial Monitor Pro.

    #define KEY_ONOFF 0x807F807F //Tlačítko On/Off #define KEY_MUTE 0x807F48B7 //Tlačítko Ztlumit #define KEY_1 0x807F00FF //Tlačítko 1 #define KEY_2 0x807FE01F /603_define #807/2 #define KEY_2 #807/2 #define e KEY_4 0x807F20DF //Tlačítko 4 #define KEY_5 0x807FD02F //Tlačítko 5 #define KEY_6 0x807F50AF //Tlačítko 6 #define KEY_7 0x807F10EF //Tlačítko 7 #define KEY_8 0x807FF00F //Tlačítko #8 /07_8 Definice tlačítka 80 0 0x807FC837 //Tlačítko 0

    A nyní je obecně vše připraveno na závěrečný test - bude to elementární test ovládání zapínání/vypínání reléových modulů. Zde je malý úkol:

    • Používáme dva reléové moduly
    • Relé č. 1 navážeme na tlačítko „1“ dálkového ovládání
    • Relé č. 2 je svázáno s tlačítkem „2“ dálkového ovladače
    • Zapnutí kteréhokoli z reléových modulů se provádí stisknutím tlačítka, ke kterému je přiřazen
    • Vypnutí kteréhokoli z reléových modulů se také provádí stisknutím tlačítka, ke kterému je přiřazen
    • Stisknutím tlačítka On/Off se bezpodmínečně vypnou oba reléové moduly (pokud byly zapnuty, nebo je zapnutý jeden z nich)

    Náčrt, který implementuje výše uvedený úkol:

    #include "boarddefs.h" //Další knihovna #include "IRremote.h" #include "IRremoteInt.h" //Další knihovna #define KEY_ONOFF 0x807F807F //Tlačítko On/Off #define KEY_1 0x807F00FF #define_2 KEY 0x807FE01F //Tlačítko 2 #define RELOUT1 3 //Výstupní port pro relé 1 #define RELOUT2 4 //Výstupní port pro relé 2 int RECV_PIN = 2; IRrecv irecv(RECV_PIN); výsledky decode_results; static boolean REL1_ONOFF = false; static boolean REL2_ONOFF = false; void setup() ( pinMode(RELOUT1, OUTPUT); pinMode(RELOUT2, OUTPUT); Serial.begin(9600); irecv.enableIRIn(); // Spusťte přijímač ) 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; jinak REL1_ONOFF = true; break; case(KEY_2 ): if(REL2_ONOFF) REL2_ONOFF = nepravda; jinak REL2_ONOFF = pravda; přerušení; ) irecv.resume(); ) digitalWrite(RELOUT1, REL1_ONOFF); digitalWrite(RELOUT2, REL2_ONOFF); delay(100); )

    A na konci článku je video, které demonstruje práci obou skic. Pokud si přejete a máte kreativní představivost, můžete rozšířit flotilu plug-inů a vše spravovat pokročilejším způsobem. V našem článku jsme se pokusili uvést základní příklad aplikace této technologie. Děkuji za pozornost a přeji příjemné sledování!!!

    Povolte prosím javascript, aby komentáře fungovaly.

    Na internetu je mnoho článků o tom, jak si vyrobit vlastní TV ovladač pomocí Arduina, ale potřeboval jsem univerzální dálkový ovladač pro ovládání mé televize a přehrávače médií. Hlavní výhodou mého univerzálního dálkového ovladače je, že tlačítka v aplikaci pro Android telefon jsou dvouúčelová, ale podívejte se na video.



    Dálkové ovládání je velmi pohodlné v tom, že téměř stejná tlačítka na obrazovce slouží k ovládání TV a přehrávače. Jeden rozdíl je v tom, že „ AV"v režimu ovládání TV se změní na tlačítko" " (stop) při přepnutí do režimu ovládání přehrávače. Obrázky ukazují dva režimy, vlevo je režim ovládání TV, vpravo režim ovládání přehrávače.

    No, teď vám řeknu něco o vytvoření takového dálkového ovládání. Pro zařízení jsem použil dálkový ovladač k TV ERGO a dálkový ovladač k media playeru DUNE HD TV101W.

    Pro příjem dat z dálkových ovladačů jsem použil infračervený senzor TSOP1138 (analogický k TSOP4838) s pracovní frekvencí 38 kHz a připojil jej k desce Arduino podle schématu:

    Tento náčrt nebude potřeba k určení kódování přenosu dat a čtení kódu tlačítek dálkového ovládání.

    V náčrtu v řádku int RECV_PIN = 11; uveďte naše číslo PIN 4

    Po nahrání náčrtu otevřete „port monitor“ a stisknutím tlačítek dálkového ovládání se podívejte na přijatá data.

    Na obrázku je příklad skenování tlačítka napájení z dálkového ovladače televizoru a ovladače přehrávače. Nyní vytvoříme tabulku pro kódy tlačítek.

    Mám to jako na fotce výše. Pod nápisem televize kódy tlačítek dálkového ovládání televizoru; pod nápisem Hráč- kódy z dálkového ovládání přehrávače médií.

    Nyní odpojíme náš přijímač infračerveného signálu od desky Arduino a připojíme k němu Bluetooth modul HC-05 a infračervenou LED podle schématu na fotografii.

    Poté se přesuneme přímo do náčrtu.

    Skica

    #zahrnout 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) ( // kódy tlačítek pro dálkové ovládání televizoru if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); zpoždění(40 ); ) if (x == 98) ( irsend.sendNEC(0x807FA857, 32); zpoždění(40); ) if (x == 99) ( irsend.sendNEC(0x807F708F, 32); zpoždění(40); ) if (x == 100) ( irsend.sendNEC(0x807FF00F, 32); zpoždění(40); ) if (x == 101) ( irsend.sendNEC(0x807F30CF, 32); zpoždění(40); ) if (x == 102) ( irsend.sendNEC(0x807FB04F, 32); zpoždění(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); zpoždění(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); delay(40); ) if (x == 105) ( irsend.sendNEC(0x807FD827, 32); delay(40); ) if (x == 106) ( irsend.send7F38C70 , 32); delay(40); ) if (x == 107) ( irsend.sendNEC(0x807F48B7, 32); delay(40); ) if (x == 108) ( irsend.sendNEC(0x807FB847, 32); delay(40); ) if (x == 109) ( irsend.sendNEC(0x807F6897, 32); zpoždění(40); ) ) if (y == 2) ( //kódy tlačítek dálkového ovládání přehrávače médií if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); zpoždění(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); delay(40); ) if (x == 101) ( irsend.sendNEC(0xFDA857, 32); delay(40); ) if (x == 102) ( irsend.sendNEC(0xFD6897, 32 ); zpoždění (40); ) if (x == 103) ( irsend.sendNEC(0xFDA857, 32); zpoždění(40); ) if (x == 104) ( irsend.sendNEC(0xFD6897, 32); zpoždění( 40); ) if (x == 105) ( irsend.sendNEC(0xFDE817, 32); zpoždění(40); ) if (x == 106) ( irsend.sendNEC(0xFD18E7, 32); zpoždění(40); ) if (x == 107) ( irsend.sendNEC(0xFD9867, 32); zpoždění(40); ) if (x == 108) ( irsend.sendNEC(0xFD28D7, 32); zpoždění(40); ) if (x = = 109) ( irsend.sendNEC(0xFD20DF, 32); zpoždění(40); ) ) ) )


    V náčrtu budete muset upravit kódy tlačítek, konkrétně v řádcích:

    If (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40);
    Změňte hodnotu 807F08F7 na:

    If (y == 1) ( //kódy tlačítek pro dálkové ovládání televizoru if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); )
    Kde 12345678 je kód pro vaše tlačítko.

    Po úpravě náčrtu pomocí kódů tlačítek nahrajte náčrt na desku Arduino a pokračujte v instalaci aplikace do telefonu.

    Zapneme Bluetooth v telefonu, vyhledáme naše zařízení, vytvoříme pár a poté spustíme aplikaci Pult na telefonu.

    Po spuštění se nám v pravém dolním rohu objeví obrazovka s červenou ikonou bluetooth, která signalizuje, že nejsme připojeni k našemu zařízení.

    Poté klikněte na tuto ikonu. Měli bychom vidět okno se seznamem všech dostupných bluetooth zařízení, kde vybereme naše zařízení k připojení.

    Nyní jsme zpět na hlavní obrazovce a již můžeme ovládat televizor:

    Pro přepnutí do režimu ovládání musíme stisknout tlačítko označené "Hráč". Jak jsem řekl dříve, naše tlačítko označené „AV“ se změní na tlačítko „ ":

    Chcete-li se od našeho zařízení odpojit, jednoduše na několik sekund podržte tlačítko „Napájení“.

    No, pár fotek mého hotového zařízení.

    Dopadlo to docela dobře, zdá se. Čekám na komentáře k článku.