Wyłącznik uciążliwych reklam radiowych

BASCOM

Urządzenie zaprojektowane do wyłączania czasowego głupich reklam radiowych, ale może służyć do zdalnego włączania innych urządzeń.

Wyłącznik uciążliwych reklam radiowych

Urządzenie pozwala wyłączyć na kilkadziesiąt lub kilkaset sekund odbiornik radiowy zasilany z sieci w momencie, kiedy słyszymy zapowiedź nudnej, powtarzanej w nieskończoność reklamy, chroniąc nas w ten sposób przed zdenerwowaniem.

 

Opis urządzenia

Sercem urządzenia odbiorczego, widocznego na rys.1 jest mikroprocesor Attiny2313, oznaczony jako Us1 z dołączonym gniazdem ISP służącym do programowania. Dalsze elementy i podzespoły to: Us4, czyli dekoder MC145027 lub 28, hybrydowy odbiornik superreakcyjny na częstotliwość 433,92MHz, Us2 MOC3041 będący foto diakiem do sterowania triaka, Us3, stabilizator napięcia 5V, Tr, triak BTA10/400 służący do wyłączania i załączania odbiornika radiowego oraz para tranzystorów T1 i T2 sterujących głośniczkiem. Na schemacie widoczne są jeszcze dwa gniazda, z których G2, to wejście napięcia 230V, G1, to wyjście napięcia 230V, tu dołączymy odbiornik radiowy.

Na rys.2 widzimy nadajnik, tzw. pilot sterujący odbiornikiem. Zbudowany jest w oparciu o nadajnik hybrydowy 433,92MHz sterowany koderem Us1, typu MC145026.

 

Opis działania

Przed rozpoczęciem budowy urządzenia, musimy zaopatrzyć się w hybrydowy odbiornik i nadajnik, które możemy kupić w wybranym sklepie internetowym. Hasłem dla wyszukiwarki może być np. producent Telecontroli, produkujący takie hybrydy. Odbiornik odbiera zakodowany sygnał z nadajnika. Słowo zakodowany oznacza, że odebrany zostanie wyłącznie sygnał z naszego pilota. Kodowaniem jest ustawienie odpowiednich poziomów na wyprowadzeniach 1, 2, 3, 4 i 5 kodera i dekodera. Pamiętajmy, aby kody nadajnika i odbiornika były jednakowe. Kodem może być dołączenie do wyprowadzenia poziomu niskiego, wysokiego lub pozostawienie bez podłączenia. Po odebraniu sygnału z nadajnika, jeśli kod jest prawidłowy, w dekoderze, na wyprowadzeniu 11 pojawi się poziom wysoki. Jest to sygnał dla Portd.4 Us1. W zależności od tego, który wyłącznik zostanie załączony, zostanie wykonany odpowiedni program. Programy są następujące: W6 i W1 czas wyłączenia napięcia sieci na 30 sek., W6 i W2 czas 1 min., W6 i W3 czas 1,5 min., W6 i W4 czas 2 min., W6 i W9 czas 2,5 min., W9 i W8 czas 3 min. Oprócz czasowego wyłączania napięcia sieci, możliwe są jeszcze inne: W5 : gdy trzymamy wciśnięty przycisk pilota, w gnieździe G1 jest napięcie, gdy puścimy, napięcia nie ma, W7 : krótkie przyciśnięcie przycisku pilota, w G1 jest napięcie, krótkie przyciśnięcie przycisku pilota, w G1 nie ma napięcia, krótkie przyciśnięcie przycisku pilota, w G1 jest napięcie, itd.. Ponieważ nie przewidziałem w urządzeniu przycisku Reset, należy pamiętać, aby wyłączniki W nastawiać w czasie, gdy urządzenie jest wyłączone.  W momencie wykonywania któregoś programu, w Prtb.0 pojawia się poziom niski, sterujący fotodiodą w Us2, następnie diak steruje triakiem, a ten w czasie, gdy sinusoida napięcia sieci jest w zerze, powoduje wyłączenie lub załączenie napięcia sieci. Gniazdo G1 można obciążyć mocą do 1KW, tyle bowiem może przepływać mocy przez triak bez radiatora. Podczas wykonywania programu wyłączania radia podczas reklamy, w głośniczku słychać krótki ton sygnalizacyjny. Pamiętajmy, aby przed zaprogramowaniem procesora ustawić odpowiednio Fusebity. Jak to zrobić, można zobaczyć na mojej stronie internetowej: http://www.henwyd.republika.pl/TekstyHTML/Atmega8.htm.

 

Henryk Wydmuch

henwyd@op.pl


-------------------------------------------------------------------------------------------------------------------------

Odbiornik

Nadajnik


------------------------------------------------------------------------------------------------------------------------

Spis elementów

 

Odbiornik

Us1........................................Attiny2313

Us2........................................MOC3041 fotodiak

Us3.......................................7805 stabilizator

Us4.......................................MC155027 lub 28 dekoder

R1........................................................430

R2, R3.................................................220

R4.......................................................200k

R5.......................................................50k

C1.......................................................1000/16

C2, C4, C8..........................................100nF

C3........................................................470/10

C5, C6.................................................30pF

C7........................................................20nF

Q..........................................................4MHz kwarc

T1.........................................................BC147

T2.........................................................BD135

Odbiornik...............................................hybrydowy odbiornik superreakcyjny 433,92MHz

ISP.......................................................gniazdo programowania procesora

G2........................................................gniazdo wejściowe napięcia sieci 230V

G1........................................................gniazdo wyjściowe napięcia 230V

Tr..........................................................BTA10/400 triak

W1-9....................................................dziewięciopozycyjny nastawnik kodu

 

Nadajnik

Us1.......................................................MC145026 koder

Nadajnik...............................................hybrydowy nadajnik 433,92MHz

R1.........................................................50k

R2.........................................................100k

C1.........................................................5100pF

C2.........................................................100nF

P............................................................przycisk zwierny

 

--------------------------------------------------------------------------------------------------------------------------

Kod w Bascom-ie

'ZdalnyWylacznik.bas

 'Urządzenie do zdalnego wyłączania reklam.

 'Współpracuje z hybrydowym odbiornikiem 433MHz sterowanym pilotem.

 'Może załączać lub wyłączać odbiornik radiowy zasilany z sieci, jak również inne urządzenia o mocy do 1KW.

 'Patrz 280202.

 'Procesor ATTiny2313.

 'Pamięć zajęta w 40%.

 'Opracował Henryk Wydmuch.

 

 $regfile = "2313def.dat"                                   'Dyrektywy dla kompilatora.

 $crystal = 40000000                                        'Zastosujemy kwarc 4MHz.

 

Config Pind.0 = Input                                       'Porty jako wejścia.

Config Pind.1 = Input                                       '

Config Pind.2 = Input                                       '

Config Pind.3 = Input                                       '

Config Pind.4 = Input                                       '

Config Pind.5 = Input                                       '

Config Pind.6 = Input                                       '

Config Pinb.0 = Output                                      'Wyjście.Tu można podłączyć głośniczek.

Config Pinb.1 = Output                                      'Wyjście.Ten port będzie sterował triakiem.

Config Pinb.2 = Input                                       '

Config Pinb.3 = Input                                       '

Config Pinb.4 = Input                                       '

Set Portd.0                                                 '

Set Portd.1                                                 '

Set Portd.2                                                 '

Set Portd.3                                                 '

Reset Portd.4                                               'Poziom niski w Portb.1. Tu wejdzie 1 z odbiornika 433MHz.

Set Portd.5                                                 '

Set Portd.6                                                 '

Reset Portb.0                                               'Niski poziom w Portb.0. Bez sygnału, tranzystory T1 i T2 zatkane.

Reset Portb.1                                               'Niski poziom w Portb.1. Po załączeniu urządzenia będzie napięcie w G1.

Set Portb.2                                                 '

Set Portb.3                                                 '

Set Portb.4                                                 '

 

Dim Czas As Byte                                            'Deklarujemy 1 bajt pamięci dla zmiennej Czas.

                                                             'Tu będzie wstawiona 1 dla podprogramu Wylacznik1.

 

'Pierwsza pętla---------------------------------------------------------------------------------------------

Do                                                          'Pętla rozdzielająca do podprogramów.

 If Pinb.4 = 0 Then                                         'Jeśli W5 zwarty...

 Gosub Wylacznik                                            'Skocz do podprogramu Wylacznik.

Else                                                        'W przeciwnym razie...

 If Pinb.3 = 0 Then                                         'Jeśli W6 zwarty...

 Gosub Reklamy                                              'Skocz do podprogramu Reklamy.

Else                                                        'W przeciwnym razie...

 If Pinb.2 = 0 Then                                         'Jeśli W7 zwarty...

 Czas = 1                                                   'Do zmiennej Czas załaduj 1.

 Gosub Wylacznik1                                           'Skocz do podprogramu Wylacznik1.

    End If                                                  'Koniec warunku.

    End If                                                  '

    End If                                                  '

 Loop                                                       'Powtórz pętlę.

 End                                                        'Koniec.

 

 'W6 do masy-------------------------------------------------------------------------------------------------

Reklamy:                                                    'Podprogram Reklamy.

Do                                                          'Pętla.

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.0 = 0 Then                                         'Jeśli Portd.0 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Sound Portb.0 , 400 , 20                                   'Gdy 0 napięcia w G1, podaj krótki sygnał dżwiękowy z Portb.0.

 Waitms 380                                                 'Czekaj 30 sekund.

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.1 = 0 Then                                         'Jeśli Portd.1 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Sound Portb.0 , 400 , 20                                   'Gdy 0 napięcia w G1, podaj krótki sygnał dżwiękowy z Portb.0.

 Waitms 760                                                 'Czekaj 60 sekund.

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.2 = 0 Then                                         'Jeśli Portd.2 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Sound Portb.0 , 400 , 20                                   'Gdy 0 napięcia w G1, podaj krótki sygnał dżwiękowy z Portb.0.

 Waitms 1140                                                'Czekaj 1,5 minuty.

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.3 = 0 Then                                         'Jeśli Portd.3 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Sound Portb.0 , 400 , 20                                   'Gdy 0 napięcia w G1, podaj krótki sygnał dżwiękowy z Portb.0.

 Waitms 1520                                                'Czekaj 2 minuty.

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.5 = 0 Then                                         'Jeśli Portd.5 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Sound Portb.0 , 400 , 20                                   'Gdy 0 napięcia w G1, podaj krótki sygnał dżwiękowy z Portb.0.

 Waitms 1900                                                'Czekaj 2,5 minuty .

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 1 Then                                         'Jeśli Portd.4 otrzymał z odbiornika 433MHz poziom wysoki,

 If Pind.6 = 0 Then                                         'Jeśli Portd.6 zwarty jest do masy,

 Set Portb.1                                                'Ustaw poziom wysoki w Portb.1, wyłącz zasilanie w gnieździe G1.

 Waitms 2280                                                'Czekaj 3 minuty.

 Reset Portb.1                                              'Włącz zasilanie w gnieździe G1.

    End If                                                  'Koniec warunku.

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

    End If                                                  '

Loop                                                        'Powtórz pętlę.                                              '

End                                                         'Koniec pętli.

Return                                                      'Wróć do programu (do pierwszej pętli).

 

 'W5 do masy----------------------------------------------------------------------------------------------

 Wylacznik:                                                 'Podprogram Wylacznik.

 Do                                                         'Pętla.

 If Pind.4 = 1 Then                                         'Portd.4 = 1...

 Set Portb.1                                                'Gniazdo G1 nie ma napięcia.

Else                                                        'W przeciwnym razie...

 If Pind.4 = 0 Then                                         'Portd.4 = 0...

 Reset Portb.1                                              'Gniazdo G1 ma napięcie.

    End If                                                  'Koniec warunku.

    End If                                                  '

 Loop                                                       'Powtórz pętlę.

 End                                                        'Koniec pętli.

 Return                                                     'Wróć do program (do pierwszej pętli).

 

 'W7 do masy---------------------------------------------------------------------------------------------

 Wylacznik1:                                                'Podprogram Wylacznik1.

 Do                                                         'Pętla.

 Bitwait Pind.4 , Set                                       'Czekaj, aż z odbiornika 433MHz pojawi się poziom wysoki.

 Select Case Czas                                           'Sprawdzaj zmienną Czas.

 Case 1                                                     'Jeśli w zmiennej jest 1, to...

 Portb.1 = 1                                                'Portb.1 przyjmie poziom wysoki (zanik napięcia w G1).

 Czas = 0                                                   'Zeruj zmienną.

 Waitms 15                                                  'Czekaj 15mS.

 Bitwait Pind.4 , Set                                       'Czekaj, aż z odbiornika 433MHz pojawi się poziom wysoki.

 Case 0                                                     'Sprawdź zmienną Czas, jeśli jest 0, to...

 Portb.1 = 0                                                'Portb.1 przyjmie poziom niski (jest napięcie w G1).

 Czas = 1                                                   'Załaduj do zmiennej 1.

 Waitms 15                                                  'Czekaj 15mS.

 Bitwait Pind.4 , Set                                       'Czekaj, aż z odbiornika 433MHz pojawi się poziom wysoki.

 Case 1                                                     'Jeśli zmienna ma 1, to...

 Portb.1 = 1                                                'Portb.1 przyjmie poziom wysoki (zanik napięcia w G1).

 End Select                                                 'Koniec przyglądania się zmiennej Czas.

 Loop                                                       'Powtórz pętlę.

 End                                                        'Koniec pętli.

 Return                                                     'Wróć do programu (do pierwszej pętli).

 

 'Objaśnienie.

 'O tym, czy będzie wykonywany podprogram: Wylacznik, Wylacznik1 czy Reklama decyduje "Pierwsza pętla",

 'w zależniości od tego, czy zwarty jest do masy Portb.2, 3, 4 (W5, W6, W7).

 

 'Działanie podprogramów.

 

 'Wylacznik1: krótki poziom wysoki w Portd.4 (z odbiornika 433MHz) powoduje pojawienie się napięcia sieciowego

 'w gnieździe G1 na stałe, ponowny poziom wysoki, zanik napięcia w G1. Sytuacja powtarza się

 'po każdym pojawieniu się napięcia wysokiego w Portd.4. Jeśli przytrzymamy przycisk pilota, napięcie w gnieździe G1

 'będzie się cyklicznie pojawiać i znikać.

 

  'Wylacznik:  poziom wysoki w Portd.4 (z odbiornika 433MHz) powoduje zanik napięcia sieciowego w G1,

  'niski natomiast, pojawienie się tego napięcia. A więc: naciskamy przycisk w pilocie - żarówka gaśnie,

  'puszczamy przycisk - zaświeci się.

 

  'Reklamy: poziom wysoki w Portd.4 (z odbiornika 433MHz) powoduje zanik napięcia sieciowego w G1.

  'Zanik trwa określony, wybrany przez nas czas. Czasa ten zależny jest od tego,

  'który wyłącznik zwarty jest do masy. W1 - czas 30 sek., W2 - czas 1 min., W3 - czas 1,5 min.,

  'W4 - czas 2 min., W9 - czas 2,5 min., W8 - czas 3 min.