Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici"

Transkript

1 Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici Mahmut KISACIK ve Doç.Dr. Hasan KÖMÜRCÜGIL Bilgisayar Mühendisligi Bölümü, Dogu Akdeniz Üniversitesi Gazimagusa-Kuzey Kibris Türk Cumhuriyeti ÖZETÇE Günümüzde trafik, herkesin yasaminda sorunlarin basinda yer almayi korumaktadir. Trafikte kaybedilen zaman gidilecek olan yere gecikme yaratmaktadir. Sürücüler ise bu zamani enaza düsürmek için araçlariyla sürat yapmak suretiyle kazalari artirmakta, kisaca yasami felç etmektedirler. Hepimizin de bildigi gibi, bu trafik kargasasini önlemek için trafik lambalari kullanilmaktadir. Bu çalismada, trafik lambalarinin düzenli çalismasi ile birlikte lambalarin yesili yanmasini beklerken kaç saniye sonra (geri sayici) hareket edebilecegimizi görmemizi saglayan mikroislemci kontrollu bir prototip devre önerilmektedir. 1. GIRIS Trafik lambalarinin en önemli görevi trafigi akici bir hale getirmek, yayalara yol hakki vermek ve trafik düzenini saglamaktir. Trafigin yogun oldugu zamanlarda trafik lambalari daha uzun mesafeli yanip söner, az yogunlasan yolda ise bunun tersi görülür. Ülkemizde trafik lambalari, araba sayisinin artmasi nedeniyle günden güne artmaktadir. Bu çalismada, PIC16F84A mikrokontrolcusu kullanilarak yapilan bir prototip trafik lamba denetleyici tasarimi ve yayalar için öngörülen geri sayicinin çalismasi açiklanmaktadir. 2. PIC16F84A Hakkinda Bilgi PIC (Peripheral Interface Controller) serisi mikroislemciler, MICROCHIP [1] firmasi tarafindan gelistirilmis olan hizli ve ucuz mikroislemcilerdir. PIC 16CXX ailesinin amatör elektronikçiler arasinda en çok taninan ve dünyada üzerinde ençok proje üretilmis, internetin gözdesi olan bireyi PIC16C84 veya yeni adiyla PIC16F84 veya PIC16F84A dir. Microchip firmasinin üretmis oldugu PIC16F84A mikrokontrolcusu bu projenin ana elementidir. PIC16F84A nin en belirgin özelligi hizli programlanabilmesidir. PIC 16F84A nin bu kadar popüler olmasi onun çok iyi bir islemci olmasindan ziyade program belleginin EEPROM (elektrikle silinip programlanabilen bellek) olmasindan kaynaklanmaktadir. Seri olarak dört adet kabloyla programlanmasi da diger önemli avantajidir. Bugüne kadar amatörce bir islemciyle ugrasmis herkesin en büyük sikintisi EPROM veya EPROM tabanli islemcileri programladiktan sonra UltraViole isik kaynagi ile silip tekrar programlamaktir. Bu çok zahmetli ve bir amatör için ekipman gerektiren yöntem olmustur. Evde üretilmesi zor olan özel bir programlayici da madalyonun diger yüzüdür. Amatör bir elektronikçi PIC16F84A ile program gelistirmek için su ekipmana ihtiyaç duyar a) PIC16F84A b) MS-DOS tabanli bir PC c) ASCII Editör (örnegin:windows da kullanilan *.txt) d) MPASM Assembler [2] e) Programlayici/silici f) Programlayici için yazilim (PICall) 3. PIC16F84A Kontrollu Prototip Trafik Lamba Tasarimi ve Geri Sayici PIC16F84A ile trafik lambalari ve geri sayicinin blok semasi Sekil 1 de gösterilmistir. Sistemin ana kontrolcusu PIC16F84A mikrokontrolcusudur. PIC16F84A iki yöntemle çalistirilir. Birincisi osilatör resonatör (XT), ikincisi direnç kapasitör (RC) yöntemleridir. Bu çalismada PIC16F84A direnç ve kapasitor ( R = 4. 7KΩ ve C = 22pF ) kullanmak suretiyle çalistirilmistir. Burada, bir dörtyol kavsaginda bulunan trafik lambalarinin çalisma düzeni ele alinmistir. Bu düzeni söyle açiklayabiliriz. Iki karsi yol çalisirken diger iki karsi yolda bulunan araçlar kirmizida bekliyor. Çalisan yollarda saga veya sola dönmek yok. Fakat yayalara yönelik bir trafik lambasi sistemi meydana geliyor. Çünkü, bekleyen yolun karsi seridindeki araçlar da hareket etmedigi için yayalar kolayca geçebiliyor. Bunlara ek olarak, her yoldaki lambanin üstünde iki dijitli geri sayici öngörülmüstür. 17

2 7 lik segment göstergeleri seçmek için pnp transistörler (BC640) Ledlere seri baglanan 470 Ω luk dirençler 240V AC 50 Hz Mikrokontrolcular: Bu çalismada bir tanesi trafik lambalari için digeri de geri sayici için olmak üzere toplam iki tane PIC16F84A kullanilmistir. Güç kaynagi +5 V DC 4 tane 2 dijit 7 lik segment gösterge Trafik lambalari (Leds) (Yesil,Turuncu,Kirmizi Sekil 1-PIC16F84A ile yapilan prototip trafik lambalari ile geri sayicinin blok semasi Ledler (trafik lambalari) PIC16F84A nin portuna 470 Ω luk seri dirençler vasitasiyla baglanmistir. Ledlerin denetimi için, PIC16F84A in çikis pinlerinin tamami kullanilmistir. Yayalar için ise akilli bir parallel baglanti yapip beraber dogru bir sekilde çalismalari saglanmistir. Geri sayici, ilk önce parallel olarak iki lamba için tasarlanmistir. Çünkü, iki karsi yolun ayni bekleme sürelerinin oldugu varsayilmistir. Daha sonra, PIC16F84A nin A portundan seçme yaparak bir ikili parallel geri sayim daha yapmak suretiyle iki karsi yollar ayni bekleme süreleriyle birlikte trafik lambalariyla beraber çalisir hale gelmis oldu. 4.Prototip Trafik Lambalari ve Geri Sayicinin Kontrol Modülü Kontrol modülü, olabilecek en basit yapida tasarlanmistir. Her sistem için birer PIC16F84A kullanilmistir. RA2 RA1 RA3 RA0 RA4/TOCK1 OSC1/CLKIN MCLR OSC2/CLKOUT VSS PIC16F84A VDD RB0/INT RB7 RB1 RB6 RB2 RB5 RB3 RB4 4.7K +5V 22 nf 2Y 3Y 1Y 4Y 4A 4A 3Y 4Y 3A 3A 3A 2Y 4A 1Y Sekil 2- Prototip trafik lambalari kontrol birimi 18

3 Sekil 2 de, prototip trafik lambalari kontrol birimi gösterilmistir. Burada, birinci araba lambasini, ikinci araba lambasini, 3A üçüncü araba lambasini, 4A ise dördüncü araba lambasini temsil etmektedir. Ayni sekilde, 1Y birinci yaya lambasi, 2Y ikinci yaya lambasi, 3Y üçüncü yaya lambasi, 4Y ise dördüncü yaya lambasi olarak öngörülmüstür. Ledlere bagli olan dirençler 470 Ω dur. Geri sayim göstergesi kontrol birimi Sekil 3 de gösterilmistir. Kisitli yer sebebiyle assembly program kisminda sadece trafik lambalari kontrol birimine ait olan program verilmistir. Ilgi duyan okuyucular, progamin geriye kalan kismini bizden temin edebilirler. RA2 RA1 RA3 RA0 RA4/TOCK1 OSC1/CLKIN MCLR OSC2/CLKOUT VSS PIC16F84A VDD RB0/INT RB7 RB1 RB6 RB2 RB5 RB3 RB4 4.7K 22nF +5V Gösterge 1 Gösterge 3 Gösterge 2 Gösterge 4 Gösterge 1 ile Gösterge 3 Gösterge 2 ile Gösterge 4 parallel çalisir. parallel çalisir. Sekil 3- PIC16F84A ile geri sayim göstergesi kontrol birimi BC640 1-Emiter 2-Base 3-Collector ASSEMBLY PROGRAMI ; 1-Traffic Light Control ; 2-MAHMUT KISACIK ; 3-TRAFFIC LIGHT CONTROL USING PIC16F84A ; 4-This program is assembled by MPASMv03.20 and installed into the ; chip by using the PICALL program ; 5-tyayau1.asm ; 6-8/2/82 ; 7-MPASM programming language LIST p=16f84a ;PIC16F84A is the target processor #include p16f84a.inc ; Include header file CONFIG _RC_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ; we used resistor/capacitor type oscillator, watch dog timer is off, power up ;timer is on, code protection is off. 19

4 OuterLoop EQU 0x20 ;delay loop Count EQU 0x010 ;delay counter Counthi EQU 0x011 ;delay counter COUNTER11 EQU 0X013 ;delay counter COUNTER22 EQU 0X014 ;delay counter ORG 0 START ; Start at the reset vector clrf PORTB ;clear PORTB, make All Outputs LOW movlw b' ' ;Port B all datas are outputs bsf STATUS,RP0 ;select Bank 1 movwf TRISB ;enable all outputs on PORTB bcf STATUS,RP0 ;select Bank 0 movlw b' ' ;All Outputs LOW clrf PORTB ;Make All Outputs LOW clrf PORTA ;clear PORTA, make All Outputs LOW movlw b' ' ;Port A all datas are outputs bsf STATUS,RP0 ;select Bank 1 movwf TRISA ;enable all outputs on PORTA bcf STATUS,RP0 ;select Bank 0 movlw b' ' ;All Outputs LOW movwf PORTA ;Make all outputs low MAINLOOP bsf PORTB,0 ;1ST RED ON bsf PORTA,2 ;2ND RED ON bsf PORTA,1 ;3RD RED ON bsf PORTB,6 ;4TH RED ON bsf PORTB,1 ;1ST ORANGE ON bsf PORTB,5 ;3RD ORANGE ON ;outerloop=8 Loop1 CALL PAUSE ;we call 8 times PAUSE DECFSZ OuterLoop,f GOTO Loop1 bcf PORTB,0 ;1ST RED OFF bcf PORTB,6 ;3RD RED OFF bcf PORTB,1 ;1ST ORANGE OFF bcf PORTB,5 ;3RD ORANGE OFF bsf PORTB,2 ;1ST GREEN ON bsf PORTB,4 ;3RD GREEN ON MOVLW 0X057 Loop2 GOTO Loop2 MOVLW 0X070 Loop55 GOTO Loop55 MOVLW 0X070 Loop54 GOTO Loop54 bcf PORTB,2 ;1ST GREEN OFF bcf PORTB,4 ;3RD GREEN OFF bsf PORTB,1 ;1ST ORANGE ON bsf PORTB,5 ;3RD ORANGE ON Loop3 GOTO Loop3 bcf PORTB,1 ;1ST ORANGE OFF bcf PORTB,5 ;3RD ORANGE OFF bsf PORTB,0 ;1ST RED ON bsf PORTB,6 ;3RD RED ON bsf PORTA,3 ;2ND ORANGE ON bsf PORTA,0 ;4TH ORANGE ON Loop4 GOTO Loop4 bcf PORTA,2 ;2ND RED OFF bcf PORTA,1 ;4TH RED OFF bcf PORTA,3 ;2ND ORANGE OFF bcf PORTA,0 ;4TH ORANGE OFF bsf PORTB,3 ;2ND GREEN ON bsf PORTB,7 ;4TH GREEN ON MOVLW 0X044 Loop5 GOTO Loop5 MOVLW 0X050 Loop51 GOTO Loop51 MOVLW 0X050 Loop52 GOTO Loop52 bcf PORTB,3 ;2ND GREEN OFF bcf PORTB,7 ;4TH GREEN OFF bsf PORTA,3 ;2ND ORANGE ON bsf PORTA,0 ;4TH ORANGE ON Loop6 GOTO Loop6 20

5 bcf PORTA,3 ;2ND ORANGE OFF bcf PORTA,0 ;4TH ORANGE OFF goto MAINLOOP PAUSE ; One Second Delay movlw 0x099 movwf Count movlw 0x099 movwf Counthi Dlay_Loop decfsz Count, f;when f=0, pass the loop and continue GoTo Dlay_Loop decfsz Counthi, f ;when f=0, pass the loop and continue GoTo Dlay_Loop Return ;retrurn to where you call PAUSE DELAY MOVLW h'0b' MOVWF COUNTER11 LOOP9 MOVLW h'ff' MOVWF COUNTER22 LOOP99 DECFSZ COUNTER22,F GOTO LOOP99 DECFSZ COUNTER11,F GOTO LOOP9 RETURN end 5. SONUÇ Sistem tasariminda, mikrokontrolcular kullanilmasi gelisen teknolojinin vazgeçilmez gerçegidir. Bu çalismada önerilen dörtyol trafik lambalari ve geri sayicinin basarili bir sekilde çalistigi görülmüstür. Bu düzenek, istege göre farkli durumlar için de çalisabilir. Örnegin, hangi isigi söndürüp hangisini yakacaginizi bildiginiz zaman bir yonca kavsagi bile çok kolaylikla kontrol edilebilir. Bu çalismaya ek olarak yapilan fakat burada belirtilmeyen dörtyol ortasinda dört tarafli dijital saati ve tarihi de gösteren bir baska düzenek yapmak mümkündür. Saatin ve tarihin de var oldugu düzenek burada önerilen çalismaya eklendigi zaman ortaya çikacak olan sistemin kazalarin azalmasina, insanlarimizi bazi konularda biliçlendirmeye, ve daha derli toplu bir trafik olusmasina neden olacaktir. 6. KAYNAKÇA [1] [2] 21