SYSTEMY MIKROPROCESOROWE W AUTOMATYCE. Projekt bariery świetlnej. Prowadzący: Dr M. Wnuk Wykonał: Marcin Kawalec
1. Wstęp. Zadaniem projektowym było zaprojektowanie i wykonanie bariery świetlnej. Układ ten powinien reagować odcięciem napięcia lub alarmem w przypadku gdy zostanie przerwany strumień światła wyznaczający barierę. Układ taki może mieć zastosowanie przy ograniczeniu sceny robota lub jako czujnik antywłamaniowy. 2. Opis układu. Układ składa się z diody laserowej-nadajnika, fototranzystora-odbiornika, układu mikroprocesora i układu zasilania. Podstawowymi elementami układu zasilania (Rys. 1.) jest: transformator TR1, prostownik M1, stabilizator LM7805 i kondensatory filtrujące C1...C4. Tranzystory T1 i T2 pełnią rolę kluczy. Z układu tego zasilany jest obwód mikroprocesora (złącze J1), dioda laserowa (złącze J2) oraz obwód fototranzystora (złącze J4). Układ mikrokontrolera jest standardowym układem HC05. Na płytkę wyprowadzono wyjścia z portów PA0, PA6, PA7. Port PA0 jest portem wejściowym (wejście 1 złącza J3) i przyjmuje stany zależne od fototranzystora. Porty PA6 i PA7 są portami wyjściowymi. PA6 sygnalizuje alarm, PA7 włącza diodę laserową (wejście 2 złącza J3). 2.1. Zasada działania. Sygnał z portu wyjściowego PA7 podawany jest na bazę tranzystora T1. Jeśli na PA7 pojawi się 1 (+5V), tranzystor przejdzie w stan przewodzenia i załączy obwód diody D1. Jeżeli baza fototranzystora To, zostanie wysterowana światłem z diody, wówczas zamknie on obwód i poprzez klucz T2 na port PA0 zostanie podane +5V ( 1 ). W przypadku przerwania bariery na PA0 podany zostanie stan niski. Warunkiem poprawnego działania jest precyzyjne nakierowanie strumienia światła na fototranzystor(rys.3.a), ponieważ przy małych odchyłkach baza nie jest wystarczająco oświetlana i tranzystor może nie przewodzić. 2.2. Zakłócenia. Może się zdarzyć, że fototranzystor będzie oświetlony przez światła odbite lub ciągłe. Zakłócenia te eliminowane będą w sposób mechaniczny poprzez umieszczenia fototranzystora w rurce (Rys. 3.b,) do której będzie kierowany strumień światła z diody oraz poprzez modulację sygnału świetlnego.
Rys.1. Schemat układu zasilania.
Rys.3. a Nadajnik Odbiornik b Rurka Fototranzystor 3. Program. Przy starcie programu, podczas inicjalizacji porty mikrokontrolera ustawiane są na poziom niski aby ustrzec się przed stanami nieustalonymi. Następnie definiowane są porty wejściowe i wyjściowe. W pierwszej części spr1-włączana jest dioda ( 1 na PA7) i sprawdzany jest stan na porcie PA0. Jeśli stan jest wysoki (bariera nie przezwana) to program skacze do spr2. W przeciwnym przypadku skacze do procedury alarm gdzie ustawia PA6 na 1 i pozostaje w pętli nieskończonej. W procedurze spr2 dioda jest wyłączana i sprawdzany jest stan na PA0 jeśli jest 0 to skacze do spr1, jeśli 1 to uruchamiany jest alarm. Kod programu załączony jest na końcu sprawozdania.
4. Wnioski. Zaprojektowany układ działał poprawnie na symulatorze. Problemem może być zbyt wolna reakcja fototranzystora na zmiany świecenia diody. Należałoby w tym przypadku dodać pętle opóźniające po włączaniu i wyłączaniu diody. Zaletą układu jest wykorzystanie wąskiego strumienia światła laserowego oraz odporność na zakłócenia pochodzące od innych źródeł światła. Wadą natomiast jest duża wrażliwość i wymagana dokładność ustawienia nadajnika i odbiornika w jednej osi. Kod programu: #include 'h705j1a.frk' ORG RAM ;wartosc RAM jest zdefiniowana w H705J1A.FRK, * * ORG EPROM ;wartosc EPROM jest zdefiniowana w H705J1A.FRK, * INIT - Procedura inicjacji. * Po rozpoczeciu w punkcie "start" program wywoluje te procedure * w celu ustawienia kierunku portow, zainicjowania (wpisania * poczatkowych wartosci) zarezerwowanych bajtow pamieci RAM * i zezwolenia na rozne przerwania uzywanw w tym programie. INIT: clr porta ;ustawia zera na porty (pozbycie sie stanow neustalonych) lda #$c0 ;PA7-PA6 - wyjscia, PA5-PA0 - wejscia sta ddra rts ;powrot z podprogramu *********************************************************************** * START - glowny program. START: jsr init ;wywolanie podprogramu inicjacji spr1 bset 7,porta ; 1 na PA7 wlaczenie diody nop ; opoznienie brset 0,porta,spr2 ; sprawdzenie czy PA0=1, skok do spr2 brclr 0,porta,alarm ; jezeli PA0=0 skok do alarm
spr2 bclr 7,porta ; 0 na PA7 zgaszenie diody nop ; opoznienie brclr 0,porta,spr1 ; spr czy PA0=0, skok do spr1 brset 0,porta,alarm ; jezeli PA0=1 skok do alarm alarm bset 6,porta bra alarm ; 1 na PA6 - alarm ; skok do siebie ** *********************************************************************** ORG VECTORS ;ta wartosc jest zdefiniowana w H705J1A.FRK, ;dyrektywa "dw" (define word) wypelnia dwa ;kolejne bajty wartoscia podana w argumencie ;adres procedury obslugi przerwania zegarowego ;... i zewnetrznego ;SWI nie uzywamy ;adres startu po resecie ** *********************************************************************** * MOR - Rejestr opcji maski - komorka typu EPROM org MOR ;ta wartosc jest zdefiniowana w H705J1A.FRK, fcb $20 ; włączenie rezystora wewnetrznego