Univerzální pětikanálový IR interface

Autor: Michal Zajačik – Snažil jsem se vytvořit univerzální přijímač k infračerveným dálkovým ovladačům od spotřební elektroniky. Prvním cílem bylo, aby se daly jednoduše uživatelsky mazat nebo zadávat kódy tlačítek na které má přijímač reagovat (bez nutnosti jak koliv zasahovat do konstrukce finálního výrobku, nebo připojovat zařízení k PC). Jak se to povedlo, a co z toho nakonec vzniklo posuďte sami.

Vlastnosti a popis zařízení:

  • Lze libovolnými infračervenými dálkovými ovladači, konkrétními tlačítky, ovládat nezávisle všech pět výstupů přijímače.
  • Do paměti lze zeznamenat až 20 tlačítek (kódů tlačítek – protokoly NEC nebo RC5).
  • Výstupy lze ovládat pomocí příslušných vstupů (tlačítka, spínače, TTL logika, hradla, kontakty relé …)
  • Výstupy lze ovládat pomocí PC
  • Lze se pomocí PC dotazovat na stavy jednotlivých výstupů
  • Lze nastavit, jaký logický stav má být na výstupu po zapnutí napájení mikroprocesoru
  • Lze do PC automaticky posílat změny na vstupech IN0 – IN4
  • Lze nastavit vzájemné chování vstupů, výstupů, PC a přijatých infra kódů z tlačítek dálkových ovladačů
  • Infra kódy lze po přijetí přijímačem automaticky posílat do PC
  • Lze nastavit zda se má daný kanál chovat jako tlačítko nebo jako bistabilní klopný obvod
  • Lze povolit či zakázat manuální zaznamenávání a mazání kódů
  • Lze nastavit adresu infra přijímače. Více přijimačů na jednom portu RS232
  • Vstupy pro infra čidlo lze paralelně spojit a připojit tak k jedinému čidlu SFH506-36 více procesorů
  • Dále je zde popsaný kompletní protokol komunikace PC s Infra přijímačem
  • Můžete si napsat vlastní uzivatelské rozhraní pro PC … fantazii se meze nekladou
  • Je zde jednoduché uživatelské rozhraní pro nastavení konfigurace zařízení 

Možných nastavení je mnohem víc, je lepší si to vyzkoušet. Jak tedy začít s pokusy ? Pro vyzkoušení funkce přijímače se jako ideální osvědčilo zapojení, které je vidět na obrázku nahoře. Na výstupy připojíme diody LED (2 mA) s rezistorem 1K, a na vstupy mikrospínače. Zapojení převodníku MAX232 je standardní podle katalogu.

 Nyní můžeme připojit napájecí napětí 5V. Diody jsou zhasnuty. Mikroprocesor je právě nakonfigurován tak, aby výstupy byly po resetu mikroprocesoru, nebo zapnutí napájení v logické jedničce (+5V).Vstupy se chovají jako bistabilní klopný obvod, překlápějící se vzestupnou hranou na vstupu (_-). Veškeré logické změny na vstupech se budou posílat do PC a taktéž naučené kódy tlačítek.

 Toto nastavení si můžeme hned vyzkoušet. Stiskneme tlačítko na některém vstupu, nic se nestane. Po jeho uvolnění se rozsvítí LED na příslušném výstupu.(BKO reagující na vzestupnou hranu.)

Přijímač je navržen jako pětikanálový. Kanál tvoří jeden vstup (IN0 – IN4) a k němu příslušný jeden výstup (OUT0 – OUT4). Další součástí je IR přijímač SFH506-36 a v neposlední řadě převodník MAX232 se čtyřmi elektrolytickými kondenzátory 10M pro komunikaci s PC. Všechny tyto jmenovené “součásti” jsou volitelné. Mohou, ale nemusí být použity, nebo zapojeny do konkrétní konstrukce (na schématu připojeno čárkovaně). Nutnými součástkami pro běh zařízení je krystal o kmitočtu 18,432MHz, dva keramické kondenzátory 22 pF, rezistor 2K2 nutný pro reset mikroprocesoru a naprogramovaný mikroprocesor PIC 16F628. Elektrolytický kondenzátor 22M složí jako filtr napájecího napětí. Chování přijímače, si může každý nakonfigurovat sám pomocí jednoduchého uživatelského programu infra.exe, který je volně ke stažení na konci článku (infra.zip 410 KB). Stačí konečné zařízení připojit pomocí převodníku MAX232 na sériový port počítče (pokud komunikace s PC není již součástí finálního výrobku), zapnout napájení 5V, spustit program infra.exe a provést požadované nastavení. Pokud naše finální konstrukce není jako doplněk k PC a zařízení již k PC nebudeme chtít připojit, můžeme blok s převodníkem MAX232 odpojit. Nebude již potřeba. Konfigurace přijímače je uložena v EEPROM na čipu PIC16F628. To je zárukou toho, že se nám nastavení nezmění ani po vypnutí napájení, nebo resetu mikroprocesoru.

Postup záznamu tlačítka ke konkrétnímu kanálu přijímače:

  • Namíříme dálkový ovladač na náš infra přijímač.
  • Stiskneme příslušné tlačítko na ovladači na které chceme aby náš přijímač reagoval a držíme.
  • Čtyčikrát klikneme na mikrospínač, jehož příslušný výstup chceme ovládat
  • Pustíme tlačítko na ovladači – je zaznamenáno.

Nyní půjde příslušným tlačítkem ovládat daná LED na přijímači.

     Pokud nám daný kanál přijímače reaguje jen na každé druhé stisknutí tlačítka na ovladači, pracuje ovladač s protokolem RC5. Tento protokol při každém vyslání kódu od příslušného tlačítka mění tzv. toggle bit. Není nic snažšího než zaznamenat i druhý kód s tímto změněným bitem. Pak už bude výstup daného kanálu reagovat na každý stisk tlačítka na ovladači.

Postup záznamu tlačítka na ostatní kanály se uskuteční analogickým postupem

Smazání příslušného tlačítka z paměti konkrétního kanálu:

     Pokud chceme smazat příslušné tlačítko z paměti, provedeme stejný postup jako při záznamu. Je-li daný kód tlačítka v paměti uložen, bude vymazán.

  • Namíříme dálkový ovladač na čidlo přijímače.
  • Stiskneme příslušné tlačítko na ovladači které chceme z paměti vymazat a držíme.
  • Čtyřikrát klikneme mikrospínačem na příslušném kanálu, na kterém je tlačítko zaznamenáno.
  • Pustíme tlačítko na ovladači – je smazáno .

     Pokud stále přijímač reaguje na každé druhé stisknutí tlačítka na ovladači, vymažeme z paměti i druhý kód se změněným toggle bitem (protokol RC5).

Smazání celé paměti, např. pokud se rozbil příslušný ovladač se provedeme následujícm postupem:

  • Namíříme jakýkoliv IR dálkový ovladač na náš přijímač.
  • Stiskneme jakékoliv tlačítko na ovladači a držíme.
  • Osmkrát klikneme mikrospínačem na jakém koliv kanálu.
  • Pustíme tlačítko na ovladači – je smazána celá pamět.
  • Kliknutí mikrospínačem musíme zvládnou v určitém čase jinak programování bude bez efektu.

     Až do teďka jsme za kliknutí považovali spínač stiskout a pustit. To bylo jedno kliknutí. Záznam a mazání tlačítka do/z paměti se tedy provádí čtyřmi změnami na příslušném vstupu, které jsou viditelné na LED diodě na výstupu.U nastavení kanálu jako tlačítko to bude tedy znamenat: stisknout, uvolnit, stisknout, uvolnit.

     Tímto způsobem můžeme tedy jednoduše uživatelsky zadávat nebo mazat kódy tlačítek do paměti, aniž bychom museli použít PC. Podobně je to provedeno v konstrukci Učící se IR spínač.

   Celé zařízení jsem odlaďoval a zkoušel s různými IR ovladači (Aiwa, Sony, 2 x Tesla, ovladač od satelitu, Votra atd.). Zkoušel jsem mnoho algoritmů jak vysílané kódy dekódovat (RC5 a NEC). Nejprve jsem vycházel z teoretického popisu jednotlivých protokolů podle normy. To neměo moc velký úspěch. Vždy se mi podařilo perfektně dekódovat jen některé ovladače (vetšinou Tesla). U ostatních se stávalo, že po naučení na jedeno konkrétní tlačítko, přijímač reagoval i na různá jiná téhož ovladače (ne všechny). Jak jsem se nakonec přesvědčil na osciloskopu, normu protokolu přesně dodržuje jen málo kdo. U některých RC5 chyběl start bit, jinde byly dva, o dodržení časování ani nemluvim . Co firma to protokol originál. Nakonec jsem přistoupil na řešení protokoly nedekódovat, ale vytvořit z každého kódu jedinečné 5B číslo. To se myslím povedlo. Přijímač začal pracovat tak jak má se všemi testovanými ovladači. Jde naučit vžy na jedno konkrétní tlačítko(a). Vzhledem k rozmanitosti značek zkoušených ovladačů si dovoluji předpokládat, že zařízení bude pracovat s většinou standardních ovladačů od spotřební elektroniky. 

     Připojme tedy přijímač k PC. Zapojení pinů na konektoru CANON 9 je vidět na schématu. Spustíme program infra.exe. Jako první se nám oběví sdělení abychom zvolili port, na kterém máme připojeno naše zařízení. Třeba COM2. Prvním krokem by bylo vhodné zjistit aktuální konfiguraci přijímače. Stiskneme tedy tlačítko se zeleným panáčkem a nápisem INFRA -> PC. Tím se provede načtení konfigurace infra přijímače do PC. Výsledek je možné sledovat v jednotlivých panelech pro každý kanál zvlášť.

     Pokud provedeme nějakou změnu v nastavení, můžeme ji tlačítkem PC -> INFRA odeslat do přijímače. Následně není nic jednodušího než si konfiguraci ověřit přímo na funkčnosti zařízení.

    K pokusům můžeme využít i panel TESTY. Mimo jiné je zde zobrazováno jakým způsobem přijímač komunikuje s PC. Jsou vidět přijaté i odeslané byty. Na řádce je vždy zobrazován jeden příkaz a jedna odpověď. Popis komunikace IRDO.

POZOR: výstup OUT 2 (vývod 3) je výstup s otevřeným kolektorem !!! 

————————————————————————————————————————
Cena naprogramovaného PIC 16F628-20/P ……………..240 Kč + poštovné.
Popisovaný obvod je možno objednat u autora : Michal Zajačik

 

______________________________________________________________________________________

______________________________________________________________________________________