IR diaľkový prijímač

Page

Stránky / Súčiastky ku Arduinu /

Diaľkové prijímače IR signálu sú malé súčiastky veľkosti tranzistora, ktoré vedia prijímať signál z diaľkových ovládačov. Tých ovládačov, ktoré bežne používame na ovládanie televízora. Stlačenie ľubovoľného tlačidla na ovládači prenesené vo forme krátkych impulzov infračerveného svetla do prijímača, kde je signál prevedený na číslo. V závislosti od výrobcu je na každom výrobku mierne iný výsledok, ale princíp ostáva vždy rovnaký. Odošle sa nejaké číslo a v prijímači ho vieme prečítať.

Existuje viacero výrobcov IR prijímačov. Ja budem v nasledovnom texte pracovať s prijímačom TSOP4838 firmy Vishay. Ak máte iný, nepodliehajte panike, len si poriadne preštudujte jeho datasheet, aby ste vedeli, ktorá z troch nožičiek sa má kam pripojiť.

Piny

Môj prijímač TSOP4838 som kúpil v Tayda Electronics. Podľa datasheetu pracuje na frekvencii 38 kHz, čo je obvyklá frekvencia pre tento typ zariadení.

Zapojenie jeho pinov bolo:

  1. Out - Tento pin je potrebné pripojiť na niektorý digitálny pin v Arduine. Vzorové príklady ku knižnici na jeho obsluhu používajú pin 11.
  2. Gnd - Sem sa pripojí Gnd z Arduina.
  3. Vcc - Sem sa pripojí +5 V z Arduina. Podľa datasheetu je tu rozsah iba <4.5, 5.5> V, takže treba použiť normálne Arduino UNO.

Na to, aby sa prijímač dal pripojiť, toto zapojenie stačí. Ale výrobca doporučuje ešte nasledovné úpravy, ktoré majú zamedziť rušeniu. Takže ak bude váš prijímač vo väčšej vzialenisti, alebo je predpoklad, že by na napájaní mohol byť zdroj rušenia, použite ešte nasledovné úpravy.

  • Medzi Vcc a Gnd pridajte kondenzátor 4,7 uF.
  • Na pripojovací vodič sa umiestni rezistor 100R. V datasheete o tom veľa nepíšu, ale pravdepodobne tým mali na mysli RC low pass filter s frekvenciou 338 Hz.
  • Na Out vodič sa pripojí 10k rezistor ako pull-up na Vcc. V datasheete je zmienka, že by toto nemalo byť dlhodobo pripojené na GND, pravdepodobne preto, že sa bude obvod veľmi zahrievať. Knižnica IRremote, ktorú budeme používať, tento problém nemá, pretože vstupný pin má nastavený ako INPUT a preto sa s týmto bodom nemusíme trápiť.

V datasheete je ešte zmienka o tom, že úsporné žiarovky by mohli mať vplyv na kvalitu prijímaného signálu. Umiestnil som prijímač do tesnej blízkosti lampy a napriek tomu bez problémov čítal, takže toto asi nebude až taký závažný problém.

Knižnice

Problematika prijímania IR kódov je dosť zložitá. Je dobré si o tom niečo prečítať na stránke samotného tvorcu jednej knižnice, ale nie je to nevyhnutnosť. Existujú dve knižnice, ktoré tvoria de facto základ každého kódu:

  • IRremote - Pôvodná knižnica. V čase písania článku bolaaktuálna verzia 2.0.1. Ale medzitým asi došlo ku zmenám, kto knižnicu ďalej udržuje a novšie verzie existujú pod verziou 2.1.0.
  • IRlib - Novodobejší klon. Paradoxne ale obsahuje menej rozoznaných protokolov, takže bude bezpečnejšie ostať pri pôvodnom.

Knižnicu si stiahnete z gitu a rozbalíte do svojho lokálneho adresáta s knižnicami pre Arduino. V mojom príklade je to napríklad c:\Users\robo\Documents\Arduino\libraries\IRremote\. Knižnica sa stiahne pod iným názvom, takže ju nezabudnite premenovať do tejto podoby. Po reštarte IDE Arduina sa objavia medzi príkladmi aj príklady na IRRemote. Pre našu potrebu sú dôležité dva:

  • IRrecvDemo - Pomocou nej otestujete svoje zapojenie a prečítané kódy uvidíte na výstupe sériového portu.
  • IRrecvDump - V podstate to isté, iba sa navyše vypíšu aj prečítané dáta v podobe, ako boli zaznamenané. Toto použijete vtedy, ak vám prijímač z nejakého dôvodu odmieta prečítať váš diaľkový ovládač.

Keď to nefunguje

Čo robiť, keď to nefunguje? 90 percent všetkých problémov je z toho, že je vybitá batéria. Ak chcete vedieť, či je problém tam, použite digitálny fotoaparát, pozrite sa ním na ovládač. Stlačte ľubovoľné tlačidlo a sledujte, či uvidíte mihotajúce sa fialové svetielko. Ak ho vidíte, máte problém v zapojení. Rovnako by mal poslúžiť aj fotoaparát v mobile.

Príklad si môžete pozrieť v tomto videu.

Vzorový príklad

Priložil som jeden príklad, ktorý rozvíja myšlienku snímania skenkódov jednotlivých tlačidiel na diaľkovom ovládači a prevodu do enum. Enumerácia obsahuje tlačidlá od 0 po 10, plus niekoľko doplňujúcich tlačidiel. Treba si pritom predstaviť klasické diaľkové ovládanie, na ktorom akože snímate kódy klávesnice a môžete s nimi naložiť podľa potreby. Rozoznané kódy sú vypísané cez sériový port.

Príklad si môžete pozrieť aj na stránke Github.

Ako ďalej?

Ak vám to všetko bude fungovať, nič už nebráni v používaní prijímača na rôzne účely. Treba si uvedomiť, že s jednou drobnou súčiastkou dostávate k dispozícii veľkú klávesnicu z diaľkového ovládača, čo je veľká výhoda voči rôznym tlačidlám, ktoré používame na získavanie vstupu od užívateľa.

  • Ja som v tomto texte skúmal možnosti ovládania môjho budúceho tlmeného svetla v obývačke. Keď bude hotové, tu nájdete hyperlink na stránku s projektom.
  • Podobný infračervený prijímač nájdete na tejto stránke [doplniť]. Keďže sa predáva ako modul spolu s diaľkovým ovládačom, v článku sú vypísané všetky kódy daného ovládača.


Download

12.04.2016


Menu