PRJ1505A - Kavşak Kontrol Cihazı
Sabit Programlı Yaya Butonlu Okul Önleri Veya Yaya Geçidi Uygulamalı
AÇIKLAMALAR
Bu proje "Trafik-Sinyalizasyon Kontrol Cihazları" grubunda yer almaktadır.
Yaya geçitlerinde, özellikle yoğun yaya trafiği olan okul önlerinde kullanılması amaçlanarak tasarlanmış basit ve ekonomik trafik sinyalizasyon kontrol cihazıdır. Üzerindeki mikrodenetleyici, sabit bir sinyalizasyon programı içerir. Bu programa bağlı olarak cihaza bağlanacak yaya butonlarına basılıncaya kadar ana yol yeşildir. Butona basıldıktan belirli bir süre sonra yaya yolu açılır, araç yolu kapanır. Sürekli butona basılma durumuna karşılık cihaz trafik akışını düzenleyecek şekilde çalışır. Cihaz üzerinde bir adet flaşör çıkışı, gece durumda flaşör çalışmaya geçmek için saat bağlamaya uygun, giriş mevcuttur.
Cihaz, PIC16F84 mikrodenetleyicisi ile kurulmuştur. İhtiyaç duyulan tüm fonksiyonlar, mikrodenetleyici ile gerçekleştirilmiş ve harici eleman kullanılmamıştır. Program, mikrodenetleyiciye programlama aşamasında yüklenir ve sonradan değiştirilemez. Proje için hazırlanmış sinyalizasyon programı, konusunda uzman kişilerce hazırlanmış olup standartları yerine getirmektedir. Böylece herhangi bir değişikliğe gerek kalmadan, birçok butonlu yaya geçidi uygulamasında kullanılabilir.
Devrenin çıkışları "zero cross" triyak sürücü tekniği ile tasarlamış olup çıkışlara bağlanacak lambaların çalışma ömrünün artırılması sağlanmıştır. Güç triyakları olarak BTA12 izoleli triyakları kullanılmıştır. Her bir çıkış 2kWatt'lık yükleri sürebilir. Çıkışa lambalar paralel olarak bağlanabilir. Ayrıca çıkışlar, devre üzerinde yer alan sigortalar ile, kısa devreye karşı korunmuştur.
Devre 220VAC (+,- %25) şebeke gerilimiyle çalışır. Enerji dalgalanmalarından etkilenmez. Lambalar hariç enerji tüketimi 1W/Saat tir.
Girişler: 1 adet yaya butonu girişi: Devre üzerinde yer alan yaya butonu girişine, birden fazla buton paralel olarak bağlanabilir. Toplam hat uzunluğu 1 km'dir. 1 adet normal/flaşör çalışma seçim girişi: Bu girişe günlük programlanabilir zaman saati bağlanarak cihaz günün istenilen saatlerinde flaşör çalışma moduna alınır.
Çıkışlar: 2 adet oto sinyal verici çıkışı, 2 adet yaya sinyal verici çıkışı, 1 adet flaşör sinyal verici çıkışı
PROJENİN BASKILI DEVRESİ (2:1)

PROJENİN KUTULANMASI VE DIŞ GÖRÜNÜŞ TASARIMI
Projenin kutulanması birçok farklı şekilde yapılabilir. Plastik, su geçirmez ve kelepçeler ile direğe montaj imkanı sağlayan bir kutu kullanılabileceği gibi, küçük pano kutuları da kullanılabilir. Bu proje için özel bir kutu tasarımı yapılmamıştır. Piyasada kolaylıkla kullanılabilecek metal yada plastik kutu mevcuttur.
Aşağıdaki şekilde önerilen kutu içi montaj şeklinin taslak görüntüsü yer almaktadır.

MALZEME LİSTESİ
- T1...T11-BTA12-600
- U1...U11-MOC3041
- U12 - PIC16C84-4 / PIC16F84 - 4 / PIC16F84A - 4
- U13 - LM 7805
- D12,D13 - 1N4001
- D1,D4,D7,D9 - 5mm Kırmızı Led
- D2,D5,D11 - 5mm Sarı Led
- D3,D6,D8,D10 - 5mm Yeşil Led
- D14 - 1N4148
- C2 - 1000uF / 16V Elektrolitik
- C1,C3,C6....C10 - 100nF
- C4,C5 - 20pF
- X1 - 4Mhz kristal
- R301...R311 - 330 1/4W
- R401...R411 - 330 1/4W
- R101...R111 - 150 1/4W
- R201...R211 - 100 1/4W
- R1,R2,R3 - 47k1/4W
- R4 - 4701/4W
- F1,F11-TK79 SİGORTA SOKETİ VE 2,5A CAM SİGORTA
- KLEMENSLER-BASKILI DEVRE KLEMENSİ
- TRANSFORMATÖR-2X7.5V 3W
ASM PROGRAM
; ;PRJ1505 PIC16F84 KAVSAK KONTROL CIHAZI ;PIC84 ILE YAYA LAMBASI KONTROLU ;HSERIMER 7/97
LIST P = 16F84, F = INHX8M, n = 66 PIC84 equ H'03FF'
;REGISTER TANIMLAMALARI W EQU H'0000' F EQU H'0001' INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTB EQU H'0006' EEDATA EQU H'0008' EEADR EQU H'0009' PCLATH EQU H'000A' INTCON EQU H'000B' OPTION_REG EQU H'0081' TRISA EQU H'0085' TRISB EQU H'0086' EECON1 EQU H'0088' EECON2 EQU H'0089' HCOUNT equ H'000D' LCOUNT equ H'000E' ZAMAN equ H'0028' msb equ 0x29 ;delay register lsb equ 0x2A ;delay register FLCOUNT equ H'0027' ;flas SAYACI WAITC equ H'0026' ;wait ve run SPECIAL equ H'0025' ;special function registeri COUNT1 equ H'0021' ;system timer counter COUNT2 equ H'0021' ;system flas timer counter SYSFUNC equ H'0020' ;system control register ;----- STATUS Bits -------------------------------------------------------- IRP EQU H'0007' RP1 EQU H'0006' RP0 EQU H'0005' NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002' DC EQU H'0001' C EQU H'0000' __MAXRAM H'AF' __BADRAM H'07', H'30'-H'7F', H'87'
_CP_ON EQU H'3FEF' _CP_OFF EQU H'3FFF' _PWRTE_ON EQU H'3FFF' _PWRTE_OFF EQU H'3FF7' _WDT_ON EQU H'3FFF' _WDT_OFF EQU H'3FFB' _LP_OSC EQU H'3FFC' _XT_OSC EQU H'3FFD' _HS_OSC EQU H'3FFE' _RC_OSC EQU H'3FFF'
__CONFIG _CP_OFF & _WDT_ON & _XT_OSC
; ; goto START ; START clrw ; RESET ALG. movlw D'5' ; reset durumunda movwf ZAMAN ; 5 sn cikislar kapali tutulur call SAY ; RESET ALG. clrwdt movlw D'60' ; flash süresi 60sn movwf FLCOUNT bsf STATUS,RP0 movlw H'00' movwf TRISB ;PORTB pinleri out movlw H'03' movwf TRISA ;PORTA pinleri bazilari input bcf STATUS,RP0 movlw H'00' movwf PORTA movwf PORTB goto FLAS_PROG ; baslangic flash programi ; MAIN CLRW clrwdt movlw H'10' ;set flas time delay 10 sn movwf FLCOUNT bsf STATUS,RP0 movlw H'00' movwf TRISB ;PORTB pins output movlw H'03' movwf TRISA ;PORTA same pins input bcf STATUS,RP0 movlw H'00' movwf PORTA movwf PORTB movlw D'18' ; wait step süresi movwf WAITC
TEST_BUTTON clrwdt btfsc PORTA,0 ;flas input goto TEST_BUTTON_1 goto FLAS_PROG TEST_BUTTON_1 clrwdt ;****************************wait step1************************************** movlw B'01100100' ;yes-kir-yes-sar-kir-yes-sar-kir ; 0 - 1 - 1 - 0 - 0 - 1 - 0 - 0 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'5' movwf ZAMAN call SAY2
btfss SYSFUNC,1 ; butona basilmis ise goto TEST_BUTTON_2 goto TEST_BUTTON_3 TEST_BUTTON_2 movlw D'2' ; wait step zamani movwf WAITC
decfsz WAITC goto TEST_BUTTON goto TEST_BUTTON_3 TEST_BUTTON_3 clrf WAITC movlw D'20' movwf ZAMAN call SAY2 bcf SYSFUNC,1 ; button kaydedicisi=0
RUN_PROG ;****************************step1******************************************* ;***************************** 3 sn******************************************
movlw B'01010010' ;yes-kir-yes-sar-kir-yes-sar-kir ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'3' movwf ZAMAN call SAY2 ;****************************step2******************************************* ;**************************** 3 sn ******************************************
movlw B'01001001' ;yes-kir-yes-sar-kir-yes-sar-kir ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'3' movwf ZAMAN call SAY2 ;****************************step3******************************************* ;**************************** 30 sn ***************************************** movlw B'10001001' ;yes-kir-yes-sar-kir-yes-sar-kir ; 1 - 0 - 0 - 0 - 1 - 0 - 0 - 1 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00011000' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 1 - 0 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'25' movwf ZAMAN call SAY2 ;****************************step4******************************************* ;**************************** 3 sn ******************************************
movlw B'01001001' ;yes-kir-yes-sar-kir-yes-sar-kir ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'3' movwf ZAMAN call SAY2 ;****************************step5******************************************* ;**************************** 3 sn ****************************************** movlw B'01011011' ;yes-kir-yes-sar-kir-yes-sar-kir ; 0 - 1 - 0 - 1 - 1 - 0 - 1 - 1 ; -yaya -- oto 1 --- oto 2 -- movwf PORTB
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA
movlw D'3' movwf ZAMAN call SAY2 ;****************************step5******************************************** goto MAIN ; SAY clrwdt call vlong decfsz ZAMAN goto SAY return SAY2 clrwdt call del1sn decfsz ZAMAN goto SAY2 return ; del1sn clrwdt movlw D'26' movwf COUNT2 goto del1 del1 clrwdt bsf PORTA,4 call delay20 decfsz COUNT2 goto del1
clrwdt movlw D'26' movwf COUNT2 del2 bcf PORTA,4 call delay20 decfsz COUNT2 goto del2 return ;**************************************************************************** ;*- Delay Routines -* ;**************************************************************************** vlong movlw 0xff ;very long delay, approx 200msec movwf msb goto d1 delay20 ;20 msec delay movlw .26 movwf msb goto d1 delay16 ;16 msec delay movlw .21 movwf msb goto d1 delay1 ;approx 750nsec delay movlw .1 movwf msb d1 movlw 0xff movwf lsb d2 decfsz lsb,F goto d2 decfsz msb,F goto d1 ;*********************** BUTTON TEST *************************************** btfsc PORTA,1 ; button input goto d3 bsf SYSFUNC,1 ; buttun lacth set d3 return ;*********************** FLAS PROGRAM ************************************** FLAS_PROG
btfsc PORTA,0 ;flas input testi goto F2 goto F1 F1 movlw H'10' ;flas zamani (min 10 sn) movwf FLCOUNT F2 ;****************************step1******************************************* ;****************************0.5 sn****************************************** clrwdt movlw B'01010010' ;yes-kir-yes-sar-kir-yes-sar-kir movwf PORTB ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0 ; -yaya -- oto 1 --- oto 2 --
movlw B'00010100' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA movlw D'3' movwf ZAMAN call SAY ;****************************step2******************************************** ;****************************0.5 sn*******************************************
clrwdt movlw B'00000000' ;yes-kir-yes-sar-kir-yes-sar-kir movwf PORTB ; 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 ; -yaya -- oto 1 --- oto 2 --
movlw B'00000000' ;*****-sar-yes-kir-**** ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 ; -----------FLAS--YAYA---INPUT movwf PORTA movlw D'3' movwf ZAMAN call SAY decfsz FLCOUNT goto FLAS_PROG goto RUN_PROG ;****************************0.5 sn******************************************* FINISH org H'3FF' goto START end
|