Jak poprzedni zestaw, tak i ten umożliwia załączanie do 8 urządzeń, ale do sterowania każdym wyjściem można przypisać dowolny przycisk praktycznie dowolnego pilota, dzięki czemu można wykorzystać normalnie nieużywane przyciski.
Ponadto, urządzenie może "nauczyć się" kilku różnych pilotów, bez względu na to, w jakim standardzie pracują i jaki jest sposób kodowania. Możliwe jest sterowanie bistabilne lub monostabilne. Do wyjść można dołączyć bezpośrednio przekaźniki lub "żarówki" LED zasilane napięciem 12 V. Urządzenie doskonale sprawdzi się w roli włącznika urządzeń, przełącznika sygnałów lub sterownika oświetlenia.
Budowa
Schemat elektryczny przełącznika jest przedstawiony na rysunku 1. Głównym elementem jest mikrokontroler typu ATmega328, a zawarte w nim oprogramowanie jest odpowiedzialne za analizowanie i dekodowanie sygnałów nadawanych w podczerwieni. Procesor jest taktowany wewnętrznym generatorem 8 MHz.
Jako odbiornik promieniowania podczerwonego zastosowano specjalizowany odbiornik typu TSOP4836, który zawiera wszystkie elementy niezbędne do odbioru promieniowania podczerwonego. Jest zasilany poprzez filtr złożony z rezystora R1 i kondensatora C6, co poprawia czułość odbiornika (eliminuje zakłócenia pochodzące od zasilania).
Jako driver dla poszczególnych kanałów przełącznika zastosowano układ typu ULN2803A, który zawiera 8 stopni wzmacniaczy tranzystorowych z diodami zabezpieczającymi umożliwiającymi bezpośrednie sterowanie przekaźnikami. Wyjścia mogą być obciążone maksymalnym prądem równym 200 mA, a maksymalne napięcie w tym układzie może wynosić 20 V. Sygnały wyjściowe zostały wyprowadzone na złącze CON2.
Do programowania parametrów przełącznika zastosowany został przełącznik S1 8-sekcyjny DIPSWITCH oraz szpilki goldpin JP1 opisane PROG. Zwierając JP1 można przełączyć procesor w tryb programowania a przy pomocy S1 można ustawić numer kanału, dla którego będą programowane parametry. Przełącznik S1 służy także do wyboru rodzaju reakcji danego wyjścia na odebrany kod pilota. Do sygnalizacji stanu pracy przełącznika służą diody świecące LED1 i LED2, pierwsza sygnalizuje aktywność urządzenia krótkimi mignięciami (co kilka sekund), druga sygnalizuje odebranie poprawnego kodu. Diody sygnalizują także etapy trybu programowania, co jeszcze zostanie dokładnie opisane.
Cały układ jest zasilany za pomocą stabilizatora 78L05. Dioda D1 zabezpiecza układ przed napięciem zasilania o błędnej polaryzacji, a kondensatory C1...C5 filtrują napięcie.
Program
Główne zadanie, które wykonuje program to odbieranie sygnału z odbiornika podczerwieni i odnajdowanie w tym sygnale ramek, czyli kodów wysyłanych z pilota IR. Taka ramka zawiera zwykle od kilkunastu do kilkudziesięciu impulsów, których czasy trwania i czasy przerwy z reguły mieszczą się w przedziale od 0,2 ms do 3 ms. Program pozwala na pomiar impulsów o długości do 8 ms, a jeżeli na wejściu sygnału utrzyma się niezmieniony poziom przez 8 ms to jest znak, że nadawanie jednej ramki zostało zakończone i najbliższy impuls będzie początkiem nowej ramki.
Gdy pojawi się sygnał, program odmierza czasy impulsów i czasy przerw pomiędzy nimi i zapisuje wyniki w tablicy aż do kolejnej 8-milisekundowej przerwy lub do uzyskania 64 pomiarów. Zatem jedynymi ograniczeniami odnośnie do pilota (kodu), którego urządzenie potrafi się "nauczyć" jest czas trwania każdego pojedynczego impulsu i przerwy, które muszą zawierać się we wspomnianych granicach oraz maksymalna długość kodu - 32 impulsy (i 32 przerwy).
Ostatni warunek to częstotliwość modulacji sygnału IR - każdy pilot wysyła kody na jakiejś częstotliwości nośnej. Najpopularniejsza, najczęściej spotykana to 36 kHz. Mniej popularne to 38 kHz i 40 kHz. Zastosowany odbiornik podczerwieni TSOP4836 jest przystosowany do odbioru sygnałów o częstotliwości 36 kHz, ale z nieco mniejszą czułością odbiera również 38 kHz. W razie potrzeby odbiornik można wymienić na podobny o innej częstotliwości np. TSOP4833 - 33 kHz, TSOP4838 - 38 kHz, TSOP4840 - 40 kHz.
Pomiar czasów impulsów dokonywany jest przy pomocy układu licznikowego TIMER0, który skonfigurowany jest do pracy z okresem ok. 8 ms i rozdzielczością 0,032 ms. Każda zmiana stanu z wejścia odbierającego sygnał IR generuje przerwanie a podprogram obsługi przerwania powoduje odczyt i zapisanie w tablicy scan.buffer[] stanu licznika i wyzerowanie go w celu ponownego odliczania.
Po skompletowaniu całej ramki zmienna scan.status przyjmuje wartość SCAN_COMPLETE i blokuje nadpisywanie tablicy do momentu wyzerowania statusu. Utworzona tablica porównywana jest z ramkami zapisanymi w pamięci eeprom mikrokontrolera, z uwzględnieniem pewnej tolerancji określonej stałą SCAN_PULSE_TOLERANCE. Jeśli porównanie da wynik pozytywny to podejmowana jest odpowiednia akcja.
Niektóre standardy transmisji na podczerwień wstawiają w ramce bit zmienny - np. RC5 i zawarty w nim toggle bit. W takim przypadku urządzenie reagowałoby tylko na co drugie naciśnięcie przycisku pilota. Problem ten został rozwiązany w ten sposób, że urządzenie zapamiętuje dwa kody pilota dla jednej funkcji - jest to sposób prosty ale wymaga odpowiednio dużo pamięci dlatego urządzeniem steruje mikrokontroler Atmega328 (1024B pamięci EEPROM).
Wykaz elementówRezystory: Kondensatory: Półprzewodniki: Inne: |
Montaż i uruchomienie
Przełącznik został zmontowany na płytce, której schemat montażowy pokazano na rysunku 2. Montaż należy wykonać według ogólnych zasad, rozpoczynając od wlutowania elementów najniższych - rezystorów, a kończąc na najwyższych - złączach. Diody LED należy zagiąć i skierować ko krawędzi płytki, a kondensator C1 warto zamontować poziomo.
Po zmontowaniu urządzenia należy umieścić układy scalone w podstawkach i zamontować odbiornik podczerwieni do złącza CON3. Teraz należy dołączyć zasilanie, np. z zasilacza 12 V, do złącza CON1, jeśli diody zaświecą się na ok 1 s i zgasną to oznacza, ze urządzenie działa prawidłowo.
Obsługa i programowanie
W czasie normalnej pracy, aktywność urządzenia sygnalizuje krótkimi mignięciami co kilka sekund dioda opisana ST (STATUS). Dioda miga również wtedy, gdy do urządzenia dotrze sygnał z pilota. Druga dioda IR sygnalizuje nieco dłuższym mignięciem odebranie sygnału, który został wcześniej zaprogramowany. Aby uruchomić tryb programowania należy w pierwszej kolejności na przełączniku 8-sekcyjnym wybrać numer wyjścia, które będziemy programować - przełączyć daną sekcję w pozycję ON, a wszystkie pozostałe w pozycje OFF.
Teraz należy zewrzeć na ok 2 s szpilki opisane PROG. Zaświecą się obie diody a po chwili zostanie tylko dioda ST. Teraz urządzenie czeka na pierwszy sygnał pilota. Po odebraniu prawidłowego sygnału dioda ST zgaśnie a zaświeci się dioda IR - teraz urządzenie czeka na drugi sygnał z pilota (lub jeszcze raz ten sam sygnał). Po ponownym odebraniu prawidłowego sygnału zaświecą się na chwilę obie diody, po czym zgasną.
Oznacza to, że programowanie sygnału pilota zostało zakończone i urządzenie powróciło do normalnej pracy. Analogicznie należy zaprogramować wszystkie wyjścia (lub tylko tyle ile potrzebujemy). Nie należy programować tego samego sygnału dla kilku wyjść - urządzenie załączy tylko jedno z tych wyjść (o najniższym numerze). Po zaprogramowaniu sygnałów z pilota za pomocą przełącznika 8-sekcyjnego można skonfigurować tryby pracy dla poszczególnych wyjść.
Jeśli dana sekcja przełącznika jest ustawiona w pozycji OFF, to odpowiadające jej wyście pracuje bistabilnie i przyciśnięcie przycisku pilota załącza wyjście, a kolejne przyciśnięcie przycisku wyłącza. Jeśli sekcja przełącznika jest ustawiona w pozycji ON, to odpowiadające jej wyjście pracuje monostabilnie - wyjście jest załączone dopóki wciśnięty jest przycisk, zwolnienie przycisku wyłącza wyjście.
Na rysunku 3 poglądowy schemat dołączenia do urządzenia przekaźnika lub oświetlenie zbudowanego z diod LED zasilanych napięciem +12 V.
KS