Alarm Sistemi
Günümüzde artık tedbirli olmak gerek. PIC 16F84 ile yapılmış güzel bir güvenlik devresine ne dersiniz? Projeye ilişkin detaylı açıklama…
Bir çok alarm sistemi var ve genelinin tasarımı aynı. Bu tasarımın en büyük farkı sistemin bütün kontrollerinin tek tuşla kontrol edilmesi; sisteme giriş, sistemden çıkış, şifre giriş ve alarmı kapatma gibi. Tabi bu durumun avantaj ve dezavantajları var. Bir yandan keypad’ın kullandığı bacaklardan tasarruf edilirken diğer yandan zamandan kaynaklanan bir sorun oluşabiliyor. Sistem 3 bölge kontrol edebiliyor(2 bölge daha eklenebilir), 8 bit şifreleme ile sistem güvenliği sağlanıyor. Şimdi size sistemi anlatayım.
Sistemimiz Nelerden Oluşuyor ?
· 1 adet PIC16F84A Mikrodenetleyici
· 1 adet buton
· 6 adet led
· 7 adet direnç ( 6 adet 240 W, 1 adet 1 kW )
· 2 adet 30 pF kondansatör
· 1 adet XT kristal
· 1 adet BUZZER
Sistemimiz Nasıl Çalışıyor ?
PIC’e elektrik geldiği zaman ilk olarak PIC’in çalıştığını gösteren led yanıyor. Sonra sistem butondan gelecek sinyali bekliyor. Butona basılmasıyla beraber şifre girilmesi isteniyor. Şifre, buton ve 4 adet led yardımıyla giriliyor. Şifre için ledler sırayla 2 saniye arayla yanmaya başlıyor, hepsi yandıktan sonra sırayla sönmeye başlıyorlar. Şifreyi doğru girebilmemiz için hangi led yandığında veya sondüğünde basacağımızı bilmemiz gerekiyor.
Şekil 1
Şifrenin hangi led yanınca veya sönünce butona basılıncağını gösteriyor.
Şekil 1’de görülen “ON” ledin yandığını, “OFF” ledi sönük durumda olduğunu gösteriyor. Ok işaretleri ise nerde butona basılması gerektiğini belirtiyor.
Şifre girme işleminden sonra eğer şifre yanlış girilirse başa dönüyor ve butona basılıncaya kadar bekliyor. Butona basılınca tekrar şifre girilmesi isteniyor. Eğer tekrar yanlış girilirse aynı işlemi tekrarlıyor. Eğer 3 defa şifre yanlış girilirse Alarm çalıyor. Alarmı kapatmak için şifrenin sorulması için butona basıldıktan sonra şifreyi doğru girmek gerekiyor. Şifre doğru girilirse alarm susuyor ve sisteme giriş yapılıyor. Sisteme giriş yapıldığını bir led gösteriyor.
Sistemdeyken 3 bölge kontrol ediliyor. Bu bölgeler isteğe göre seçilebilir. Herhangi bir bölgeden “1” işareti gelmezse kontrol sürekli bir döngü içinde yapılıyor. Herhangi bir bölgeden “1” işaretinin gelmesi 3 bölgeden birinin güvenli olmadığını gösteriyor. Bu durumda ise alarm devreye giriyor. Alarmı kapatmak için yeniden şifreyi girmek gerekiyor. Şifre girilince alarm kapanıyor ve sisteme geri dönülüyor.
Sistemden çıkmak için sistemdeyken butona basmak gerekiyor. Butona basılınca sistemden çıkmak için şifre isteniyor. Şifre doğru girildiğinde sistem giriş ledi sönüyor ve sistemden çıkılıyor.
Sistemimizin Diğer Sistemlerden Farkı
Bilinen alarm sistemleri genel itibariyle bir panel, siren, alıcılardan vb. elemanlardan oluşur. Genel itibariyle şifre girme işlemi 0’dan 9’a kadar sayıların yazılı olduğu bir keypad ile yapılır. Bizim sistemimizi diğer sistemlerden ayıran en belirgin özellik her işlemin tek bir tuş ile yapılmasıdır. Mesela şifre, belli bir ara ile sırayla yanan ve sönen ledlere göre tek bir tuşla girilmektedir. Sistemden çıkmak için, alarmı kapatmak için yine tek bir tuş kullanılıyor. Bunun yanında şifre girilirken her ledin yanıp sönme aralığının 2 sn olması şifre girilme süresini uzatıyor. Bu sistemle 28 = 256 değişik şifre ihtimali mevcut.
Sistem Devre Şeması
Programın Akış Diyagramları (“Flowchart”)
Akış Diyagramındaki Numaralı Kutuların Açıklamaları
Not: Akış diyagramları üzerindeki gri bölümler programın kod kısmındaki adreslemelerin içindeki işlemleri akış diyagramında gruplandırmaktadır.
1: Program Tanımlamaları kutusu program kodu kısmında yapılan çeşitli tanımlamaları kapsamaktadır. Bu tanımlamalar sırasıyla; PIC’in tanıtılması ( LIST ), harici dosyanın çağrılması ( INCLUDE ), bizim tanımladığımız SKB, AKB gibi özel register adreslerinin tanıtılması, program başlangıç ayarları (Kesmelerin kapatılması, OPTION Registerın kapatılması), PIC16F84A’daki giriş ve çıkış pinlerinin tanıtılması, portların ve özel adreslerin sıfırlanması.
2: PORTB’nin 5. biti PIC16F84A’nın çalıştığını gösteren leddir. Sinyal gelip gelmediği bu lede bakılarak anlaşılabilir.
–SAYAC = 3″ kutusu ” MOVLW h”03″ ” ve ” MOVWF SAYAC ” komutlarını içermektedir. Şifrenin yanlış girilmesi durumunda SAYAC adresindeki değer her hatada 1 azalarak 3 hatadan sonra “0” olur. Bu durumda ALARM devreye girer.
3: Bütün programın akış diyagramını tek sayfada göstermek mümkün olmadığından şifre kısmının akış diyagramlarını temsil etmesi için “SIFRE” kutusu ilave edilmiştir. Bu kutunun sağı şifrenin doğru olarak girilmesi durumunda gidilecek komutları içermektedir. Herhangi bir yerden bu kutuya “ok” gelmesi ise şifrenin girilmesi gerektiğini belirtmektedir. Şifrenin hatalı girilmesi durumunda yapılacak işlemler SIFRE akış diyagramında belirtilmiştir.
4: AKB, özel olarak tanımladığımız bir register adreslemesidir. “Alarm Kontrol Biti” anlamına gelmektedir. Bu adresin son bitine yüklenen sayıyla alarmın çalıp çalmadığı kontrol edilmektedir. Eğer “AKB,0 =1” ise alarm devrede, “AKB,0=0” ise alarm kapalı demektir.
5: SKB, özel olarak tanımladığımız bir register adreslemesidir. “Şifre Kontrol Biti” anlamına gelmektedir. Bu adresin son bitine yüklenen sayıyla sistemin açık olup olmadığı kontrol edilmektedir. Eğer “SKB,0 =1” ise sistem devrede, “AKB,0=0” ise sistem devre dışı demektir.
6: “AKB,0 = 0” ifadesi Alarm Kontrol Bitini sıfırlayarak kontrol yerlerine alarmın kapalı olduğunu iletir. Böylece sistemin düzgün çalışması için gerekli akış izlenmiş olur.
7: “PORTB,0 = 0” ifadesi PORTB’nin 0. bitine yani BUZZER’a sinyal gönderen biti sıfırlar. Bu durumda alarm çalıyorsa alarm kapanır.
8: CKB, özel olarak tanımladığımız bir register adreslemesidir. Sistemde iken çıkmak istenip istenmediğini kontrol eder. “CKB,0 = 0” yapılması kontrol yapılan yere yapılan işlemler arasında çıkış işleminin atlanması gerektiğini ifade eder. Sistemden çıkılırken sıfırlanmalıdır. Çünkü şifre 3 durum için
de kullanılmaktadır.
a.) Sisteme girmek b.) Alarmı kapatmak
c.) Çıkış yapmak
Bu durumları üçü de aynı yerde sırayla şifrenin doğru girilmesi durumunda kontrol edilmektedir. Çıkarken CKB’nin 0. bitinin sıfırlanmaması durumunda sisteme tekrar girilmek istendiğinde CKB’nin kontrolü sırasında “1” olduğu görülür ve CIKISOK adresine gönderilir. Bundan dolayı giriş işlemi yapılamaz.
9: PORTB’nin 6. biti giriş yapıldığını gösteren leddir. Bu ledin yanıyor olması 3 bölge kontrollerinin açık olduğunu gösterir.
10: 1 sn bekleme giriş yapıldığında giriş ledi yandıktan sonra buton basılı durumda ise butondan elimizi çekmemiz için gerekli olan süredir. Eğer bu süre içinde buton basılı kalırsa sisteme girilir ve çıkış yapılması için komut verilir. Çünkü sistem içindeyken butona basılırsa çıkış yapmak için şifre istenecektir.
11: “SAYAC = 3″ kutusu ” MOVLW h”03″ ” ve ” MOVWF SAYAC ” komutlarını içermektedir. Şifrenin yanlış girilmesi durumunda SAYAC adresindeki değer her hatada 1 azalarak 3 hatadan sonra “0” olur. Bu durumda ALARM devreye girer. Burada sisteme girince tekrar SAYAC = 3 yapılmıştır. Çünkü şifre doğru girilerek sisteme girilmesi durumunda 3 hata hakkı tekrar verilmelidir.
12: Sistemdeyken çıkış butonuna basıldığında şifre istenmelidir. Şifre akışı 3 durum için kullanıldığından ( Sisteme girmek, Alarmı kapatmak, Çıkış yapmak ) şifrenin doğru girilmesi durumunda ne istenildiği belirtilmelidir. “CKB,0 = 1” yapılarak şifre akışına gidilir. Böylece şifrenin doğru girilmesi durumunda yapılacak kontrollerde çıkış yapılmak istendiği belirtilmiş olur.
13: SISTEM bölümü 3 ayrı bölgenin çıkış yapılana kadar kontrol edildiği yerdir. Bu bölgelerin herhangi birinden “1” sinyalinin gelmesi durumunda alarm çalacaktır. Alarmın kapanması için şifrenin girilmesi gereklidir. Çıkış yapmak için butona basılmalıdır. Bu durumda şifre istenecek doğru girilmesi durumunda çıkış işlemi yapılmış olacaktır.
14: 1 sn bekleme burada şifre girmek için butona basıldıktan sonra devreye girmektedir. Bu komut işlemin daha açık gerçekleşebilmesi için eklenmiştir.
15: Şifre girme işlemi sırasında ledlerden faydalanılmaktadır. Her ledin yaması ve sönmesi arasında butonun kontrol edilmesi için 2 sn bekleme eklenmiştir. Böylelikle toplam şifre girme işlemi 16 sn’de tamamlanmaktadır.
16: Bu kısımda 3 hata yapılıp yapılmadığı kontrol edilmektedir. SAYAC adresindeki sayı hata sayısını kontrol eder. Her hatada bu adresteki sayıdan 1 çıkarılır ve kontrol edilir ( SAYAC-1 = SAYAC = 0 mı? ) . Sonuç sıfır değilse tekrar şifre istemesi için beklenir. Eğer sonuç sıfırsa alarm çalar çünkü bu adreste en başta yüklü olan sayı “3”tür.
17: Bütün akış diyagramını tek sayfada göstermek mümkün olmadığından bu olasılık için gerçekleşmesi gereken durum bu şekilde belirtilmiştir. Bu kutu ile ana program sayfasındaki BASLAT adı verilen yere gidilmesi istenir.
18: Burada istenen ana program sayfasındaki SIFRE kutusuna gidilmesidir.
Programın HEX dosyasına aşağıdaki linkten ulaşabilirsiniz.
Başarılar dilerim.
Ahmet GÜLOĞLU
Sakarya Üniversitesi
Elektrik-Elektronik Müh. Böl.
Y.Lisans Öğrencisi
aguloglu@mail.com