2001.12 Zdalne sterowanie z dowolnym pilotem RC5, Projekty AVT
[ Pobierz całość w formacie PDF ]
++
Projekty AVT
Zda
l
l
lne
s
t
t
terowan
i
i
ie
z
dowo
l
l
lnym
p
i
i
i
l
l
lo
t
t
tem
RC5
2480
W jednym z poprzednich numerów Elektro−
niki dla Wszystkich pozwoliłem sobie zapre−
zentować Czytelnikom opis budowy uniwer−
salnego pilota RC5. Wspomniałem także, że
wykonanie tego urządzenia ma sens, ponie−
waż w najbliższym czasie zaprezentuje Wam
szereg urządzeń sterowanych z tego właśnie
pilota. Jak dotąd dotrzymałem obietnicy tyl−
ko częściowo, opracowując dla Was prostą
zabawkę sterowaną kodem RC5. Najwyższy
więc czas, aby kontynuować rozpoczętą pra−
cę i zaoferować Czytelnikom Elektroniki dla
Wszystkich kolejne urządzenie, które jednak
tym razem bynajmniej nie będzie tylko za−
bawką. Zanim jednak przejdziemy do opisu
proponowanego układu, chciałbym wyjaśnić
pewne nieporozumienia i rozproszyć wątpli−
wości, które nękają cześć z Was.
Jednym z pierwszych tematów poruszo−
nych w ramach wykładów BASCOM College
było odbieranie i dekodowanie transmisji ko−
du RC5 za pomocą procesorów typu
AT89C2051. Temat ten spotkał się ze sporym
zainteresowaniem studentów BASCOM Col−
lege, którzy jednak napotkali na pewne trud−
ności podczas realizacji związanych z nim
ćwiczeń. Trudno mi nawet policzyć, ile otrzy−
małem rozpaczliwych maili, w których pisali−
ście, że opisywane przeze mnie polecenia
w ogóle nie działają, że na ekranie wyświetla−
cza LCD pokazują się same bzdury i że ten
cały BASCOM to w ogóle jest do kitu. Nie−
stety, ci, którzy powątpiewali w poprawność
zawartych w języku MCS BASIC poleceń,
absolutnie nie mieli racji. Powód ich, niepo−
wodzeń był prawie zawsze taki sam: do eks−
perymentów używali oni pilotów od sprzętu
RTV, zapominając, że nie każdy taki pilot mu−
si pracować w standardzie RC5. Wystarczy
tylko zajrzeć do dowolnego sklepu ze sprzę−
tem radiowo−telewizyjnym, aby przekonać
się, że nawet większość pilotów używanych
w Polsce nie obsługuje tego rodzaju transmi−
sji. Firmy japońskie i dalekowschodnie pro−
dukujące sprzęt RTV zyskały sobie znaczącą
pozycję na naszym rynku, a właśnie ci produ−
cenci nie stosują w swoich wyrobach kodu
RC5, będącego standardem w sprzęcie produ−
kowanym w Europie (np. w sprzęcie produ−
kowanym przez Philipsa).
O tym, co napisałem musicie pamiętać
„przymierzając się” do budowy opisanego
niżej urządzenia. Jeżeli posiadacie w domu
wyłącznie sprzęt elektroniczny produkcji ja−
pońskiej lub innej firmy z Dalekiego Wscho−
du, to wchodzące w jego skład piloty okażą
się zupełnie bezużyteczne przy współpracy
z naszym układem. Będziecie wtedy mieli
różne drogi wyjścia z kłopotliwej sytuacji.
Będziecie mogli zakupić jakiegoś pilota,
upewniając się przedtem, że na pewno pracu−
je on z kodem RC5. Jednak takie rozwiązanie
z pewnością nie zadowoli fanów elektroniki,
jakimi jesteście i pozostanie Wam wykonanie
pilota opisanego w EdW albo też uniwersal−
nego nadajnika kodu RC5, umożliwiającego
wysłanie dowolnej komendy RC5 pod do−
wolnie wybrany adres, którego opis został
zamieszczony w numerze 1/00 Elektroniki
Praktycznej (AVT−849).
Z pozoru proponowany układ nie różni się
zbytnio od wielu mu podobnych. Umożliwia
sterowanie ośmioma odbiornikami energii
elektrycznej, a ze względu na zastosowanie
przekaźników mocy jako elementów wyko−
nawczych nie ma większego znaczenia czy
będą to układy zasilane prądem przemiennym
z sieci energetycznej, czy też wymagające do−
starczenia prądu stałego. Takich układów
zbudowano wiele, ale ten, z którym zapozna−
my się dzisiaj ma pewną szczególną cechę,
która, jak mam nadzieję, znajdzie uznanie
Czytelników Elektroniki dla Wszystkich.
Proponowany układ nie jest związany za ja−
kimkolwiek konkretnym pilotem i może
współpracować z dowolnym nadajnikiem ko−
du RC5, w tym oczywiście z pilotem AVT−
2427. Nie ma najmniejszego znaczenia, jakie
komendy wykorzystamy do sterowania na−
szym układem. Mogą to być dowolne polece−
nia z 64 komend, które zawiera standard RC5,
wysyłane pod całkowicie dowolny spośród
32 dostępnych adresów. Nasz układ podczas
pierwszego uruchomienia musi zostać „nau−
czony”, jakie komendy będziemy wykorzy−
stywać i pod jaki adres będą one wysyłane.
Zapamiętane informacje przechowywane są
w pamięci EEPROM i mogą zostać stamtąd
usunięte lub zmienione jedynie w wyniku na−
szego celowego działania.
Jak się za chwilę przekonamy, sercem
układu i jego jedynym aktywnym elementem
jest procesor typu AT89C2051, niezwykle po−
pularny zarówno wśród hobbystów, jak i pro−
fesjonalnych konstruktorów, „gwiazda” na−
szego kursu BASCOM College. Program ste−
rujący pracą procesora został napisany, prze−
testowany i skompilowany za pomocą narzę−
dzi zawartych w pakiecie BASCOM8051
„Special Edition for Elektronika Praktyczna”,
który przebojem zyskuje sobie coraz większą
popularność wśród Czytelników naszego pi−
sma, podobnie jak wśród elektroników na ca−
łym świecie. Dlatego też opis działania ukła−
du ilustrowany będzie licznymi fragmentami
programu napisanego w języku MCS BASIC.
Wykonanie proponowanego układu jest
stosunkowo proste, a koszt elementów po−
trzebnych do jego budowy jest niezbyt wyso−
ki. Koledzy, którzy zdecydują się na jego bu−
dowę, będą mieli dwie możliwości zaopa−
trzenie się w zaprogramowany procesor,
niezbędny do funkcjonowania urządzenia.
Elektronika dla Wszystkich
17
Projekty AVT
Metodą najprostszą będzie zakupienie kitu,
w którego skład wchodzi zaprogramowany
chip AT89C2051. Bardziej ambitni konstruk−
torzy zechcą zapewne samodzielnie zapro−
gramować procesor, pisząc własną wersję
programu. W tym celu powinni się zaopa−
trzyć w podstawowe narzędzia jakimi są pa−
kiet BASCOM8051 i programator MCS Fla−
shprogrammer AVT−2502. Dostęp do progra−
mu BASCOM8051 Special Edition For Elek−
tronika Praktyczna jest szczególnie łatwy:
znajduje się na płycie CD−EP 4/00 oraz na
stronie www.ep.com.pl.
czych, odbiornika kodu RC5 − TFMS5360
i garstki elementów dyskretnych. Procesor
89C2051 posiada liczne zalety, ale także
i jedną wadę: nie jest wyposażony w wewnę−
trzną nieulotną pamięć danych, co spowodo−
wało konieczność zastosowania dodatkowe−
go układu, przechowującego informacje
o kodach poszczególnych komend sterują−
cych pracą urządzenia.
Jako elementy wykonawcze zastosowa−
ne zostały przekaźniki typu RM−82,
z których każdy wyposażony jest w dwie
pary przełączanych styków. Zwiększa to
dodatkowo możliwości układu, który w za−
sadzie może sterować aż 32 różnymi urzą−
dzeniami, dołączanymi w najrozmaitszy
sposób do styków przekaźników. Szerzej
poruszymy ten temat w części artykułu po−
świeconej montażowi układu.
Jako odbiornik kodu RC5 emitowanego
przez pilota zastosowano dobrze znany układ
typu TFMS5360. Jest to „magiczna” kostka,
która uwalnia nas od wszelkich problemów
związanych z budową wzmacniacza odbiera−
nego sygnału czy też filtrów eliminujących
„niepożądane” częstotliwości nośne. Na wyj−
ściu IC4 otrzymujemy od razu „gotowy” prze−
bieg prostokątny, zgodny ze standardem TTL.
Układ może być zasilany napięciem sta−
łym o wartości 10 ... 18VDC lub przemien−
nym 8 ... 12VAC dołączanym do złącza
CON19. Część cyfrowa urządzenia zasilana
jest napięciem +5VDC, dostarczanym przez
scalony stabilizator napięcia IC3.
Sposób połączenia procesora z biernymi
elementami układu najlepiej prześledzić na
podstawie fragmentu programu, w którym
Jak to działa?
Na
rysunku 1
został pokazany schemat elek−
tryczny proponowanego układu sterownika.
Układ jest wyjątkowo prosty: poza proceso−
rem 89C2051 i pamięcią AT24C04 układ
składa się z ośmiu przekaźników wykonaw−
Rys. 1 Schemat ideowy
18
Elektronika dla Wszystkich
Projekty AVT
za pomocą wyjątkowo
wygodnego polecenia
ALIAS nadano wypro−
wadzeniom procesora
nazwy zgodne z pełnio−
nymi przez nie funkcja−
mi. Dodatkowo w syste−
mie utworzono magi−
stralę I
2
C, która służy
obsłudze zewnętrznej
pamięci danych − I
C
2.
Analizę sposobu
działania układu roz−
poczniemy opierając się na listingach frag−
mentów programu w momencie włączenia
zasilania urządzenia. Pierwszą czynnością ja−
ką procesor wykonuje po inicjalizacji i konfi−
guracji systemu jest sprawdzenie stanu jum−
pera JP1 (listing 1). Od wyniku tego badania
zależeć będzie dalszy bieg wypadków.
Config Sda = P1.3
Config Scl = P1.4
Zauważmy, że niezależnie od badania sta−
nu jumpera program odczytuje także zawar−
tość komórki pamięci o adresie 127 i jeżeli nie
jest ona równa 133, to także wzywa podpro−
gram rejestracji komend. Za chwilę dowiemy
się, jaki sens ma ten fragment programu.
Niezależnie, czy zostało to spowodowane
zwarciem jumpera JP1, czy też wykryciem
nieprawidłowej wartości zapisanej pod adre−
sem 133 pamięci EEPROM, program rozpo−
czyna wykonywanie pętli zawartej w podpro−
gramie REGISTRATION, pokazanym na li−
stingu 2. Jego zadaniem jest teraz zarejestro−
wanie 8 komend kodu RC5, z których każda
może być wysłana pod dowolny z 32 adresów.
Wykonanie tego programu spowoduje zapi−
sanie w pamięci EEPROM 8 komend i ośmiu
adresów wyemitowanych z pilota RC5 i prze−
chowanie ich tam w celu późniejszego porów−
nania z sygnałami odbieranymi podczas pracy
układu. Wiemy już teraz, dlaczego nasz pro−
gram sprawdza zawartość 127 komórki pamię−
ci EEPROM: podczas rejestracji poleceń jest
tam zapisywana liczba 133, a inna wartość od−
czytana z tej komórki świadczy, że pamięć nie
była jeszcze programowana w naszym ukła−
dzie. Oczywiście wartość 133 jest całkowicie
przypadkowa, po prostu jest to pierwsza licz−
ba, jak wpadła mi do głowy.
Zwróćmy jeszcze uwagę na jedna cechę
opisywanego układu. W pamięci zapisywane są
nie tylko polecenia, ale i adresy pod jakie zosta−
ły wysłane. Z tego wynika, że do obsługi nasze−
go układu możemy z powodzeniem wykorzy−
stywać różne piloty, przeznaczone do sterowa−
nie różnymi urządzeniami. Mogą to być piloty
od telewizora, magnetowidu, radiomagnetofo−
nu czy też od kamery wideo. Ważne jest tylko
to, aby wszystkie pracowały w kodzie RC5.
Po zarejestrowaniu poleceń sterujących
układ rozpoczyna pracę w pętli (listing 3),
w której oczekuje na odebranie jakiejś trans−
misji nadawanej w kodzie RC5. Warto zau−
ważyć, że wyjście odbiornika podczerwieni
IC3 zostało dołączone za pośrednictwem złą−
cza CON17 + CON19 do wejścia przerwania
INT0 procesora. Jeżeli więc do odbiornika
dotrze jakikolwiek sygnał nadawany na pod−
czerwieni z częstotliwością 36kHz, to jego
wyjście przybierze stan niski, a procesor
przystąpi do realizacji podprogramu obsługi
przerwania, pokazanej na listingu 4.
Rl1 Alias P1.6
Rl2 Alias P3.7
Rl3 Alias P1.7
Rl4 Alias P3.5
Rl5 Alias P3.0
Rl6 Alias P3.1
Rl7 Alias P3.4
Rl8 Alias P3.3
Jp1 Alias P1.2
Led1 Alias P1.1
Led2 Alias P1.0
'Listing 1
Set Jp1 'spróbuj ustawić
stan wysoki na pinie Jp1
If Jp1 = 0 Then 'jeżeli próba
nieudana, to:
Call Registration 'wezwij podprogram
rejestracji komend i adresów
End If 'koniec warunku
Call Read_eeprom(127 , Value) 'odczytaj zawartość
komórki 127 pamięci EEPROM
'Listing 4
Receiverc5:
Disable Int0 'chwilowo zawieś obsługę przerwania INT0
Getrc5(subaddress , Command) 'zbadaj, czy odebrany kod to transmisja RC5 i dokonaj jego analizy
If Command < 63 Then 'jeżeli wartość odebranej komendy jest mniejsza od 63, to:
If Subaddress < 31 Then 'jeżeli wartość adresu, pod który wysłana została komanda
jest mniejsza od 31, to:
If Value <> 133 Then
'jeżeli odczytana
wartość nie jest równa 133, to
Call Registration
'wezwij podprogram
rejestracji komend i adresów
Rc5_received = 1
'zmienna pomocnicza RC5_RECEIVED sygnalizująca odebranie poprawnej
transmisji przyjmuje wartość jeden
End If : End If
'koniec warunków
End If
'koniec warunku
Return
'Listing 2
Sub Registration
Disable Int0 'chwilowo zawieś obsługę przerwanie INT0
Eepromadres = 1 'zmienna EEPROMADRES przyjmuje wartość 1
Temp2 = 1
'Listing 3
Sub Mainloop
'główna pętla programowa
'zmienna pomocnicza TEMP2 przyjmuje wartość 1
Do
If Rc5_received = 1 Then 'jeżeli zmienna pomocnicza
sygnalizująca odebranie transmisji RC5 przyjęła
wartość 1, to:
Rc5_received = 0 'zmienna ta z powrotem
przyjmuje wartość 0
Disable Int0 'chwilowo zawieszamy
obsługę dalszych przerwań INT0
Call Code_identification
'wezwij podprogram analizujący odebrany kod
Wait 1
For Temp = 1 To 10 'dziesięciokrotnie:
Call Redshort 'wezwij podprogram REDSHORT, którego zadaniem jest generowani krótkiego błysku 'czerwonej
diody LED. Błyski tej diody informują użytkownika, że może przystąpić do rejestracji poleceń
Next
Enable Int0 'ponownie uaktywnij obsługę przerwania INT0
Do 'początek pętli programowej
If Rc5_received = 1 Then 'jeżeli zmienna pomocnicza RC5_RECEIVED przyjęła wartość jeden, to:
Disable Int0 'zawieś obsługę przerwania INT0
Rc_received = 0 'przywróć zmiennej RC5_RECEIVED wartość zero
Call Write_eeprom(eepromadres , Subaddress) 'zapisz w pamięci EEPROM adres, pod jaki 'wysłane zostało
polecenie nadane z pilota
Incr Eepromadres 'zwiększ o 1 wartość zmiennej EEPROMADRES
Call Write_eeprom(eepromadres , Command) 'zapisz w pamięci EEPROM odebraną
komendę kodu RC5
Incr Eepromadres 'zwiększ o 1 wartość zmiennej EEPROMADRES
Incr Temp2 'zwiększ o 1 wartość zmiennej pomocniczej TEMP2
For Temp = 2 To Temp2 'tylokrotnie, ile komend zostało odebranych:
Call Greenlong
'zaczekaj sekundę
Enable Int0
'powtórnie wznów obsługę
przerwania INT0
End If
'koniec warunku
Loop
End Sub
'wezwij podprogram generujący długi błysk diody zielonej,
Jeżeli wstępna analiza odebranego sygnału
wypadła pomyślnie, czyli że program stwier−
dził, że ma do czynienia z kodem RC5, to we−
zwana zostaje procedura identyfikacji odebra−
nej transmisji. W tym momencie mamy już do
dyspozycji dwie dane: wartość odebranej ko−
mendy i adres, pod jaki został wysłana. Pozo−
staje zatem porównać te dane z wartościami
zapisanymi w pamięci EEPROM. Czynność tę
wykonuje podprogram pokazany na listingu 5.
Next Temp
Enable Int0
'ponownie uaktywnij obsługę przerwania INT0
End If
If Temp2 = 9 Then 'jeżeli zmienna TEMP2 przyjęła wartość 9, czyli zapisane już zostało 8 komend i adresów, to:
Call Write_eeprom(127 , 133) 'zapisz pod adresem 127 pamięci EEPROM wartość 133
Exit Do
'wyjdź z pętli programowej
End If
'koniec warunku
Loop
End Sub
Elektronika dla Wszystkich
19
Projekty AVT
Omówiliśmy najważniejsze fragmenty pro−
gramu sterownika. Mam nadzieję, że wszyscy
Czytelnicy zrozumieli zasadę jego działania
i bez jakichkolwiek wątpliwości mogą już
przystąpić do budowy proponowanego układu.
Montaż i uruchomienie
Na
rysunku 2
zostało pokazane rozmie−
szczenie elementów na dwóch płytkach ob−
wodów drukowanych. Na większej płytce
umieszczona została główna część układu,
Jedynie część układu zawierająca odbior−
nik RC5 musi być zlokalizowana w widocz−
nym miejscu, ale sądzę, że z łatwością znaj−
dziecie jakąś elegancką obudowę dla tej ma−
lutkiej płytki.
Montaż układu wykonujemy w typowy
sposób, rozpoczynając od wlutowania ele−
mentów o najmniejszych gabarytach, a koń−
cząc na kondensatorach elektrolitycznych
i przekaźnikach. Pod układy scalone należy
zastosować podstawki. Przekaźniki zastoso−
wane w układzie są najkosztowniejszymi ele−
mentami całego urządzenia. Dlatego też, jeże−
li nie mamy zamiaru wykorzystywać wszyst−
kich ośmiu kanałów, jakimi dysponujemy, to
montowanie ośmiu przekaźników nie miało−
by większego sensu ekonomicznego. Niejed−
nokrotnie wystarczą nam dwa, trzy kanały,
a przekaźniki obsługujące pozostałe urządze−
nia możemy zawsze zamontować później.
Obie płytki należy połączyć ze sobą za
pomocą sześciożyłowego przewodu, najle−
piej tzw. taśmowego. Układ prototypowy te−
stowany był z przewodem o długości 2,5 mb
i nie stwierdzono jakichkolwiek zakłóceń
w przekazywaniu informacji z odbiornika
RC5 do procesora.
Układ sterownika zmontowany ze spraw−
dzonych elementów działa natychmiast po
włożeniu zaprogramowanego procesora
w podstawkę i poza zaprogramowaniem ko−
mend sterujących i ewentualnie kodu dostępu
nie wymaga jakichkolwiek czynności uru−
chomieniowych.
Układ powinien być zasilany napięciem
stałym o wartości ok. 14VDC lub przemien−
nym ok. 8VAC.
Dla tych Kolegów, którym nie bardzo
chciało się wnikać w szczegóły budowy pro−
gramu obsługującego nasz sterownik w naj−
większym skrócie podamy
teraz „instrukcję obsługi”
zbudowanego układu.
Nowo zbudowany, wypo−
sażony w „czystą” pamięć
EEPROM układ będzie wy−
magał zarejestrowania pole−
ceń kodu RC5. W takim ukła−
dzie nie musimy nawet zwie−
rać jumpera JP1, ponieważ po
wykryciu nie zaprogramowa−
nej pamięci EEPROM przej−
dzie on od razu w tryb reje−
stracji komend, co zostanie
zasygnalizowane dziesięcio−
ma błyskami czerwonej diody
LED. Następnie pojedynczy
błysk diody zielonej stanie się
zachętą do podania pierwszej
komendy. Po naciśnięciu
przycisku pilota, zarejestro−
wanie pierwszej komendy zo−
stanie potwierdzone dwoma
błyskami zielonej diody, co
jednocześnie jest zachętą do
'Listing 5
Sub Code_identification
Eepromadres = 1 'zmienna pomocnicza EEPROMADRES przyjmuje wartość 1
For Temp = 1 To 8 'ośmiokrotnie:
Call Read_eeprom(eepromadres , Subaddress2) 'odczytaj z pamięci EEPROM zapisany tam adres pod który
wysyłane jest polecenie dla kolejnego kanału
Incr Eepromadres 'zwiększ wartość zmiennej pomocniczej EEPROMADRES o 1
Call Read_eeprom(eepromadres , Command2)
'odczytaj z pamięci EEPROM wartość komendy obsługującej
kolejny kanał
Incr Eepromadres 'zwiększ wartość zmiennej pomocniczej EEPROMADRES o 1
If Command = Command2 Then 'jeżeli wartość odebranej komendy jest równa zapisanej, to
If Subaddress = Subaddress2 Then 'jeżeli wartość odebranego adresu jest równa odczytanej
z pamięci, to:
Select Case Temp 'dokonaj analizy zmiennej TEMP
Case 1 : Rl1 = Not Rl1 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 2 : Rl2 = Not Rl2 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 3 : Rl3 = Not Rl3 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 4 : Rl4 = Not Rl4 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 5 : Rl5 = Not Rl5 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 6 : Rl6 = Not Rl6 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 7 : Rl7 = Not Rl7 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 8 : Rl8 = Not Rl8 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
End Select 'koniec badania zmiennej TEMP
Call Greenlong 'wygeneruj długi błysk zielonej diody
End If
'koniec warunku
End If
'koniec warunku
Next Temp
End Sub
Rys. 2a Schemat montażowy
zawierająca procesor, przekaźniki, zasilacz
i diody sygnalizujące stan przekaźników. Na
mniejszej płytce znajduje się tylko odbiornik
kodu RC5 i dwie diody sygnalizacyjne. Takie
rozmieszczenie elementów i podział układu
na dwa moduły umożliwia zamontowanie
głównej części urządzenia w obudowie, która
niekoniecznie musi spełnić wysokie wyma−
gania estetyczne i spowodować umieszczenie
całości pod przysłowiową „szafą”.
Rys. 2b Schemat montażowy
20
Elektronika dla Wszystkich
Projekty AVT
podania drugiej komendy, a następnie trze−
ciej (trzy błyski zielonej diody) i tak dalej, aż
do zarejestrowania wszystkich ośmiu pole−
ceń. Jest całkowicie obojętne, które klawisze
wykorzystamy do przesyłania poleceń do ste−
rownika, tak jak obojętne jest pod jaki adres
będą wysyłane.
Zarejestrowanie wszystkich ośmiu pole−
ceń zostanie przez sterownik skwitowane
włączeniem zielonej diody LED na 3 se−
kundy. Następnie układ przechodzi w stan
oczekiwania na polecenia, w którym pozo−
stanie aż do ewentualnego wyłączenia zasila−
nia. Po zaprogramowaniu poleceń należy za−
wsze pamiętać o usunięciu jumpera JP1, po−
nieważ w przeciwnym przypadku nasz układ
wchodziłby w tryb programowania komend
po każdym wyłączeniu zasilania (nawet
przypadkowym).
Warto teraz jeszcze wspomnieć o dodat−
kowych możliwościach oferowanych przez
nasz układ, których istnienie zostało już
wcześniej zasygnalizowane. Mam tu na my−
śli wykorzystywanie podwójnych styków
przekaźników do włączania i wyłączania do−
datkowych urzą−
dzeń. Najlepiej po−
służmy się tu przy−
kładem, pokazanym
na
rysunku 3
. Ma−
my tam siedem róż−
nych odbiorników
energii elektrycznej dołączonych do czterech
z ośmiu przekaźników naszego sterownika.
Waszym zadaniem będzie teraz przeanalizo−
wanie, w jaki sposób działa układ zmontowa−
ny, a właściwie okablowany zgodnie z tym
rysunkiem.
Zbigniew Raabe
e−mail: zbigniew.raabe@edw.com.pl
Wykaz elementów
IIC1 . . . . . . . . . . . . . . . . AT89C2051
IIC2 . . . . . . . . . . . . . . . . . . .AT24C04
IIC3 . . . . . . . . . . . . . . . . . . . . . .7805
IIC4 . . . . . . . . . . . . . . . . . .TFMS5360
T1 ..... T8 . . . . . . . . . . . . . . . . .BS109
Pozostałe
BR1 . . . . . . .mosttek prosttowniiczy 1A
CON1 ..... CON16 . . . . . . . . . . .ARK3
CON17 . . . . . . . . . . . . . . .5x golldpiin
CON18 . . . . . . . . . . . . . . . . . .ARK2
CON19 złłącze szufflladkowe 5
JP1 . . . . . . . . . .2x golldpiin + jumper
Q1 . . .rezonattor kwarcowy 11..059MHz
RL1 ..... RL8 . . . . . . . . . . . . . .RM−82
Kondensatory
C1,, C2 . . . . . . . . . . . . . . . . . . . 27pF
C3 . . . . . . . . . . . . . . . . . . 4,,7
µ
F /16
C4 . . . . . . . . . . . . . . . . . . 1000
µ
F/16
C5,, C6 . . . . . . . . . . . . . . . . . . 100nF
C7,, C8 . . . . . . . . . . . . . . . .100
F/16
Rezysttory
R1...... R8 . . . . . . . . . . . . . . . . . . .1k
Ω
R9,, R10 . . . . . . . . . . . . . . . . . . 560
Ω
R11 . . . . . . . . . . . . . . . . . . . . . .1k
Ω
Półprzewodniki
D1...... D8 . . . . . . . . . . . . . . . .1N4148
D9,, D10 . . . . . . . . . . . . . . . . . . .LED
Komplet podzespołów z płytką jest dostępny w sieci handlowej AVT
jako kit szkolny AVT−2480
REKLAMA
REKLAMA
REKLAMA
Elektronika dla Wszystkich
21
µ
[ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl charloteee.keep.pl
++
Projekty AVT
Zda
l
l
lne
s
t
t
terowan
i
i
ie
z
dowo
l
l
lnym
p
i
i
i
l
l
lo
t
t
tem
RC5
2480
W jednym z poprzednich numerów Elektro−
niki dla Wszystkich pozwoliłem sobie zapre−
zentować Czytelnikom opis budowy uniwer−
salnego pilota RC5. Wspomniałem także, że
wykonanie tego urządzenia ma sens, ponie−
waż w najbliższym czasie zaprezentuje Wam
szereg urządzeń sterowanych z tego właśnie
pilota. Jak dotąd dotrzymałem obietnicy tyl−
ko częściowo, opracowując dla Was prostą
zabawkę sterowaną kodem RC5. Najwyższy
więc czas, aby kontynuować rozpoczętą pra−
cę i zaoferować Czytelnikom Elektroniki dla
Wszystkich kolejne urządzenie, które jednak
tym razem bynajmniej nie będzie tylko za−
bawką. Zanim jednak przejdziemy do opisu
proponowanego układu, chciałbym wyjaśnić
pewne nieporozumienia i rozproszyć wątpli−
wości, które nękają cześć z Was.
Jednym z pierwszych tematów poruszo−
nych w ramach wykładów BASCOM College
było odbieranie i dekodowanie transmisji ko−
du RC5 za pomocą procesorów typu
AT89C2051. Temat ten spotkał się ze sporym
zainteresowaniem studentów BASCOM Col−
lege, którzy jednak napotkali na pewne trud−
ności podczas realizacji związanych z nim
ćwiczeń. Trudno mi nawet policzyć, ile otrzy−
małem rozpaczliwych maili, w których pisali−
ście, że opisywane przeze mnie polecenia
w ogóle nie działają, że na ekranie wyświetla−
cza LCD pokazują się same bzdury i że ten
cały BASCOM to w ogóle jest do kitu. Nie−
stety, ci, którzy powątpiewali w poprawność
zawartych w języku MCS BASIC poleceń,
absolutnie nie mieli racji. Powód ich, niepo−
wodzeń był prawie zawsze taki sam: do eks−
perymentów używali oni pilotów od sprzętu
RTV, zapominając, że nie każdy taki pilot mu−
si pracować w standardzie RC5. Wystarczy
tylko zajrzeć do dowolnego sklepu ze sprzę−
tem radiowo−telewizyjnym, aby przekonać
się, że nawet większość pilotów używanych
w Polsce nie obsługuje tego rodzaju transmi−
sji. Firmy japońskie i dalekowschodnie pro−
dukujące sprzęt RTV zyskały sobie znaczącą
pozycję na naszym rynku, a właśnie ci produ−
cenci nie stosują w swoich wyrobach kodu
RC5, będącego standardem w sprzęcie produ−
kowanym w Europie (np. w sprzęcie produ−
kowanym przez Philipsa).
O tym, co napisałem musicie pamiętać
„przymierzając się” do budowy opisanego
niżej urządzenia. Jeżeli posiadacie w domu
wyłącznie sprzęt elektroniczny produkcji ja−
pońskiej lub innej firmy z Dalekiego Wscho−
du, to wchodzące w jego skład piloty okażą
się zupełnie bezużyteczne przy współpracy
z naszym układem. Będziecie wtedy mieli
różne drogi wyjścia z kłopotliwej sytuacji.
Będziecie mogli zakupić jakiegoś pilota,
upewniając się przedtem, że na pewno pracu−
je on z kodem RC5. Jednak takie rozwiązanie
z pewnością nie zadowoli fanów elektroniki,
jakimi jesteście i pozostanie Wam wykonanie
pilota opisanego w EdW albo też uniwersal−
nego nadajnika kodu RC5, umożliwiającego
wysłanie dowolnej komendy RC5 pod do−
wolnie wybrany adres, którego opis został
zamieszczony w numerze 1/00 Elektroniki
Praktycznej (AVT−849).
Z pozoru proponowany układ nie różni się
zbytnio od wielu mu podobnych. Umożliwia
sterowanie ośmioma odbiornikami energii
elektrycznej, a ze względu na zastosowanie
przekaźników mocy jako elementów wyko−
nawczych nie ma większego znaczenia czy
będą to układy zasilane prądem przemiennym
z sieci energetycznej, czy też wymagające do−
starczenia prądu stałego. Takich układów
zbudowano wiele, ale ten, z którym zapozna−
my się dzisiaj ma pewną szczególną cechę,
która, jak mam nadzieję, znajdzie uznanie
Czytelników Elektroniki dla Wszystkich.
Proponowany układ nie jest związany za ja−
kimkolwiek konkretnym pilotem i może
współpracować z dowolnym nadajnikiem ko−
du RC5, w tym oczywiście z pilotem AVT−
2427. Nie ma najmniejszego znaczenia, jakie
komendy wykorzystamy do sterowania na−
szym układem. Mogą to być dowolne polece−
nia z 64 komend, które zawiera standard RC5,
wysyłane pod całkowicie dowolny spośród
32 dostępnych adresów. Nasz układ podczas
pierwszego uruchomienia musi zostać „nau−
czony”, jakie komendy będziemy wykorzy−
stywać i pod jaki adres będą one wysyłane.
Zapamiętane informacje przechowywane są
w pamięci EEPROM i mogą zostać stamtąd
usunięte lub zmienione jedynie w wyniku na−
szego celowego działania.
Jak się za chwilę przekonamy, sercem
układu i jego jedynym aktywnym elementem
jest procesor typu AT89C2051, niezwykle po−
pularny zarówno wśród hobbystów, jak i pro−
fesjonalnych konstruktorów, „gwiazda” na−
szego kursu BASCOM College. Program ste−
rujący pracą procesora został napisany, prze−
testowany i skompilowany za pomocą narzę−
dzi zawartych w pakiecie BASCOM8051
„Special Edition for Elektronika Praktyczna”,
który przebojem zyskuje sobie coraz większą
popularność wśród Czytelników naszego pi−
sma, podobnie jak wśród elektroników na ca−
łym świecie. Dlatego też opis działania ukła−
du ilustrowany będzie licznymi fragmentami
programu napisanego w języku MCS BASIC.
Wykonanie proponowanego układu jest
stosunkowo proste, a koszt elementów po−
trzebnych do jego budowy jest niezbyt wyso−
ki. Koledzy, którzy zdecydują się na jego bu−
dowę, będą mieli dwie możliwości zaopa−
trzenie się w zaprogramowany procesor,
niezbędny do funkcjonowania urządzenia.
Elektronika dla Wszystkich
17
Projekty AVT
Metodą najprostszą będzie zakupienie kitu,
w którego skład wchodzi zaprogramowany
chip AT89C2051. Bardziej ambitni konstruk−
torzy zechcą zapewne samodzielnie zapro−
gramować procesor, pisząc własną wersję
programu. W tym celu powinni się zaopa−
trzyć w podstawowe narzędzia jakimi są pa−
kiet BASCOM8051 i programator MCS Fla−
shprogrammer AVT−2502. Dostęp do progra−
mu BASCOM8051 Special Edition For Elek−
tronika Praktyczna jest szczególnie łatwy:
znajduje się na płycie CD−EP 4/00 oraz na
stronie www.ep.com.pl.
czych, odbiornika kodu RC5 − TFMS5360
i garstki elementów dyskretnych. Procesor
89C2051 posiada liczne zalety, ale także
i jedną wadę: nie jest wyposażony w wewnę−
trzną nieulotną pamięć danych, co spowodo−
wało konieczność zastosowania dodatkowe−
go układu, przechowującego informacje
o kodach poszczególnych komend sterują−
cych pracą urządzenia.
Jako elementy wykonawcze zastosowa−
ne zostały przekaźniki typu RM−82,
z których każdy wyposażony jest w dwie
pary przełączanych styków. Zwiększa to
dodatkowo możliwości układu, który w za−
sadzie może sterować aż 32 różnymi urzą−
dzeniami, dołączanymi w najrozmaitszy
sposób do styków przekaźników. Szerzej
poruszymy ten temat w części artykułu po−
świeconej montażowi układu.
Jako odbiornik kodu RC5 emitowanego
przez pilota zastosowano dobrze znany układ
typu TFMS5360. Jest to „magiczna” kostka,
która uwalnia nas od wszelkich problemów
związanych z budową wzmacniacza odbiera−
nego sygnału czy też filtrów eliminujących
„niepożądane” częstotliwości nośne. Na wyj−
ściu IC4 otrzymujemy od razu „gotowy” prze−
bieg prostokątny, zgodny ze standardem TTL.
Układ może być zasilany napięciem sta−
łym o wartości 10 ... 18VDC lub przemien−
nym 8 ... 12VAC dołączanym do złącza
CON19. Część cyfrowa urządzenia zasilana
jest napięciem +5VDC, dostarczanym przez
scalony stabilizator napięcia IC3.
Sposób połączenia procesora z biernymi
elementami układu najlepiej prześledzić na
podstawie fragmentu programu, w którym
Jak to działa?
Na
rysunku 1
został pokazany schemat elek−
tryczny proponowanego układu sterownika.
Układ jest wyjątkowo prosty: poza proceso−
rem 89C2051 i pamięcią AT24C04 układ
składa się z ośmiu przekaźników wykonaw−
Rys. 1 Schemat ideowy
18
Elektronika dla Wszystkich
Projekty AVT
za pomocą wyjątkowo
wygodnego polecenia
ALIAS nadano wypro−
wadzeniom procesora
nazwy zgodne z pełnio−
nymi przez nie funkcja−
mi. Dodatkowo w syste−
mie utworzono magi−
stralę I
2
C, która służy
obsłudze zewnętrznej
pamięci danych − I
C
2.
Analizę sposobu
działania układu roz−
poczniemy opierając się na listingach frag−
mentów programu w momencie włączenia
zasilania urządzenia. Pierwszą czynnością ja−
ką procesor wykonuje po inicjalizacji i konfi−
guracji systemu jest sprawdzenie stanu jum−
pera JP1 (listing 1). Od wyniku tego badania
zależeć będzie dalszy bieg wypadków.
Config Sda = P1.3
Config Scl = P1.4
Zauważmy, że niezależnie od badania sta−
nu jumpera program odczytuje także zawar−
tość komórki pamięci o adresie 127 i jeżeli nie
jest ona równa 133, to także wzywa podpro−
gram rejestracji komend. Za chwilę dowiemy
się, jaki sens ma ten fragment programu.
Niezależnie, czy zostało to spowodowane
zwarciem jumpera JP1, czy też wykryciem
nieprawidłowej wartości zapisanej pod adre−
sem 133 pamięci EEPROM, program rozpo−
czyna wykonywanie pętli zawartej w podpro−
gramie REGISTRATION, pokazanym na li−
stingu 2. Jego zadaniem jest teraz zarejestro−
wanie 8 komend kodu RC5, z których każda
może być wysłana pod dowolny z 32 adresów.
Wykonanie tego programu spowoduje zapi−
sanie w pamięci EEPROM 8 komend i ośmiu
adresów wyemitowanych z pilota RC5 i prze−
chowanie ich tam w celu późniejszego porów−
nania z sygnałami odbieranymi podczas pracy
układu. Wiemy już teraz, dlaczego nasz pro−
gram sprawdza zawartość 127 komórki pamię−
ci EEPROM: podczas rejestracji poleceń jest
tam zapisywana liczba 133, a inna wartość od−
czytana z tej komórki świadczy, że pamięć nie
była jeszcze programowana w naszym ukła−
dzie. Oczywiście wartość 133 jest całkowicie
przypadkowa, po prostu jest to pierwsza licz−
ba, jak wpadła mi do głowy.
Zwróćmy jeszcze uwagę na jedna cechę
opisywanego układu. W pamięci zapisywane są
nie tylko polecenia, ale i adresy pod jakie zosta−
ły wysłane. Z tego wynika, że do obsługi nasze−
go układu możemy z powodzeniem wykorzy−
stywać różne piloty, przeznaczone do sterowa−
nie różnymi urządzeniami. Mogą to być piloty
od telewizora, magnetowidu, radiomagnetofo−
nu czy też od kamery wideo. Ważne jest tylko
to, aby wszystkie pracowały w kodzie RC5.
Po zarejestrowaniu poleceń sterujących
układ rozpoczyna pracę w pętli (listing 3),
w której oczekuje na odebranie jakiejś trans−
misji nadawanej w kodzie RC5. Warto zau−
ważyć, że wyjście odbiornika podczerwieni
IC3 zostało dołączone za pośrednictwem złą−
cza CON17 + CON19 do wejścia przerwania
INT0 procesora. Jeżeli więc do odbiornika
dotrze jakikolwiek sygnał nadawany na pod−
czerwieni z częstotliwością 36kHz, to jego
wyjście przybierze stan niski, a procesor
przystąpi do realizacji podprogramu obsługi
przerwania, pokazanej na listingu 4.
Rl1 Alias P1.6
Rl2 Alias P3.7
Rl3 Alias P1.7
Rl4 Alias P3.5
Rl5 Alias P3.0
Rl6 Alias P3.1
Rl7 Alias P3.4
Rl8 Alias P3.3
Jp1 Alias P1.2
Led1 Alias P1.1
Led2 Alias P1.0
'Listing 1
Set Jp1 'spróbuj ustawić
stan wysoki na pinie Jp1
If Jp1 = 0 Then 'jeżeli próba
nieudana, to:
Call Registration 'wezwij podprogram
rejestracji komend i adresów
End If 'koniec warunku
Call Read_eeprom(127 , Value) 'odczytaj zawartość
komórki 127 pamięci EEPROM
'Listing 4
Receiverc5:
Disable Int0 'chwilowo zawieś obsługę przerwania INT0
Getrc5(subaddress , Command) 'zbadaj, czy odebrany kod to transmisja RC5 i dokonaj jego analizy
If Command < 63 Then 'jeżeli wartość odebranej komendy jest mniejsza od 63, to:
If Subaddress < 31 Then 'jeżeli wartość adresu, pod który wysłana została komanda
jest mniejsza od 31, to:
If Value <> 133 Then
'jeżeli odczytana
wartość nie jest równa 133, to
Call Registration
'wezwij podprogram
rejestracji komend i adresów
Rc5_received = 1
'zmienna pomocnicza RC5_RECEIVED sygnalizująca odebranie poprawnej
transmisji przyjmuje wartość jeden
End If : End If
'koniec warunków
End If
'koniec warunku
Return
'Listing 2
Sub Registration
Disable Int0 'chwilowo zawieś obsługę przerwanie INT0
Eepromadres = 1 'zmienna EEPROMADRES przyjmuje wartość 1
Temp2 = 1
'Listing 3
Sub Mainloop
'główna pętla programowa
'zmienna pomocnicza TEMP2 przyjmuje wartość 1
Do
If Rc5_received = 1 Then 'jeżeli zmienna pomocnicza
sygnalizująca odebranie transmisji RC5 przyjęła
wartość 1, to:
Rc5_received = 0 'zmienna ta z powrotem
przyjmuje wartość 0
Disable Int0 'chwilowo zawieszamy
obsługę dalszych przerwań INT0
Call Code_identification
'wezwij podprogram analizujący odebrany kod
Wait 1
For Temp = 1 To 10 'dziesięciokrotnie:
Call Redshort 'wezwij podprogram REDSHORT, którego zadaniem jest generowani krótkiego błysku 'czerwonej
diody LED. Błyski tej diody informują użytkownika, że może przystąpić do rejestracji poleceń
Next
Enable Int0 'ponownie uaktywnij obsługę przerwania INT0
Do 'początek pętli programowej
If Rc5_received = 1 Then 'jeżeli zmienna pomocnicza RC5_RECEIVED przyjęła wartość jeden, to:
Disable Int0 'zawieś obsługę przerwania INT0
Rc_received = 0 'przywróć zmiennej RC5_RECEIVED wartość zero
Call Write_eeprom(eepromadres , Subaddress) 'zapisz w pamięci EEPROM adres, pod jaki 'wysłane zostało
polecenie nadane z pilota
Incr Eepromadres 'zwiększ o 1 wartość zmiennej EEPROMADRES
Call Write_eeprom(eepromadres , Command) 'zapisz w pamięci EEPROM odebraną
komendę kodu RC5
Incr Eepromadres 'zwiększ o 1 wartość zmiennej EEPROMADRES
Incr Temp2 'zwiększ o 1 wartość zmiennej pomocniczej TEMP2
For Temp = 2 To Temp2 'tylokrotnie, ile komend zostało odebranych:
Call Greenlong
'zaczekaj sekundę
Enable Int0
'powtórnie wznów obsługę
przerwania INT0
End If
'koniec warunku
Loop
End Sub
'wezwij podprogram generujący długi błysk diody zielonej,
Jeżeli wstępna analiza odebranego sygnału
wypadła pomyślnie, czyli że program stwier−
dził, że ma do czynienia z kodem RC5, to we−
zwana zostaje procedura identyfikacji odebra−
nej transmisji. W tym momencie mamy już do
dyspozycji dwie dane: wartość odebranej ko−
mendy i adres, pod jaki został wysłana. Pozo−
staje zatem porównać te dane z wartościami
zapisanymi w pamięci EEPROM. Czynność tę
wykonuje podprogram pokazany na listingu 5.
Next Temp
Enable Int0
'ponownie uaktywnij obsługę przerwania INT0
End If
If Temp2 = 9 Then 'jeżeli zmienna TEMP2 przyjęła wartość 9, czyli zapisane już zostało 8 komend i adresów, to:
Call Write_eeprom(127 , 133) 'zapisz pod adresem 127 pamięci EEPROM wartość 133
Exit Do
'wyjdź z pętli programowej
End If
'koniec warunku
Loop
End Sub
Elektronika dla Wszystkich
19
Projekty AVT
Omówiliśmy najważniejsze fragmenty pro−
gramu sterownika. Mam nadzieję, że wszyscy
Czytelnicy zrozumieli zasadę jego działania
i bez jakichkolwiek wątpliwości mogą już
przystąpić do budowy proponowanego układu.
Montaż i uruchomienie
Na
rysunku 2
zostało pokazane rozmie−
szczenie elementów na dwóch płytkach ob−
wodów drukowanych. Na większej płytce
umieszczona została główna część układu,
Jedynie część układu zawierająca odbior−
nik RC5 musi być zlokalizowana w widocz−
nym miejscu, ale sądzę, że z łatwością znaj−
dziecie jakąś elegancką obudowę dla tej ma−
lutkiej płytki.
Montaż układu wykonujemy w typowy
sposób, rozpoczynając od wlutowania ele−
mentów o najmniejszych gabarytach, a koń−
cząc na kondensatorach elektrolitycznych
i przekaźnikach. Pod układy scalone należy
zastosować podstawki. Przekaźniki zastoso−
wane w układzie są najkosztowniejszymi ele−
mentami całego urządzenia. Dlatego też, jeże−
li nie mamy zamiaru wykorzystywać wszyst−
kich ośmiu kanałów, jakimi dysponujemy, to
montowanie ośmiu przekaźników nie miało−
by większego sensu ekonomicznego. Niejed−
nokrotnie wystarczą nam dwa, trzy kanały,
a przekaźniki obsługujące pozostałe urządze−
nia możemy zawsze zamontować później.
Obie płytki należy połączyć ze sobą za
pomocą sześciożyłowego przewodu, najle−
piej tzw. taśmowego. Układ prototypowy te−
stowany był z przewodem o długości 2,5 mb
i nie stwierdzono jakichkolwiek zakłóceń
w przekazywaniu informacji z odbiornika
RC5 do procesora.
Układ sterownika zmontowany ze spraw−
dzonych elementów działa natychmiast po
włożeniu zaprogramowanego procesora
w podstawkę i poza zaprogramowaniem ko−
mend sterujących i ewentualnie kodu dostępu
nie wymaga jakichkolwiek czynności uru−
chomieniowych.
Układ powinien być zasilany napięciem
stałym o wartości ok. 14VDC lub przemien−
nym ok. 8VAC.
Dla tych Kolegów, którym nie bardzo
chciało się wnikać w szczegóły budowy pro−
gramu obsługującego nasz sterownik w naj−
większym skrócie podamy
teraz „instrukcję obsługi”
zbudowanego układu.
Nowo zbudowany, wypo−
sażony w „czystą” pamięć
EEPROM układ będzie wy−
magał zarejestrowania pole−
ceń kodu RC5. W takim ukła−
dzie nie musimy nawet zwie−
rać jumpera JP1, ponieważ po
wykryciu nie zaprogramowa−
nej pamięci EEPROM przej−
dzie on od razu w tryb reje−
stracji komend, co zostanie
zasygnalizowane dziesięcio−
ma błyskami czerwonej diody
LED. Następnie pojedynczy
błysk diody zielonej stanie się
zachętą do podania pierwszej
komendy. Po naciśnięciu
przycisku pilota, zarejestro−
wanie pierwszej komendy zo−
stanie potwierdzone dwoma
błyskami zielonej diody, co
jednocześnie jest zachętą do
'Listing 5
Sub Code_identification
Eepromadres = 1 'zmienna pomocnicza EEPROMADRES przyjmuje wartość 1
For Temp = 1 To 8 'ośmiokrotnie:
Call Read_eeprom(eepromadres , Subaddress2) 'odczytaj z pamięci EEPROM zapisany tam adres pod który
wysyłane jest polecenie dla kolejnego kanału
Incr Eepromadres 'zwiększ wartość zmiennej pomocniczej EEPROMADRES o 1
Call Read_eeprom(eepromadres , Command2)
'odczytaj z pamięci EEPROM wartość komendy obsługującej
kolejny kanał
Incr Eepromadres 'zwiększ wartość zmiennej pomocniczej EEPROMADRES o 1
If Command = Command2 Then 'jeżeli wartość odebranej komendy jest równa zapisanej, to
If Subaddress = Subaddress2 Then 'jeżeli wartość odebranego adresu jest równa odczytanej
z pamięci, to:
Select Case Temp 'dokonaj analizy zmiennej TEMP
Case 1 : Rl1 = Not Rl1 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 2 : Rl2 = Not Rl2 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 3 : Rl3 = Not Rl3 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 4 : Rl4 = Not Rl4 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 5 : Rl5 = Not Rl5 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 6 : Rl6 = Not Rl6 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 7 : Rl7 = Not Rl7 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
Case 8 : Rl8 = Not Rl8 'jeżeli zmienna TEMP = 1 to zmień stan przekaźnika RL1 na przeciwny
End Select 'koniec badania zmiennej TEMP
Call Greenlong 'wygeneruj długi błysk zielonej diody
End If
'koniec warunku
End If
'koniec warunku
Next Temp
End Sub
Rys. 2a Schemat montażowy
zawierająca procesor, przekaźniki, zasilacz
i diody sygnalizujące stan przekaźników. Na
mniejszej płytce znajduje się tylko odbiornik
kodu RC5 i dwie diody sygnalizacyjne. Takie
rozmieszczenie elementów i podział układu
na dwa moduły umożliwia zamontowanie
głównej części urządzenia w obudowie, która
niekoniecznie musi spełnić wysokie wyma−
gania estetyczne i spowodować umieszczenie
całości pod przysłowiową „szafą”.
Rys. 2b Schemat montażowy
20
Elektronika dla Wszystkich
Projekty AVT
podania drugiej komendy, a następnie trze−
ciej (trzy błyski zielonej diody) i tak dalej, aż
do zarejestrowania wszystkich ośmiu pole−
ceń. Jest całkowicie obojętne, które klawisze
wykorzystamy do przesyłania poleceń do ste−
rownika, tak jak obojętne jest pod jaki adres
będą wysyłane.
Zarejestrowanie wszystkich ośmiu pole−
ceń zostanie przez sterownik skwitowane
włączeniem zielonej diody LED na 3 se−
kundy. Następnie układ przechodzi w stan
oczekiwania na polecenia, w którym pozo−
stanie aż do ewentualnego wyłączenia zasila−
nia. Po zaprogramowaniu poleceń należy za−
wsze pamiętać o usunięciu jumpera JP1, po−
nieważ w przeciwnym przypadku nasz układ
wchodziłby w tryb programowania komend
po każdym wyłączeniu zasilania (nawet
przypadkowym).
Warto teraz jeszcze wspomnieć o dodat−
kowych możliwościach oferowanych przez
nasz układ, których istnienie zostało już
wcześniej zasygnalizowane. Mam tu na my−
śli wykorzystywanie podwójnych styków
przekaźników do włączania i wyłączania do−
datkowych urzą−
dzeń. Najlepiej po−
służmy się tu przy−
kładem, pokazanym
na
rysunku 3
. Ma−
my tam siedem róż−
nych odbiorników
energii elektrycznej dołączonych do czterech
z ośmiu przekaźników naszego sterownika.
Waszym zadaniem będzie teraz przeanalizo−
wanie, w jaki sposób działa układ zmontowa−
ny, a właściwie okablowany zgodnie z tym
rysunkiem.
Zbigniew Raabe
e−mail: zbigniew.raabe@edw.com.pl
Wykaz elementów
IIC1 . . . . . . . . . . . . . . . . AT89C2051
IIC2 . . . . . . . . . . . . . . . . . . .AT24C04
IIC3 . . . . . . . . . . . . . . . . . . . . . .7805
IIC4 . . . . . . . . . . . . . . . . . .TFMS5360
T1 ..... T8 . . . . . . . . . . . . . . . . .BS109
Pozostałe
BR1 . . . . . . .mosttek prosttowniiczy 1A
CON1 ..... CON16 . . . . . . . . . . .ARK3
CON17 . . . . . . . . . . . . . . .5x golldpiin
CON18 . . . . . . . . . . . . . . . . . .ARK2
CON19 złłącze szufflladkowe 5
JP1 . . . . . . . . . .2x golldpiin + jumper
Q1 . . .rezonattor kwarcowy 11..059MHz
RL1 ..... RL8 . . . . . . . . . . . . . .RM−82
Kondensatory
C1,, C2 . . . . . . . . . . . . . . . . . . . 27pF
C3 . . . . . . . . . . . . . . . . . . 4,,7
µ
F /16
C4 . . . . . . . . . . . . . . . . . . 1000
µ
F/16
C5,, C6 . . . . . . . . . . . . . . . . . . 100nF
C7,, C8 . . . . . . . . . . . . . . . .100
F/16
Rezysttory
R1...... R8 . . . . . . . . . . . . . . . . . . .1k
Ω
R9,, R10 . . . . . . . . . . . . . . . . . . 560
Ω
R11 . . . . . . . . . . . . . . . . . . . . . .1k
Ω
Półprzewodniki
D1...... D8 . . . . . . . . . . . . . . . .1N4148
D9,, D10 . . . . . . . . . . . . . . . . . . .LED
Komplet podzespołów z płytką jest dostępny w sieci handlowej AVT
jako kit szkolny AVT−2480
REKLAMA
REKLAMA
REKLAMA
Elektronika dla Wszystkich
21
µ
[ Pobierz całość w formacie PDF ]