Lekce 17
Infračervený přijímač

Serial Monitor - ikona

Úvod

Hlavním prvkem infračerveného dálkového ovládání, které je v sadě Arduino MAXI Starter kit, je infračervený přijímač HX1838. Tento infračervený přijímač umožňuje detekovat signály z infračervených dálkových ovladačů, jako je kupříkladu dálkový ovladač televize. Při připojení čidla HX1838 k modulu Arduino dokážeme řídicí signály převést na hodnoty proměnných a dále využít. Součástí experimentální sady Arduino MAXI Starter kit je kromě přijímače i dálkový ovladač. Tento univerzální ovladač se naučíme načítat, tím pádem jej můžeme někdy využít pro ovládání své budoucí aplikaci. Bude záležet jen na nás, jaké přiřadíme v ovládacím programu klávesám funkce. Nemusíme používat jen ovladač, který je v experimentální sadě, zkusme využít i jiné dálkové ovladače, které doma najdeme – třeba od televize nebo HiFi věže.

IR dalkovy ovladac

Použité komponenty

  • modul Arduino
  • USB kabel
  • IR přijímač
  • IR dálkový ovladač
  • nepájivé pole
  • vodiče pro nepájivé pole

Princip

Jako světelné zdroje se v dálkových ovladačích používají infračervené luminiscenční diody (LED), emitující záření o vlnové délce kolem 950 nm. Jelikož při způsobu zasílání informace způsobem log. 1 = „infra LED svítí“, log. 0 = „nesvítí“ by bylo obtížné zajistit bezchybný přenos datového rámce z důvodu vysokého rušení (zdrojem takového infračerveného záření je i slunce či obyčejná žárovka), využívá se pro přenos modulace.

Při modulaci vysoké logické úrovně (HIGH) se infra LED budí obdélníkovým nosným signálem o dané střídě a frekvenci, typicky mezi 30–56 kHz (v našem případě 38 kHz). Tento stav se nazývá značka. Po dobu logické nízké úrovně (LOW) není dioda aktivní, nastává mezera. Dobu trvání značky a mezery, stejně tak jako jejich význam, specifikuje použitý protokol. Přijímač signálu je nastaven na použitý nosný kmitočet. Tím, že ostatní kmitočty odfiltruje, účinně zamezuje možnému rušení okolním světlem.

V našem ukázkovém příkladu budeme chtít vytvořit ovládání vestavěné LED modulu Arduino pomocí tlačítka  ►/❚❚  na dálkovém ovladači. Když stiskneme na dálkovém ovladači tlačítko  ►/❚❚ , infračervené paprsky vyslané z dálkového ovladače budou přijaty IR přijímačem. Pokud odeslaný kód tlačítka bude odpovídat zadané hodnotě (16761405), budeme signalizovat tento stav rozsvícením vestavěné LED na modulu Arduino.


Postup experimentu

Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. Zapojení jednotlivých vodičů mezi modulem Arduino a IR přijímače zachycuje tabulka.

Blokové schéma

Blokove schema

Elektronické schéma

Elektronicke schema
IR přijímač modul Arduino
S (signal out) 2
GND (–) GND
UCC (+) 5V

Krok 2: V prostředí mBlock vytvoříme následující program.


ikona vysvetleni Vysvětlení kódu

První částí programu je obvyklé nastavení pinů modulu Arduino a deklarace použitých proměnných, zde jde o nastavení pinu 13, ke kterému je připojena vestavěna LED modulu Arduino, jako digitální výstup a nastavení čísla pinu, na kterém bude přijímána informace od IR přijímače. Proměnná pom bude sloužit pro uložení přijaté hodnoty.

V hlavní nekonečné smyčce „opakuj stále“ programu je načítán IR přijímač. Programové bloky, které se provedou jen při přijetí nějaké zprávy, jsou uzavřeny v sekci „Pokud IR přijal data…“. V takovém případě se uloží načtená hodnota do proměnné hod a vypíše se i na sériový port. Vypsání přijaté hodnoty na sériový port se hodí v případě, že bychom chtěli naprogramovat i jiné tlačítko, než zde stanovené tlačítko  ►/❚❚ . Lze tak v sériovém monitoru vidět kódy všech zachycených tlačítek. Pokud se hodnota přijatého signálu rovná kódu zvoleného tlačítka (zde 16761405) dojde k rozsvícení vestavění LED modulu Arduino (pin 13 je nastaven na vysokou úroveň HIGH), jinak je LED zhasnuta (pin 13 má nízkou úroveň LOW).


Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem tlacitko nahrat.

Krok 4: Nyní stiskni tlačítko  ►/❚❚  na dálkovém ovladači. Vestavěná LED modulu Arduino, která je připojená k vývodu 13, se rozsvítí. Stiskni libovolnou jinou klávesu na dálkovém ovladači a LED zhasne.

POZNÁMKA:
Programový kód obsahuje i zobrazení načteného kódu stisknutého tlačítka dálkového ovladače na sériový port modulu Arduino. Pro samotnou funkci naší aplikace to nyní nemá vliv. Výpisy na sériový port zde spíše slouží jako určitá kontrolní hlášení. Často se tohoto způsobu využívá při vývoji programu nebo při diagnostice problému. Pokud tedy výstup na sériový port nepotřebujeme, lze daný příkazový blok z programu zcela vynechat.
Pohled na experiment

Pokud chceme výpisy na sériový port sledovat, je opět třeba modul Arduino odpojit od prostředí mBlock a připojit k aplikaci Serial Monitor.

Krok 5: Nyní modul Arduino odpojíme od prostředí mBlock pomocí tlačítkem tlacitko odpojit. USB kabel modulu Arduino ale od počítače neodpojujeme!

Krok 6: Spustíme na počítači aplikaci Serial Monitor. V Serial Monitoru vybereme port, na které je náš modul Arduino (např. COM5) připojen a nastavíme komunikační rychlost na hodnotu 115200 baudů. Na závěr se tlačítkem  Connect  připojíme k modulu Arduino. Objeví se okno sériového monitoru, ve kterém se budou zobrazovat přijaté kódy stisknutých tlačítek na dálkovém ovladači.