Fórum témák
» Több friss téma |
Cikkek » Távirányítható hatcsatornás bemenetválasztó Távirányítható hatcsatornás bemenetválasztó
Szerző: libesz, idő: Aug 9, 2011, Olvasva: 25305, Oldal olvasási idő: kb. 3 perc
A működés egyszerű: az előlapon található gombok egyenértékűek a távirányító gombjaival, mindkettővel mindig kapcsolgathatunk. Bekapcsoláskor a legutóbb használt bemenetet választja ki, mivel minden átkapcsoláskor EEPROM -ba menti az állapotát. Szintén EEPROM-ban tárolja a távirányító-gombok bitmintáit. Elég sok időt eltöltöttem vele, hogy megfejtsem az infrás távirányítók kommunikációját. Neten nézelődtem, láttam hogy rengeteg, többé-kevésbé szabványos protokoll van (pl. RC5 code, JVC panasonic code, JCC protocol, daewoo protocol, sony infrared remote protocol, stb.), de valahogy azok a távirányítók, amik nekem otthon voltak, nem passzoltak sehova. Nem biztos, hogy a legjobban sikerült lemodelleznem a dolgot és szintén nem biztos, hogy az alábbi információkkal reprodukálható lenne például egy gombnyomás IR adása, de annyira mindenképpen elég, hogy bármely két gombnyomást meg tudjuk különböztetni egymástól a vevő oldalon. Elég sok szenvedés után, a magam körül talált távszabályzók döntő többségénél azonosnak bizonyult a következő séma: A TSOP31233 kimenete invertált, tehát üresjáratban a kimenete H. A startbit egy adott idejű L szintű szakasz, amit szintén egy adott hosszúságú H szakasz követ. Fontos, hogy ez a két időérték távirányítónként változik. Ezután következnek az adatbitek, amiknek a száma szintén eltérhet az egyes eszközöknél. Az adatbitek RZ kódolással érkeznek, vagyis minden bit információ egy LH és egy HL átmenetből áll, a bit értéke 0, ha a L és az H idő aránya 1:1, 1 pedig amikor ez az arány 1:3 (vagy esetleg 1:2). Az adásnak akkor van vége, amikor a TSOP kimenete sokáig (például öt adatbit idő) H -ban marad. Viszonylag könnyű tehát felismerni az adás elejét, mert az üresjárat H szintjét a startbit hosszú L szintje töri meg, amit követ egy rövidebb H periódus. A startbit hossza többszöröse az adatbiteknek, így megkülönböztethetőek egymástól. A program minden távirányítóval képes együtt működni, aminek az adására nagyjából igazak a fentiek (működött többek közt Samsung TV, régi 3M projektor, Technics CD deck, Gigabyte TV tuner kártya távszabályzójával, nem működött viszont például a UPC mediabox-éval). Mivel ez a megoldás nem a szabványos gomb kódokra épül, szükségszerű tehát, hogy a szerkezet meg tudja tanulni a később felismerni kívánt gombokat. Magáról a bemenetválasztóról még annyit, hogy tanuló üzemmódba akkor kerül, ha a bekapcsolás pillanatában az 1. bemenet panelen levő nyomógombját lenyomva tartjuk. Ilyenkor a bemenetek visszajelző LED -jei sorra felvillannak, ekkor a megfelelő gombot kell nyomkodni a távkapcsolón, majd ha elegendő egyforma mintát gyűjtött a szerkezet, elmenti és jön a következő. Aki csak használni akarja a kapcsolást, az lapozhat is, a forráskódot letöltve és lefordítva már használhatja is a programot (legfeljebb a MAXTIME_STARTBIT (ir.h) konstanssal kell hangolni 1-1 távirányító esetében). Akit érdekel a program, például további projekt fejlesztéséhez, annak adok egy kis útmutatást a függvénykönyvtárhoz, amit az alkalmazáslogikától (remélhetőleg ) teljesen elszeparáltam (ir.c és ir.h). Az infra kezelő rész két lényeges helyen kell hívódjon: az egyik helyen az időmérő rész, a másik helyen pedig amikor a TSOP kimenete változik:
Még két fontos függvény a tanuló funkcióhoz:
Ha definiáljuk a DEBUG szimbólumot a fordítónak (ir.h), az USART-on egy halom információt kapunk a működésről (38400 bps, 8N1) : A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |