10-przyciskowy zamek szyfrowy z procesorem AT89C2051.pdf

(338 KB) Pobierz
208772540 UNPDF
10 przyciskowy zamek szyfrowy
z procesorem AT89C2051
3001
Projekty − 3000“. To wielkie wy−
darzenie w dziejach EdW, dlatego
koniecznie przeczytajcie najpierw
„Manifest“ na stronie 17.
zapisywania go na kartce, a tym samym wiąza−
łoby się z ograniczeniem komfortu obsługi
urządzenia. Jednak odgadnięcie nawet liczby
10−cyfrowej jest w zasadzie niemożliwe,
a w każdym razie równie trudne, jak trafienie
głównej wygranej w Toto Lotka. Istnieje także
możliwość stosowania i zapamiętywania liczb
dłuższych: po prostu jako fragmentów takiego
kodu należy stosować sobie tylko znane i do−
brze pamiętane dane liczbowe, np. daty urodzin
członków rodziny czy numery telefonów znajo−
mych. Nie radzę jedynie wprowadzania do ko−
du daty własnego ślubu lub własnych urodzin.
Tę pierwszą wartość z pewnością zapomną
mężczyźni, a drugą − kobiety.
2. Układ wyposażony jest w typowe wyjście
przekaźnikowe, do którego dołączyć można
praktycznie dowolny odbiornik energii elek−
trycznej. Jest to jednak tylko jedno z dwóch
wyjść układu zamka. Przewidując, że propo−
nowany układ znajdzie zastosowanie głównie
jako urządzenie do blokowania dostępu do po−
mieszczeń, wyposażyłem je w drugie wyjście,
radykalnie rozwiązujące problemy z mecha−
nicznym układem zamka do drzwi. Powszech−
nie stosowane rygle elektromagnetyczne mają
jedną, dość istotną wadę: zamknięte za ich po−
mocą drzwi można otworzyć bez najmniej−
szych problemów za pomocą ... nieco moc−
niejszego kopnięcia! Natomiast stosowanie
solidnych zasuw napotykało jak dotąd na pro−
blemy z wykonaniem poruszającej je mecha−
niki. Nasz zamek rozwiązuje wszystkie te pro−
blemy, sterując bezpośrednio dowolną liczbą
serwomechanizmów modelarskich. Serwome−
chanizm bez najmniejszego trudu może poru−
szyć nawet najcięższą i najsolidniejszą zasu−
wę, skutecznie chroniącą zabezpieczane po−
mieszczenie przed wtargnięciem niepowoła−
nych osób. Zastosowanie kilku serwomecha−
nizmów lub dodatkowej przekładni mecha−
nicznej umożliwi natomiast konstruowanie
skomplikowanych, wieloryglowych blokad,
niemożliwych do sforsowania bez użycia cze−
goś w rodzaju M1A1 ABRAMS.
3. Układ może pracować w dwóch, ustawia−
nych za pomocą jumpera, trybach:
− w pierwszym trybie każde prawidłowe
wybranie kodu zmienia stan wyjść układu na
przeciwny, to znaczy, że np. pierwsze wybra−
nie kodu otwiera drzwi, a drugie je zamyka,
− w drugim trybie wprowadzenie popraw−
nego kodu powoduje otwarcie drzwi na okres
ok. 20 sekund, po czym układ automatycznie
zamyka strzeżone pomieszczenie.
4. Umieszczenie całej "inteligencji" układu we−
wnątrz zaprogramowanego procesora pozwoli−
ło na radykalne uproszczenie urządzenia. Kon−
strukcja zamka jest banalnie prosta i możliwa
do wykonania nawet dla zupełnie początkują−
cych elektroników. Program umieszczony
w procesorze został napisany i skompilowany
z wykorzystaniem pakietu BASCOM, a opis
działania układu będzie poparty obszernymi li−
stingami, tak aby Studenci prowadzonego na
łamach EdW BASCOM College mogli spróbo−
wać własnych sił i napisać własny program ste−
rujący pracą zamka.
Do czego to służy?
"... Moim zdaniem, stosowanie typowej wie−
loprzyciskowej klawiatury w nowoczesnej kon−
strukcji zamka szyfrowego automatycznie dys−
kwalifikuje takie urządzenie i naraża konstruk−
tora na posądzenie o pójście na łatwiznę, chy−
ba że jego konstrukcja w założeniu miała być
jedynie zabawką. Złamanie kodu takiego za−
mka jest zawsze dziecinnie łatwe, nawet bez
analizowania stanu zużycia klawiszy... "
No cóż, moi Drodzy Czytelnicy, będę
strzelał do własnej bramki! Powyższy cytat
pochodzi nie z niczego innego, jak z mojego
własnego artykułu, który napisałem nie tak
dawno temu. A zatem, muszę się Wam wytłu−
maczyć, dlaczego tak nagle zmieniłem zdanie,
i proponuję Wam budowę niedawno wyśmia−
nego urządzenia.
Powód zmiany moich poglądów jest bardzo
prosty: zmieniły się także czasy, w Elektronice
dla Wszystkich dokonano wielkiego przełomu,
udostępniając Czytelnikom technikę mikropro−
cesorową. Pisząc powyżej cytowane słowa, mia−
łem na myśli prymitywne konstrukcje, zbudo−
wane z przerzutników i innych elementów za−
wartych w kostkach rodzin 74 i 4000. Natomiast
wykorzystując technikę mikroprocesorową mo−
żemy zbudować zamek szyfrowy o "klasycz−
nej", 10−przyciskowej konstrukcji, który wcale
nie będzie zabawką, ale w pełni profesjonalnym
systemem zabezpieczającym nasze mienie. Zre−
sztą, niech parametry proponowanego urządze−
nia powiedzą same za siebie:
1. Nasz zamek szyfrowy umożliwia używanie
jako kodu dostępu liczby o praktycznie dowol−
nej liczbie cyfr. Przez "praktycznie dowolnej"
rozumiem, że maksymalna długość kodu wy−
nosi aż 253 cyfr. Stosowanie kodów dłuższych
niż dziesięć, no powiedzmy 20 cyfr jest niereal−
ne, ponieważ zapamiętanie tak długiego ciągu
znaków wymagałoby już (dla większości osób)
Rys. 1 Płytka zamka szyfrowego
AVT−144 z EdW 1/96
(12x8cm, 12 układów scalonych)
skala 1:2
18
Elektronika dla Wszystkich
Tym projektem inaugurujemy serię
208772540.023.png 208772540.024.png 208772540.025.png 208772540.026.png
Jeżeli ktoś ma jeszcze wątpliwości w ocenie
możliwości techniki mikroprocesorowej,
to prosimy porównać tę konstrukcję z ukła−
dem zamka szyfrowego, jaki opublikowałem
w EdW 1/96. Ówczesny układ miał znacznie
uboższe możliwości funkcjonalne, ale zawie−
rał 12 układów scalonych na płytce o wymia−
rach 14 x 8 cm ( rys. 1 ).
Jak to działa?
Schemat elektryczny zamka szyfrowego został
pokazany na rysunku 2 . Jak już wspomniano,
sercem układu jest dobrze nam znany procesor
typu AT89C2051, wspomagany przez jeden tyl−
ko dodatkowy układ: pamięć EEPROM typu
AT24C04. Zastosowanie tego układu było abso−
lutnie konieczne, ponieważ procesor
AT89C2051 nie posiada wewnętrznej nieulotnej
pamięci danych. Pamięć zewnętrzna pozwoli na
przechowywanie kodu zamka, bez ryzyka "wy−
walenia" się całej konstrukcji w przypadku wy−
stąpienia przerwy w zasilaniu. Pozostała część
urządzenia to już tylko garstka elementów dys−
kretnych niezbędnych do prawidłowego funk−
cjonowania układu, zasilacz zbudowany z wy−
korzystaniem scalonego stabilizatora napięcia
typu 7805, i oczywiście, klawiatura z 12 przyci−
skami. W wykonaniu praktycznym układ został
podzielony na dwie części umieszczone na osob−
nych płytkach obwodów drukowanych i połą−
czonych za pomocą złącza CON2 + CON3.
Sądzę, że analizę sposobu działania układu,
a właściwie zaszytego w pamięci EEPROM pro−
cesora programu, najlepiej rozpocząć w momen−
cie pierwszego włączenia zasilania, kiedy to
w pamięci EEPROM IC2 nie ma jeszcze zapi−
sanych jakichkolwiek informacji.
Pierwszą czynnością, jaką program ma do
wykonania, będzie właśnie sprawdzenie za−
wartości pamięci EEPROM i próba ustalenia,
czy został w niej zapisany jakikolwiek kod.
Wykonanie następujących instrukcji:
Rys. 2
mocą którego będziemy mogli otwierać nasz
zamek. Podprogram ten wygląda następująco:
z dużym prawdopodobieństwem, czy w pa−
mięci zapisane są już potrzebne do pracy za−
mka dane. Dlaczego napisałem " z dużym
prawdopodobieństwem", a nie z pewnością?
Dlatego, że takie sprawdzenie zawartości EE−
PROM−u daje całkowitą pewność jedynie
w przypadku kostki "fabrycznie nowej",
której cała zawartość zapisana jest wyłącznie
FF−ami (FF(HEX) = 255(DEC)). Tylko w tym
przypadku nieodczytanie spod adresu 255 me−
tafizycznej (ukłon w stronę naszego Wieszcza
Narodowego) wartości 40 i 4 (zapisywanej
tam podczas rejestracji szyfru) jest dowodem,
że kostka nie była jeszcze nigdy użyta do za−
pisywania kodów zamka szyfrowego. Jeżeli
jednak zastosowaliśmy w układzie używany
element, w którym były już zapisywane dane,
to mamy jedną szansę na 256, że układ źle zin−
terpretuje odczytaną wartość i będziemy mu−
sieli uruchomić go powtórnie, tym razem ze
zwartym jumperem JP2. Fakt ten zostanie wy−
kryty przez podprogram:
Sub Rejestracja
For Licznik = 1 To 10 'dziesięciokrotnie:
Call Ledshort 'wezwij podprogram
krótkiego włączenia diody LED i sygnału akustycznego
Next Licznik 'jeszcze raz
Licznik = 0 'wyzeruj zmienną LICZNIK
Do 'wejście w pętle DO ....
LOOP
Digit = 255 'zmienna DIGIT przyjmuje
wartość FF
Call Keyscan 'wezwij podprogram
skanowania klawiatury
If Digit < 10 Then 'jeżeli wartość odczytana
z klawiatury jest mniejsza niż 10, to:
Call Write_eeprom Licznik , Digit 'zapisz ją w
pamięci pod adresem LICZNIK
Incr Licznik 'zwiększ zmienną LICZNIK
End If 'koniec uwarunkowania
If Digit = 11 Or Licznik = 254 Then 'jeżeli
wartość odczytana z klawiatury równa jest
11 (klawisz 'ENTER) lub jeżeli wprowadzono już
253 cyfry (mało 'prawdopodobne!), to:
For R = 1 To 10 'dziesięciokrotnie:
Call Ledshort 'wezwij podprogram
krótkiego włączenia diody LED i sygnału akustycznego
Next R ' jeszcze raz
Call Write_eeprom 255 , 44
'zapisz w EEPROM wartość 44 pod adresem 255
Call Write_eeprom , 254 , Licznik 'zapisz w
EEPROM ilość cyfr w kodzie
Call Read_eeprom 255 , Value 'odczytaj
zawartość adresu 255 pamięci EEPROM
If Value <>44 Then 'jeżeli
odczytana wartość nie jest równa 44 to:
Call Rejestracja 'wezwij
podprogram REJESTRACJA
End If
'koniec
uwarunkowania
gdzie podprogram:
Sub Read_eeprom(adres As Byte , Value As
Byte)
I2cstart 'start transmisji I2C
I2cwbyte 160 'podanie adresu
pamięci EEPROM
I2cwbyte Adres 'podanie adresu
spod jakiego mają zostać odczytane dane
I2cstart 'ponowny start
transmisji I2C
I2cwbyte 161 'ustawienie pamięci
w tryb odczytu danych
I2crbyte Value , Ack 'odczytaj wartość
bajtu z potwierdzeniem
Set P1.1 'ustaw na
wejściu P1.1 stan wysoki
If P1.1 = 0 Then 'jeżeli próba
nieudana, to:
Call Rejestracja 'wezwij podprogram
REJESTRACJA
End If
Licznik = 0
'wyzeruj zmienną LICZNIK
Exit Do
'wyjdź z pętli
Return
'powróć do programu
głównego
End If
'koniec uwarunkowania
Loop
'kontynuuj pracę w pętli
'koniec
uwarunkowania
programowej
End Sub
'koniec podprogramu
I2cstop
'koniec transmisji
danych
Zarówno w pierwszym, jak i drugim opisy−
wanym przypadku następuje wywołanie pod−
programu REJESTRACJA, który umożliwi
nam wprowadzenie do pamięci kodu, za po−
Wykonanie powyższego podprogramu
spowoduje, że w pamięci EEPROM zosta−
nie zapisany szyfr, który może zostać wyko−
rzystany do otwierania zamka, i informacje
End Sub
odczytuje wartość "VALUE" spod wskaza−
nego adresu pamięci, pozwala na ustalenie
Elektronika dla Wszystkich
19
208772540.001.png 208772540.002.png 208772540.003.png 208772540.004.png 208772540.005.png 208772540.006.png 208772540.007.png 208772540.008.png 208772540.009.png 208772540.010.png 208772540.011.png 208772540.012.png 208772540.013.png 208772540.014.png 208772540.015.png
o liczb i cyfr w kodzie oraz o fakcie jego za−
programowania. Wprowadzanie kodu, pod−
czas którego wykorzystujemy wszystkie cy−
fry dostępne z klawiatury, kończymy naci−
śnięciem klawisza S12 − ENTER.
Warto teraz wyjaśnić, w jaki sposób proce−
sor odczytuje dane z dwunastoprzyciskowej
klawiatury. Popatrzmy jeszcze raz na schemat:
wszystkie klawisze zostały połączone w ma−
trycę składającą się z czterech rzędów (ROW1
... ROW4) i trzech kolumn (COL1 ... COL3).
Każda kolumna i każdy rząd dołączone zosta−
ły do wyprowadzeń portu P1 i P3 procesora.
Aby ułatwić sobie pisanie programu i uwolnić
się od konieczności ciągłego spoglądania na
schemat, nadajmy odpowiednim wyprowadze−
niom procesora nowe nazwy, wykorzystując
wygodne polecenie ALIAS. A więc:
Skanowanie klawiatury odbywa się nastę−
pująco:
End If
'koniec uwarunkowania
OTWIERANIE
...........
Set Row1 : Reset Row2 'ustaw stan niski tylko
w drugim rzędzie matrycy klawiatury
Set Col1 'ustaw stan wysoki w
pierwszej kolumnie matrycy klawiatury
If Col1 = 0 Then 'jeżeli stan COL1 w dalszym
ciągu pozostaje niski (naciśnięty klawisz S2), to:
Digit = 4 'zmienna DIGIT (wartość
odczytana z klawiatury) przyjmuje wartość 4
Call Ledshort 'błyśnij raz diodą LED i podaj
sygnał akustyczny
While Col1 = 0 'poczekaj na puszczenie
klawisza
End If
'koniec uwarunkowań
End If
End If
End If
If Digit = 11 Then 'jeżeli odczytana z
klawiatury wartość to 11 (klawisz ENTER), to:
If Digits = Licznik Then 'jeżeli
wprowadzono właściwą ilość cyfr, to:
If Flag1 = 1 Then ',jeżeli zmienna FLAG1
równa jest 1 (wszystkie cyfry były poprawne), to:
If Fl = 0 Then 'jeżeli zmienna FL równa
jest 0, to:
Licznik = 0 'wyzeruj licznik
Call Otwieranie2 'wezwij podprogram
OTWIERANIE2
Wend
End If
...........
End Sub
End If
'koniec uwarunkowań
'koniec podprogramu
skanowania klawiatury
End If
End If
End If
If Digit = 10 Then 'jeżeli odczytana z
klawiatury wartość to 10 (klawisz SET) to:
If Digits = Licznik Then 'jeżeli
wprowadzono właściwą ilość cyfr, to:
If Flag1 = 1 Then ',jeżeli zmienna FLAG1
równa jest 1 (wszystkie cyfry były poprawne), 'to:
Licznik = 0 'wyzeruj licznik
Call Rejestracja 'ponownie wezwij
podprogram rejestracji kodu
Po zarejestrowaniu kodu (należy teraz
usunąć jumper JP2) układ przechodzi w stan
czuwania, podczas którego nieustannie skanu−
je klawiaturę, oczekując na wprowadzenie
prawidłowego szyfru. Program sprawdza też
stan jumpera JP1, który decyduje, a w jakim
trybie układ ma pracować. Jeżeli teraz naci−
śnięty zostanie którykolwiek z klawiszy, to
program przystępuje do analizy wprowadza−
nych cyfr i porównywania ich z zapisanym
w pamięci kodem dostępu. Badaniem popraw−
ności wprowadzonego szyfru zajmuje się pro−
gram główny:
Row1 Alias P1.2
'pin P1.2 możemy
odtąd nazywać "ROW1"
Row2 Alias P3.7
'pin P3.7 możemy
odtąd nazywać "ROW2"
Row3 Alias P1.3
'pin P1.3 możemy
odtąd nazywać "ROW3"
End If
'koniec uwarunkowań
End If
End If
Digit = 255
Row4 Alias P1.7
'pin P1.7 możemy
odtąd nazywać "ROW4"
'zmienna DIGIT przyjmuje
Col1 Alias P1.6
'pin P1.6
możemy odtąd nazywać "COL1"
wartość 255
Loop
'zamknięcie pętli pro−
Col2 Alias P1.4
'pin P1.4
możemy odtąd nazywać "COL2"
gramowej
End Sub
Col3 Alias P1.5
'pin P1.5
możemy odtąd nazywać "COL3"
Sub Mainloop
Do
Set P3.1 'ustaw stan wysoki na
wejściu P3.1 (jumper JP1)
If P3.1 = 1 Then 'jeżeli udało się, to:
Fl = 1 'zmienna Fl przyjmuje
wartość 1
Else 'w przeciwnym przypadku:
Fl = 0 'zmienna FL przyjmuje
wartość 0
End If 'koniec uwarunkowania
Flag1 = 1 'zmienna FLAG1
przyjmuje wartość 1
Call Read_eeprom 254 , Value 'odczytaj
zawartość pamięci pod adresem 254
Digits = Value 'zmienna DIGITS (liczba
cyfr w kodzie) przyjmuje odczytaną wartość
Call Keyscan 'sprawdź stan klawiatury
If Digit < 10 Then 'jeżeli naciśnięty został
klawisz 0 ... 9, to:
Call Read_eeprom Licznik , Value 'odczytaj z
pamięci kolejną cyfrę kodu
Incr Licznik 'zwiększ stan zmiennej
LICZNIK
End If 'koniec uwarunkowania
If Digit < 10 Then 'jeżeli naciśnięty został
klawisz 0 ... 9 to:
If Digit <> Value Then 'jeżeli odczytana z
klawiatury cyfra nie odpowiada kolejnej cyfrze
'kodu, to:
Flag1 = 0 'zmienna FLAG1 przyjmuje
wartość 0
Licznik = 0 'wyzerowanie licznika
End If 'koniec uwarunkowania
End If 'koniec uwarunkowania
If Digit = 11 Then 'jeżeli odczytana z
klawiatury wartość to 11 (klawisz ENTER), to:
If Digits = Licznik Then 'jeżeli
wprowadzono właściwą liczbę cyfr, to:
If Flag1 = 1 Then ,jeżeli zmienna FLAG1
równa jest 1 (wszystkie cyfry były poprawne), to:
If Fl = 1 Then 'jeżeli zmienna FL równa
jest 1, to:
Warto jeszcze wspomnieć o sposobie, w jaki
program pozycjonuje położenie wału napędo−
wego serwomechanizmu. Służą temu niedawno
opracowane przez MCS Electronics polecenia:
CONFIG SERVOS = [liczba zastosowanych
serwomechanizmów (ograniczona jedynie
liczbą dostępnych wyprowadzeń procesora)]
SERVO[x] = pin (poinformowanie kompila−
tora, do których wyprowadzeń zostały dołą−
czone serwa)
SERVO [numer serwa] = [kąt obrotu]
Gdzie kąt obrotu może być określony liczbą
z przedziału 5 ... 24 (przy stosowaniu standar−
dowych serw modelarskich daje to obrót wału
o blisko 180 O ). Wał serwa możemy pozycjono−
wać w 19 położeniach, z krokiem co około
9,5 O . Ograniczało to nieco stosowanie serwo−
mechanizmów do wykonywania precyzyjnych
czynności i spowodowało konieczność modyfi−
kacji polecenia SERVO. W kolejnej edycji BA−
SCOM−a będzie ono umożliwiać poruszanie
serwomechanizmu z krokiem co 1 O . Na szczę−
ście, w naszym programie zamka szyfrowego
ograniczenie pierwszej wersji polecenia
SERVO nie miało najmniejszego znaczenia,
1. Procesor kolejno ustawia na wyjściach
ROW1 ... ROW4 stan niski.
2. Następnie procesor stara się wymusić na
kolejnych wejściach COL1 ... COL3 stan wy−
soki.
3. Jeżeli powyższa próba się nie udaje, to
oznacza to, że naciśnięty został klawisz odpo−
wiadający aktualnie wybranemu rzędowi i ko−
lumnie matrycy.
Przykładowo przeanalizujmy fragmenty
podprogramu KEYSCAN:
Sub Keyscan
Reset Row1 'ustaw stan niski na
pierwszym rzędzie matrycy klawiatury
Set Col1 'ustaw stan wysoki
w pierwszej kolumnie matrycy klawiatury
If Col1 = 0 Then 'jeżeli stan COL1 w dalszym
ciągu pozostaje niski (naciśnięty klawisz S1), to:
Digit = 7 'zmienna DIGIT (wartość
odczytana z klawiatury) przyjmuje wartość 7
Call Ledshort 'błyśnij raz diodą LED i podaj
sygnał akustyczny
While Col1 = 0 'poczekaj na puszczenie
klawisza
Wend
End If
'koniec uwarunkowania
Set Col2 'ustaw stan wysoki w
drugiej kolumnie matrycy klawiatury
If Col2 = 0 Then 'jeżeli stan COL2 w dalszym
ciągu pozostaje niski (naciśnięty klawisz S5), to:
Digit = 8 'zmienna DIGIT (wartość
odczytana z klawiatury) przyjmuje wartość 8
Call Ledshort 'błyśnij raz diodą LED i podaj
sygnał akustyczny
While Col2 = 0 'poczekaj na puszczenie
klawisza
Licznik = 0 'wyzeruj licznik
Call Otwieranie 'wezwij podprogram
Wend
20
Elektronika dla Wszystkich
208772540.016.png 208772540.017.png 208772540.018.png
ponieważ wał serwa ustawiany jest jedynie
w dwóch skrajnych pozycjach.
nałożyć na całość trzecią płytkę − płytę czoło−
wą układu. Po dociśnięciu płyty czołowej do
płytki klawiatury możemy mieć całkowitą
pewność, że wszystkie przyciski oraz dioda
LED zostaną przylutowane idealnie równo.
Zmontowane płytki musimy połączyć ze
sobą za pomocą 10 odcinków srebrzanki przy−
lutowanych do punktów lutowniczych ozna−
czonych jako CON1 i CON3. Jest to jedyna
nieco trudniejsza czynność, jaką będziemy
musieli wykonać podczas budowy zamka, po−
nieważ lutować musimy od strony ścieżek,
a przewody powinny być jak najkrótsze.
Trzy płytki: płytkę bazową, klawiaturę
i płytę czołową łączymy ze sobą za pomocą
czterech śrubek M3 i tulejek dystansowych.
W przypadku braku odpowiednich tulejek mo−
żemy wykorzystać dodatkowe nakrętki, mo−
cujące poszczególne płytki (szczegóły wi−
doczne są na fotografiach).
Płyta czołowa zamka jest nieco większa od
płytek obwodów drukowanych, a umieszczone
w jej rogach otwory ułatwiają zamocowanie
całej konstrukcji np. w otworze wyciętym
w drzwiach wejściowych do strzeżonego po−
mieszczenia.
Po zmontowaniu całego układu zamka
wkładamy układy scalone w podstawki i dołą−
czamy zasilanie. Jeżeli mamy zamiar wykorzy−
stywać przekaźnik RL1, to napięcie zasilające
musi wynosić około 12VDC. Jeżeli wykorzy−
stywać będziemy jedynie serwomechanizm, to
po usunięciu stabilizatora napięcia IC4 może−
my zastosować zasilanie napięciem z przedzia−
łu 4,8 ... 6VDC. Tu bardzo ważna uwaga: sam
układ elektroniczny pobiera bardzo mało prą−
du, czego niestety nie można powiedzieć o ser−
womechanizmie pracującym pod obciążeniem.
Pobór prądu przez serwo może wynieść nawet
1,5A (przez 1 ... 2 sekundy podczas przesuwa−
nia rygla), co należy uwzględnić podczas pro−
jektowania układu zasilającego.
Montaż i uruchomienie
Na rysunku 3 zostały pokazane płytki dru−
kowane, które możemy wykorzystać do budo−
wy naszego zamka. Płytek tych jest wyjątkowo
dużo, aż pięć, ale tylko dwie z nich są absolut−
nie niezbędne do wykonania proponowanej
konstrukcji. Trzy pozostałe to płyta czołowa
zamka i dwie płytki stanowiące uchwyt do za−
mocowania serwomechanizmu.
Montaż rozpoczniemy od wlutowania
w płytkę główną wszystkich elementów elek−
tronicznych, rozpoczynając od zamontowania
podzespołów o najmniejszych gabarytach,
a kończąc na kondensatorach elektrolitycz−
nych i przekaźniku, o ile mamy zamiar go wy−
korzystywać. Pod układy scalone należy za−
stosować podstawki. Opcjonalne jest także
użycie stabilizatora napięcia IC4. Jeżeli bę−
dziemy dysponować źródłem napięcia o war−
tości 4,5 ... 6VDC, to elementu tego nie musi−
my montować, a także możemy pominąć kon−
densatory C5 i C6.
Po zmontowaniu płytki głównej weźmy się
za klawiaturę. Jednak przed rozpoczęciem tego
etapu pracy warto zastanowić się nad sposobem
wykonania klawisza S8, służącego do wywoły−
wania programu ponownego ustawiania kodu.
Sądzę, że klawisz ten powinien być o kilka mi−
limetrów krótszy niż pozostałe. Uniemożliwi to
jego przypadkowe naciśnięcie po wybraniu ko−
du, pozostawiając możliwość naciśnięcia go za
pomocą np. zapałki lub śrubokręta.
Równe wlutowanie w płytkę dwunastu
przycisków nie jest bynajmniej sprawą najła−
twiejszą i dlatego też proponuję najpierw wło−
żyć wyprowadzenia wszystkich przycisków
oraz diody LED D2 w przeznaczone na nie
otwory w punktach lutowniczych, a następnie
Programowanie
zamka szyfrowego
Po pierwszym włączeniu zasilania układ
automatycznie przechodzi w tryb programo−
wania, co zostaje zasygnalizowane dziesięcio−
ma sygnałami akustycznymi i błyśnięciami
diody LED. Gdyby, co jest bardzo mało praw−
dopodobne, tak się nie stało, to należy ze−
wrzeć jumper JP2 i ponownie włączyć zasila−
nie. Kod wprowadzamy korzystając z nume−
rycznej sekcji klawiatury, wprowadzając ko−
lejne cyfry kodu. Każde naciśnięcie klawisza
potwierdzane jest sygnałem akustycznym
i błyskiem diody LED. Po zakończeniu wpisy−
wania szyfru naciskamy klawisz ENTER, co
spowoduje zapisanie danych w pamięci
i przejście układu w stan oczekiwania. Za−
kończenie wprowadzania kodu kwitowane
jest, podobnie jak jego rozpoczęcie, dziesię−
cioma sygnałami akustycznymi i optycznymi.
Po wprowadzeniu kodu musimy jeszcze
zdecydować, w jakim trybie pracy ma praco−
wać nasz zamek.
1. Tryb pracy 1. Zwarcie jumpera JP1 spo−
woduje, że każde kolejne wybranie kodu bę−
dzie powodowało naprzemiennie otwieranie
i zamykanie zamka.
2. Tryb pracy 2. Jeżeli jumper JP1 pozosta−
wimy rozwarty, to po wybraniu szyfru zamek
będzie pozostawał otwarty przez około 20 se−
kund, po czym automatycznie zostanie za−
mknięty.
Otwieranie zamka szyfrowego
Wprowadzamy ustawiony uprzednio kod
wykorzystując dziesięć klawiszy klawiatury
numerycznej. Po wprowadzeniu wszystkich
zaprogramowanych cyfr, naciskamy klawisz
ENTER. Podanie prawidłowego kodu skwito−
wane zostanie przez układ podwójnym sygna−
łem akustycznym i optycznym (błyśnięciami
diody LED). Jeżeli zamek pracuje w trybie 2,
to dioda LED pozostanie włączona przez cały
czas otwarcia zamka.
Zmiana ustawionego szyfru
Istnieją dwie metody zmiany ustawionego
kodu. Jedna z nich została już opisana wyżej:
zwieramy jumper JP2 i po ponownym włącze−
niu zasilania wprowadzamy z klawiatury no−
wy szyfr. Jednak taka metoda nie zawsze by−
łaby wygodna, chociażby ze względu na brak
łatwego dostępu do płytki zamka. Dlatego też
istnieje druga, łatwiejsza metoda, w której
wszystkie operacje wykonywane są z klawia−
tury.
1. Wybieramy ustawiony uprzednio szyfr.
2. Zamiast klawisza ENTER naciskamy
klawisz SET. Jeszcze raz zwracam uwagę, że
klawisz ten powinien być krótszy od pozosta−
łych, tak aby nie było możliwe jego przypad−
kowe naciśnięcie.
3. Wprowadzamy nowy kod i potwierdza−
my klawiszem ENTER.
Rys. 3
Wykaz elementów
C1,, C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39pF
C3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 µµ F/16
C4,, C6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100nF
C5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470 µµ F/25V
C7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 µµ F/16V
R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .560 ΩΩ
R2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3,,3k ΩΩ
R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1k ΩΩ
D1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1N4148
D2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LED f 3mm
IIC1 . . . . . . . . . . .zaprogramowany procesor 89C2051
IIC2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AT24C04
IIC3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7805
T1BC548
CON1 . . . . . . . . . . . . . . . . . . . . . . . .2x5 golldpiin ów
CON2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .3x golldpiin
CON4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ARK3
CON5 . . . . . . . . . . . . . . . . . . . . . . . . .ARK2 (3,,5mm)
JP1,, JP2 . . . . . . . . . . . . . . . . . .2 x golldpiin + jumper
Q1 . . . . . . . . . . . . . . .rezonattor kwarcowy 11,,059MHz
Q2 . . . . . . . . . . . . . . . . . . . . . . .Piiezo z generattorem
RL1 . . . . . . . . . . . . . . . . . .przekaźniik typu RM96/12V
S1 ..... S12 miicroswiittch 10 mm (S8 − 3mm)
Serwomechaniizm i płłyttkii do jego mocowaniia niie
wchodzą w skłład kiittu..
Komplet podzespołów i trzy płytki są
dostępne w sieci handlowej AVT jako
kit szkolny AVT−3001
Zbigniew Raabe
e−mail: zbigniew.raabe@edw.com.pl
Elektronika dla Wszystkich
21
208772540.019.png 208772540.020.png 208772540.021.png 208772540.022.png
Zgłoś jeśli naruszono regulamin