17.12.2018
Dálkové ovládání a přijímač VS1838B, které v projektu použiju, pracují s frekvencí 38 KHz.
Informace o různých protokolech a funkci přijímače jsem čerpal ze stránek sbprojects.net. Zdá se, že vysílač používá protokol NEC.
Výstupem přijímače, který je dále zpracováván mikrokontrolerem, jsou střídající se úrovně L (Low = Nízká) a H (High = Vysoká). Nízká úroveň značí, že vysílač je právě aktivní, naopak vysoká úroveň signalizuje pauzu. Na začátku přenosu signálu je (u protokolu NEC) úroveň na výstupu po dobu 9 ms na nízké úrovni, po čemž je pauza 4.5 ms (neboli úroveň je H). Následují kódovaná data - celkem 32 bitů. Přitom jednička je kódována úrovní L po dobu 560 μs následované úrovní H po dobu 1.69 ms. Nula je kódována jako úroveň L po dobu 560 μs následovaná úrovní H po dobu 560 μs.
Zpracování signálu provádím tak, že změna úrovně signálu na výstupu přijímače způsobí přerušení na vstupu mikrokontroleru. Ten měří čas mezi jednotlivými přechody mezi úrovněmi. Program na základě výše uvedených vlastností protokolu a zaznamenaných časových údajů vygeneruje 32bitové číslo, které je následně odesláno přes USB do PC. Program běžící v PC na základě předdefinovaných pravidel provede příslušnou akci - například vypne zvuk.
Na závěr dvě poznámky. Jedna z věcí, kterou neřeším, je držení tlačítka na dálkovém ovladači, které způsobí opakované zasílání speciálního kódu. Druhou věcí je to, že mě nezajímá význam dat přenášených protokolem. Podstatné je to, že stisk tlačítka na ovladači prostřednictvím přijímače a mikrokontroleru způsobí odeslání jedinečného 32bitového čísla do PC.