English version

Jednoduché 16-kanálové dálkové ovládání

    Úvod:
Toto zařízení slouží k dálkovému zapínaní a vypínání až 16ti nezávislých spotřebičů pomocí dálkového ovladače. Stiskem tlačítka 1 až 16 se sepne příslušný výstup, dalším stiskem se vypne. Dálkové ovládání pracuje na infračerveném principu, s dosahem až 45m. Pokud Vám stačí 4 kanály, můžete použít 4-kanálové dálkové ovládání.
    Metoda přenosu (přenosový protokol):
Nosná frekvence dálkového ovládání je 36 - 38 kHz. Signály jsou přenášeny modulací vzdáleností pulzů (pulse distance modulation, PDM). Oproti modulaci šířkou pulzů (pulse width modulation, PWM) má výhodu v menším příkonu vysílače. Průběh signálu je znázorněn na obr. 3. Dlouhá mezera (1726 cyklů CPU) mezi pulzy představuje log1, krátká (432 cyklů) log0. Jednotlivé vzorky jsou odděleny superdlouhou mezerou (6912 cyklů CPU). Pulz má vždy délku 432 cyklů CPU a je tvořen 16-ti impulzy nosné frekvence. Startovací bit se nevysílá. Kód se skládá ze 4 datových bitů (to pro kódování 16 tlačítek postačuje) a ze 4 kontrolních bitů, které jsou logickou inverzí datových bitů. Kontrolní bity slouží k ověření správnosti přenosu. Díky invertovaným kontrolním bitům je také délka vzorků konstantní. Rozdíl mezi krátkou a dlouhou mezerou a mezi dlouhou a superdlouhou mezerou je vždy čtyčnásobný, takže přenosový systém je odolný vůči velkým odchylkám taktovacích frekvencí vysílače a přijímače. Do tolerance se bohatě vejdou odchylky interních RC osciltorů vysílače i přijímače a není tedy nutné používat krystaly. Kód tlačítka 1 je 0000, kód tlačítka 2 je 0001, kód tlačítka 3 je 0010, ... kód tlačítka 16 je 1111.
    Vysílač (dálkový ovladač):
Vysílač dálkového ovládání je řízen Atmel AVR mikroprocesorem IO1 - ATTiny2313A běžící na frekvenci 1 MHz z interního RC oscilátoru. Povely jsou přenášeny pomocí infračerveného záření vysílaného IR LED diodou s vlnovou délkou 940nm. Lze použít např. TSAL6100, TSAL6200, TSAL5100 nebo TSAL5300 v klasickém 5mm pouzdře (max. trvalý proud 100mA). Při stisku tlačítka vysílač vysílá jemu odpovídající kód. Program zajišťuje, že vysílání vždy skončí celým vzorkem nehledě na to, kdy bylo tlačítko uvolněno (nedojde k odeslání necelého vzorku). Zajišťuje také, že je při každém stisku odesláno alespoň 5 vzorků za sebou. Impulzní proud vysílací LED1 je nastaven na cca 320 - 400 mA. Proud je stabilizován obvodem s T1, T2, R1, R2 a díky tomu vlivem vybíjení baterie výrazně neklesá. Proud je dán odporem R1. Nosná frekvence má střídu 33,3% (1/3). Celková střída modulovaného signálu je jen 6,6%, a proto lze volit vysoký pulzní proud a získat rozumný dosah. Je nutno dbát na to, aby nebyl překročen maximální proud zvolené LED při dané střídě. Vysílací frekvence je přibližně 37 kHz (taktovací frekvence / 27). Vysílač se napájí napětím 3V ze dvou tužkových (AA) nebo mikrotužkových (AAA) článků, případně jinou baterií cca 3V. Minimální katalogové napájecí napětí IO1 je 1,8V. Odběr při vysílání je cca 20 - 30mA. V klidu vstupuje IO1 do módu power down a spotřeba celého vysílače je pod 1uA (proud mnohem menší, než samovybíjení baterie, tedy zcela zanedbatelný). Kondenzátor C2 umístěte co nejblíže IO1.
    Přijímač:
Přijímač dálkového ovládání je řízen IO2, také typu ATTiny2313A, taktéž taktovaným frekvencí 1 MHz z vnitřního oscilátoru. Jako senzor infračerveného signálu slouží integrovaný přijímač IO3. Lze použít přijímače pro frekvence 36 - 38 kHz (jejich pásmová propust je relativně široká), např. TSOP1736, TSOP4836, TSOP31236, SFH5110-36, OSRB38C9BA, OSRB38C9AA, TSOP4838, TSOP34838 nebo SFH5110-38. Integrovaný přijímač přijímá, zesiluje a demoduluje infračervený signál, má zabudovanou automatickou regulaci citlivosti a potlačení okolního světla, pásmovou propust, demodulátor a tvarovací obvod s TTL výstupem. Všechny vyjmenované mají maximum citlivosti při 940-950 nm. Tomu také musí odpovídat vysílací LED. Často se vyskytující typy jako např. 850nm jsou nevhodné! Mně se nejvíce osvědčil přijímač OSRB38C9BA (lepší citlivost v porovnání s testovanými TSOP1736 a SFH5110-38). Výstup přijímače je vyhodnocen mikroprocesorem IO2. Ten vyhodnocuje přijímaný signál a pokud přijme 2x za sebou stejný kód a shodují se i kontrolní bity, vyhodnotí příjem jako bezchybný a překlopí příslušný výstup. Po připojení napájení je výchozí stav všech výstupů log0 (vypnuto). K výstupům přijímacího obvodu se připojí výkonové spínače, např. s relé dle obr. 2. Pokud chcete využít všechny kanály, postavte výkonový spínací obvod 16x. Použijte relé s kontakty dimenzovanými na požadované napětí a proud. Cívka relé může být na 5V, potom ji lze napájet ze stejného zdroje jako přijímač. Pokud je cívka na vyšší napětí, např. 12V nebo 24V, relé se napájí ze zdroje příslušného napětí. Napájecí napětí 5V lze z vyššího napětí získat např. pomocí integrovaného obvodu 7805 nebo 78L05. Odběr přijímače je, pokud jsou všechny výstupy v log0 nebo nezatížené, dán zejména odběrem IO3. Ten je dle typu cca 0,5 - 5mA. IO2 odebírá v klidu cca 25uA. Pokud se relé napájejí z jiného napětí, může být napájecí napětí přijímače i nižší, než 5V. Spodní hranice napětí je omezena zejména IO3. Např. v případě OSRB38C9BA je to 2,7V. IO2 začíná pracovat při napětí 1,7 - 2V, typicky 1,8V (BOD je nastaven na 110). V sepnutém stavu je odběr dán hlavně odběrem cívek relé. Cívka relé by měla odebírat do 500mA, jinak je nutno použít jiný T3 a případně R4 (je možno použít i MOSFET-N). Typické zapojení vývodů IO3 je na obr. 1, avšak pro Váš konkrétní typ raději nahlédněte do jeho datasheetu. Kondenzátor C4 umístěte co nejblíže IO2.
    Dosah:
Dosah záleží zejména na typu a proudu LED1 a typu přijímače IO3. Vysílací IR LED se liší zejména svým celkovým zářivým tokem (měřeno v mW), zářivostí (měřeno v mW/sr) a vysílacím úhlem. Důležitý je i max. proud LED. Nutno je také dodat, že zářivý tok a zářivost různých LED může být v datasheetu udávána při různém proudu! Maximální možný dosah při dobrém nasměrování je dán zářivostí. LED se stejným zářivým tokem, ale menším úhlem, má větší zářivost a naopak. V případě LED s menším úhlem je je však nasměrování vysílače kritičtější. Na menší vzdálenosti se signál přenáší i odrazy od objektů a nezáleží tedy příliš na nasměrování. Pokud není vysílač nasměrován, závisí dosah zejméne na zářivém toku. Já jsem jako IR přijímač zvolil OSRB38C9BA. Jako vysílací LED jsem testoval 4 typy. Největší dosah, cca 45m, lze získat s diodami TSAL6100 a TSAL5100. Diody TSAL6200 a TSAL5300 poskytují dosah cca 30m, ale jsou méně kritické na nasměrování.
    Poznámka: Program je určen pro ATTiny2313A. Na starých typech ATTiny2313 a ATTiny2313V nemusí fungovat - některé jejich vývody nejsou vybaveny funkcí PCINT.

     Pozor! Pokud zařízení spíná síťové napětí nebo jiné nebezpečné napětí, je nutno s ním zacházet odpovídajícím způsobem. Při špatné konstrukci zařízení se může nebezpečné napětí dostat do všech jeho částí. Vše děláte jen na vlastní nebezpečí a zodpovědnost.

Celý program ke stažení:
zdrojový kód vysílače v assembleru (ASM)
zdrojový kód přijímače v assembleru (ASM)
přeložený program vysílače v HEX souboru (396 Bajtů)
přeložený program přijímače v HEX souboru (422 Bajtů)
Zapisování programu do AVR se podrobněji věnuji zde.

Případným zájemcům mohu naprogramované mikroprocesory poslat. Více info zde.


Obr. 1 - Schéma jednoduchého 16-kanálového dálkového ovládání s ATtiny2313A.


Obr. 2 - Schéma výkonového spínače s relé. Při využití všech 16ti kanálů postavit 16x.


Obr. 3 - Průběh signálu (tlačítko 2 - binární kód 0001).


Nastavení konfiguračních bitů vysílače


Nastavení konfiguračních bitů přijímače


Přijímač dálkového ovládání v kontaktním poli


Infračervené vysílací LED.


Různé přijímače použitelné jako IO3.



Přidáno: 7. 11. 2012
zpět na úvodní stránku