PIC Mikro Denetleyici Kullanılarak Bir Sistemin Telefon İle Uzaktan Kontrolü Öncelikle devre mevcut telefon hattına bağlandıktan sonra ve beslemesinin verilmesi üzerine kullanıma hazır hale gelir. Dizayn edilen devre şu çalışmayı yapmaktadır.Devre telefon hattına çağrı gelmeye başladıktan sonra telefon hattına gelen darbeleri saymaya başlar. Telefon 8 kez çaldığında şayet telefon hala açılmamış ise devre telefon hattını açar.
Bu aşamadan sonraki aşama artık kontrol işlemidir. Kontrolün güvenlik ve gizliliği için dizayn edilmiş olan şifre doğru girildikten sonra cihaz açma – kapama işlemi gerçekleştirilir. Böylece devre cihaz açma ve kapama işlemi adı altında her türlü elektrikli cihazın ON /OFF kontrolünü yapabilmektedir.
Devrenin kullanım alanları ise adı uzaktan kontrol yapılmak istenen her türlü elektrikli cihazın ON/OFF kontrolünde kullanılabilir. Kullanım alanı olarak akıllı ev projelerinde kullanılmaktadır. Akıllı ev projelerinde önceden programlanmamış yani kişinin istediği zaman çalışması ve istediği zaman durması istenen cihazların kontrolünde ( cihazın çalışma ve durma saatleri önceden belli olmayan cihazlar için ) kumanda üzerinden kontrol gerçekleştirilmiştir.
PROJENİN İÇERİĞİ
Amaç: Bu projenin amacı, kablosuz iletişim esaslarını kullanarak bir sistemin uzaktan kontrolünü sağlamaktır. Bu sayede evlerin herhangi bir yerinde iken mevcut tasarımı ve yazılımı geliştirilmiş olan bir kumanda modülü ile tüm sistem kontrol edilebilmektedir. Böylece uzaktan kontrol işlemi gerçekleştirilerek konfor en üst düzeye çıkmış olur.
RF Uzaktan Kontrol Sistemleri
RF uzaktan kontrol sistemleri günümüzde yaygın olarak kullanılmaktadır. Bu sistemler herhangi bir 433MHZ hızına sahip RF alıcı verici modüllerle uzaktan kontrol işlemi yapılmasına olanak sağlar. RF ile uzaktan kontrol sistemlerinin avantajı uzaktaki cihazların kontrolü için gerekli kontrol sinyalini göndererek ve alıcı kısmın sinyali almasıyla kontrol işlemi gerçekleştirilmiş olmaktadır.
Sistemin Çalışma Mantığı Kontrol için dizayn edilen devre, beslemesinin verilmesi üzerine kullanıma hazır hale gelir.
Çalışma mantığı; Enerji verilerek hazır hale getirilen kumanda ve alıcı modülleri karşılıklı olarak bekleme modunda çalışırlar. Rf vericili kumanda modülündeki menülerden herhangi sistemi açma ya da kapama seçilip ok tuşuna basılırsa seçilen menüdeki sistem için ayrı belirlenmiş olan bir dijital sinyal havaya gönderilir. Hazırda bekleyen alıcı ise havadaki bu sinyali değerlendirir ve cpu içerisinde bir değişken true değeri oluşturur bu değere göre sistemi açar ya da kapatır.
Gerekli Donanım Ve Yazılım: Rf uzaktan kontrol sistemi çeşitli donanım ve yazılım araçları kullanılarak tasarlanmıştır. Devre tasarımı için Proteus ISIS simülasyon programı, PIC yazılımı için JAL EDİT programı, baskı devre çizimi için Proteus ARES programı, PIC programlama için USB_BURN yazılımı ve programlama kartı kullanılmıştır.
YAZILIM VE SİMÜLASYON
PIC16F877A Programlama Aşamaları
- 1- JAL EDİT programında JAL programlama dili ile yazılan programın HEX i oluşturulur.
- 2- PIC Microdenetleyici programlama kartına yönüne dikkat edilerek takılır.
- 3- IC-PROG programlama programının ayarları aşağıdaki gibi yapılır.
- 4- IC-PROG programlama programına oluşturulan HEX dosyası yüklenir.
- 5- Son olarak yazılmış olan programın HEX’ i PIC’ e IC-PROG programı ile yüklenir.
JAL Edit Programı Ve Kullanımı
JalWin dosyasını BİLGİSAYARIN yerel disk c sürücüsüne kopyalayınız ve çift çıklayıp klasörü açın klasör içerisinde tekrar JalWin klasörü ile karşılaşacaksınız. bu dosyayıda açınız. içerisindeki JalEdit.exe uygulamasını sağ tıklatıp açılan menüden gönder sekmesine geliniz masa üstüne kısayol oluştur u tıklatınız. bilgisayar masaüstünde jal simgesini oluşturacak artık kullanıma hazır.
Projemin yazılımlarını programla açmak için ALICI.jal ve KUMANDAMODULU.jal dosyalarında ayrı ayrı sağ tıklatın. Gelen menüden birlikte aç seçimini yaparak gelen menüden program seç i tıklatın bir sekme gelecek ve buradan listeden program seçmek i işaretleyin tamama tıklayın. karşınıza programlar listesiyle dolu olan bir pencere gelecek oradan gözatı tıklatıp yerel disk d içerisinden jalWİN İÇERİSİNDEKİ JALEDİT.EXE yi seçip aç ı tıklatın. son olarak da bu tür dosyaları açmak için seçili program kullanılsın ı işaretleyin ve tamam ı tıklatın. artık projenin ANSI C dili ile oluşturulmuş olan yazılımını görebilecek düzenlemeler yapabileceksiniz.
JAL Edit programı açıldığında aşağıdaki ekran karşımıza gelir.
JAL Edit Açılış ekranı
Derleme yapmak istediğimiz programı aşağıdaki kırmızı bölümle gösterilen yere yazıyoruz.
Programı yazdıktan sonra kontrol etmek ve varsa hataları bulmak için aşağıdaki işlemleri yapacağız.
1- Şekil 10’da gösterilen yeşil kutucuğa tıklıyoruz.
2- Eğer hata varsa şekil 11 deki gibi yazıyı gözlemliyoruz. Bu bize hatanın var olduğu satırı gösterecektir.
3- Eğer hata yoksa şekil 12 deki gibi bir yazı çıkacak ve programı kaydettiğimiz klasörde jal ,hex ve asm uzantılı dosyalar meydana gelecektir.
Şekil-10
Şekil-11
Şekil-12
Mikroişlemci
Ön belleğine yazılan programı işleterek istenilen çıkışlara yönlendiren birimdir. Mikroişlemci veya sayısal bilgisayarlar üç temel kısımdan (CPU-Merkezi işlem ünitesi, I/O ve bellek) ve bunlara ek olarak bazı destek devrelerden oluşur. Her bir temel kısım en basitten en karmaşığa kadar çeşitlilik gösterir. 1.1.2 I/O (Giriş/Çıkış-Girdi/çıktı): Sayısal anolog ve özel fonksiyonlardan oluşur. Mikroişlemcinin dış dünya ile ilişkisini sağlar. Mikroişlemciye verilen ve işlemlerden alınan veriler bu hat üzerinden sağlanır. 1.1.3 CPU (Central Proccesing Unit-Merkezi işlem birimi): Sistemin kalbidir. Birim hesapları yapmak ve verileri idare etmek için 4.8 veya 16 bitlik veri formatında çalışır. Bir mikroişlemcide temelde kullanılan üç yol vardır.
1-) Veri yolu: Bu yol; işlemci, bellek ve çevre birimleri arasında veri iletmek için kullanılır.
2-) Adres yolu: Bu yol, işlemcinin program komutlarına ve veri saklama alanlarına erişimi sağlayan bellek adreslerini, ROM ve RAM belleklerine göndermek için kullanılır.
3-) Denetim yolu: Bu yol Ram belleğine veri yazıldığı veya ondan veri okunduğuna dair bilgi vermek gibi, denetim amaçları için kullanılır. Bu yol aynı zamanda kesmelerin kullanımına olanak tanıyan bağlantıları da içerir. Tipik bir mikroişlemci komutunun yürütülmesi her üç yolunda kullanımını gerektirebilir. Böylelikle kullanılan ek devreler artarak maliyet yükselir ve tasarım çok karmaşık hal alır. İşlemci ilk olarak komuta, komut adresini adres yoluna koyarak erişir. İkili kodlardan oluşan bu adres, buna karşılık gelen bellek konumu tarafından tanınır ve bu konum istenen komutu veri yolundan işlemciye gönderir. Örneğin eğer bu komut verinin işlemciden gönderilmesini ve bir RAM konumunda saklanmasını gerektiriyorsa işlemci, adres yolunu istenen konumu belirtmek, veri yoluna veriyi iletmek ve denetim yoluna da RAM a yazıyor olduğunu belirtmek için kullanılır.
PIC MİKROKONTROLÖRLERİNİN DONANIMSAL İNCELENMESİ
PIC MİKROKONTROLÖRLERİNİN İÇYAPISI
CPU bölgesinin kalbi ALU dur. (Aritmetic Logic Unit-Aritmetik mantık birimi) ALU, W (Working-Çalışan) adında bir yazmaç içerir. PIC, diğer mikroişlemcilerden, aritmetik ve mantık işlemleri için bir tek ana yazmaca sahip oluşuyla farklılaşır. W yazmacı 8 bit genişliğindedir ve CPU’da ki herhangi bir veriyi transfer etmek üzere kullanılır.
CPU alanında ayrıca iki kategoriye ayırabileceğimiz Veri Yazmaç dosyaları (Data Register Files) bulunur. Bu veri yazmaç dosyalarından biri, I/O ve kontrol işlemlerinde kullanılırken, diğeri RAM olarak kullanılır. PIC’ ler de Harward Mimarisi kullanılır. Harward mimarisi mikrokontrolcülerde veri akış miktarını hızlandırmak ve yazılım güvenliğini arttırmak amacıyla kullanılır. Ayrı bus’ ların kullanımıyla veri ve program belleğinde hızlı bir şekilde erişim sağlanır.
Temel PIC blok diyagramı
PIC mikrokontrolör’ lerini donanımsal olarak incelerken PIC 16C84 veya yeni adıyla PIC 16F84 üzerinde durarak bu PIC’ i temel alıp donanım incelenecektir. Bellek ve bazı küçük farklılıklar dışında burada anlatılanlar bütün PIC’ ler için geçerlidir.
ELEKTRİKLE SİLİNEBİLEN MİKROKONTROLÖRLER
Bu mikrolar, programının silinip yeniden yazılabilme özelliğine sahiptir ve oldukça düşük maliyetli plastik ambalajlar halinde bulunmaktadır. Aynı zamanda bu tip mikroların üretimi kadar prototipinin geliştirilmesi ve pilot programlar için kullanılmasına olanak sağlamaktadır. Bunun daha ötesindeki avantajlarından biri, bunların devre içi veya Microchip’s PICSTART plus veya IC PROG programlayıcıları tarafından silinebilmesi ve yeniden programlanabilmesidir.
MİMARİ OLARAK İNCELENMESİ
PIC16CXX sınıfının üstün performansı genellikle RISC mikroçiplerinde bulunan birçok mimari özelliklere sahiptir. Başlangıç olarak PIC16CXX Harward mimarisini kullanmaktadır. Bu mimari ayrı belleklerden erişilen program ve verilere sahiptir. Böylece PIC mikrosu program belleği ve veri belleği taşıyıcılarına sahipken programların ve verilerin aynı bellekten getirilen geleneksel Von Neuman mimarisi üzerinde bant genişliği iyileştirilmektedir. Programların ve veri belleklerinin ayrılması komutların 8 bitlik geniş veri kelimesinden farklı boyutlandırılmasına olanak vermektedir. PIC16CXX mikroları tekli kelimeye imkân veren 14 bit taşıyıcı üzerinden 14 bit komutu tek bir süreçte uygulamaktadır. İki aşamalı hat komut sürecini ve yürütülmesini bir araya getirmektir. (örnek 3–1). Bunun sonucu olarak, program bölünmeleri dışında tüm komutlar tek bir süreçle yürütülmektedir (400ns @ 10MHZ).
PIC 16CXX aygıtları, kayıt dosyalarına ve veri belleğine doğrudan veya dolaylı olarak yönlenebilmektedir. Program Sayacı dahil bütün özel fonksiyon kayıtları veri belleğine yerleştirilmiştir. Adres modunu kullanarak herhangi bir kaydın üstüne herhangi bir işlemin gerçekleşmesini mümkün kılan Ortogonal (simetrik) komutlarda kurulmuştur. Simetrik özelliği ve “özel optimal durumların” eksikliği PIC 16CXX ile programlamayı daha da etkin kılmaktadır.
İlaveten enformasyon eğrisi önemli ölçüde azaltılmıştır. PIC16CXX mikroları 8 bitlik ALU ya ve W(working) registerine sahiptir. W registerindeki veri ile herhangi bir kayıt dosyası arasında aritmetik ve boolean fonksiyonları uygulanmaktadır. ALU 8 bit enindedir ve toplama, çıkarma, değiştirme ve çeşitli lojik işlemleri içerir. İki bilgili komutlarda bir bilgi tipik olarak W registeridir diğer bilgi ise dosya kaydı veya hazır sabit değerdir. Tekli komutlarda bilgi ya W kaydı ya da dosya kaydıdır. Yürütülen komutlara dayanarak ALU, STATUS kaydındaki Caryy(C), Digit Caryy(DC) ve Zero(Z) bitlerini etkileyebilmektedir. C ve DC bitleri, çıkarmalarda, nispeten çıkarma işleminde ödünç alan ve sayısal ödünç alan bit olarak işlemektedir.
KOMUT AKIMI / BİLGİ İLETİMİ
‘Komut süreci’ dört Q sürecinden oluşmaktadır. (Q1, Q2, Q3 ve Q4). Komut devri ve yürütülmesi şöyle iletilmektedir. Devir bir komut sürecini üstlenirken decode ve yürütme diğer komut sürecini üstlenmektedir. Bununla birlikte bilgi iletim nedeniyle, her bir komut etkin olarak bir süreçte yürütülür.
Eğer komut program sayacının değişmesine neden olmuşsa ( örn. GOTO komutu) o zaman komutun tamamlanması için iki süreç gereklidir. Devir süreci her Q1 e değeri bir artan program sayacı (PC) ile başlar. Yürütme sürecinde işleyen komut Q1 sürecindeki ‘Komut kaydı’na gönderilir. Daha sonra bu komut Q2, Q3 ve Q4 süreçleri boyunca decode edilir ve yürütülür. Veri belleği Q2 boyunca okunur (Bilgi okunması) ve Q4 boyunca yazılır ( Yazım hedefi).
I/O PROGRAMLAMA DEĞERLERİ
Herhangi bir okuduğu gibi yazan ve içten çalışan komutun arkasından yazma işlemi gelmektedir. Örneğin BCF ve BSF komutları CPU için kayıtları okumakta, bit işlemini yürütmekte ve sonuçları tekrar kayda yazmaktadır. Bu önlem, komutların hem girişi hem de çıkışı tanımlanan portlara uygulandığından kullanılmalıdır. Örneğin, PORTB` nin 5. bitindeki BSF işlemi PORTB’nin tüm sekiz bitinin CPU içine yönelik okunmasına neden olur.
Daha sonra, BSF işlemi bit 5 üzerinde yer alır ve PORT B çıkış mandallarına yazılır. Eğer diğer bir PORT B` nin biti iki yönlü I/O pini olarak kullanıldıysa ve bu zamanda giriş olarak tanımlandıysa, pindeki giriş sinyali CPU` yu okuyacaktır ve daha önceki içeriğin üzerine yazılmak suretiyle belirli pinlerin veri mandallarına yeniden yazacaktır. Pin, giriş modunda olduğu sürece hiçbir problem çıkmayacaktır. Bununla birlikte eğer o pin çıkış modunda açıldıysa, veri mandalının içeriği bilinmeyen olacaktır. Port kaydının okunmasıyla port pinlerinin değerleri de okunur. Port kaydına yazmada ise port mandalına yazılır.
Eğer portla bu düzenle yaz komutu kullanıldıysa (yani BCF, BSF) port pinlerinin değerleri okunur, istenen işlem port pinlerinin değerine kadar yerine getirilecek ve ondan sonra bu değer port mandalına yazılacaktır.
Aktif olarak yüksek ve düşük çıkış yapılan pinler aynı zamanda dış aygıtlarından çıkarılmamalıdır. Sonuçta yüksek çıkış akımı çipe zarar verebilir.
TİMER0 MODÜLÜ VE TMR0 KAYDI
Timer0 modül, timer/sayaç aşağıdaki özelliklere sahiptir.
- 8 bitlik timer/sayaç Okunabilir ve yazılabilir
- 8 bitlik programlanabilir prescaler.
- İçten veya dıştan saat ayarı
- FFh` tan 00h` ye taşma üzeri kesme
- Dış saatin sınır seçimi
Timer modu, TOCS bitinin (OPTION<5>) temizlenmesiyle seçilir. Timer modunda Timer0 modülü her bir komut sürecini uzatır. (Prescaler olmaksızın) (Şek 2.11) Eğer TMR0 kaydı yazılıysa, uzama takip eden 2 süreci engeller. (şek 2.12 ) Kullanıcı ayarlanan değeri TMR0 kaydına yazarak, bunun etrafından çalışabilir. Sayaç modu TOCS bitinin (OPTION<5>) ayarlanmasıyla seçilir. Bu modda, TMR0, RA4/TOCK1 pininin sınırlarının her bir artışında ya da düşüşünde artacaktır. Genişleyen sınır, TO kaynak sınır seçim biti tarafından, TOSE (OPTION<4>) tarafından belirlenmektedir. TOSE bitinin temizlenmesi artan sınırları seçecektir.
Prescaler, Timer0 modülü ile Watchdog Timer arasında paylaşmaktadır. Prescaler ataması, yazılımda PSA biti kontrolü tarafından denetlenmektedir. (OPTION<3>) PSA bitinin temizlenmesi, prescaler’ ı Timer0 modülüne atayacaktır. Prescaler okunabilir veya yazılabilir değildir. Prescaler Timer0 modülüne atandığında prescaler değeri (1:2, 1:4 …; 1:256) yazılım tarafından seçilebilirdir.
TMR0 KESMESİ
TMR0 kesmesi, TMR0 kaydı FFH`dan 00h`ye akışında üretilmektedir. Bu fazla akım TOIF bitini ( INTCON<2>) kurar (ayarlar). Kesme, aktif TOIE bitinin (INTCON<5>) temizlenmesi ile gizlenebilir. (INTCON<5>) TOIF biti, Timer0 modülü tarafından, bu kesmenin yeniden aktifleştirilmesinden önce yazılımdan silinmelidir. TMR0 kesmesi (şek.2.13) işlemciyi SLEEP` ten çıkaramaz, çünkü SLEEP boyunca timer kapalıdır.
TMR0 gecikme uzatılması
Prescaler çıkışı, iç saat ile senkronize edildiği için, dış saat sınırlarının meydana gelmesindeki zamandan TMR0 modülünün fiili olarak uzatılması zamanına kadar küçük bir gecikme vardır. .
PRESCALER( BÖLÜCÜ)
8 Bitlik sayaç Timer0 modülünde veya Watchdog timer’ında bulunur. Prescaler dışarıdan verilen sinyali 256 ya kadar bölmeye yarar. Timer0 modülü ile Watchdog timer’ı arasında karşılıklı istisna tutulan yalnızca birtek prescaler mevcuttur. Böylece Timer0 modülüne prescaler ataması, watchdog timer’ın prescaleri olmadığı anlamına gelmektedir.
PSA ve PS2 : PSO bitleri (option <3:0>) prescaler atamasını ve prescaler oranını belirlemektedir. Timer0 modülüne yazılan bütün komutlar, timer0 modülüne atandığında prescaler’i ölçecektir. WDT ye atandığında, CLRWDT komutu Watchdog Timer boyunca prescaler’ i temizleyecektir. Prescaler yazılabilir veya okunabilir değildir.
Alıcı ve verici devrelerin isis simülasyon görüntüleri
Devrelerin baskı devre ve tamamlanmış halinin görüntüsü
KOCAELİ ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ ELEKTRİK ÖĞRETMENLİĞİ BÖLÜMÜ
7.DÖNEM PROJE DERSİ RF İLE UZAKTAN BİNA OTOMASYONU.
sorularınız olursa cevaplamaya çalışırım.
Projeyi gerçekleştirenler:
AYTAÇ DÜRGEN.
FERDİ ZARARSIZ.
KOCAELİ ÜNİVERSİTESİ TEKNİK EĞİTİM FAKÜLTESİ
ELEKTRİK ÖĞRETMENLİĞİ
2005-2010
ÖRGÜN EĞİTİM 4. sınıf
PROJE KOORDİNATÖRÜ
yrd.DOÇ. ŞULE ÖZDEMİR
Radyo frekansıyla (RF) bina aydınlatma ve güvenlik kontrolü projesine ait proteus simülasyon ares pcb ve jal program;
Şifre-Pass: 320volt.com
Yayım tarihi: 2010/01/16 Etiketler: akıllı ev projesi, bina aydınlatma, bina güvenlik, jal, JAL ile PIC programlama, microchip pic projeleri, PIC16F877 örnekleri, rf kontrol
Güzel bir proje olmuş çok teşekkürler
MERHABA PROJE Tarafımdan bitirme projesi olarak hazırlandı.
Kısaca açıklama gereği duydum Dosyalara genel çalışma tarıfini yazmayı unutmuşum.
Öncelikle proje alıcı ve verici ksım olmak üzere iki modülden oluşmaktadır.
Kumanda modulünde yalnızca dört tuş bulunmakta ve proje için yeterli miktarda olan 11 cihaz + 2 güvenlik sistemi ( yangın hırsız) kontrol edilebilmektedir.
alarm çıkısına bir transistör aracılığı ile bimilyonlukçulardaki hırsız alarmları bağlanmıştır. Böylece güvenlik tehtidi oluştuğunda bir siren çalışmakta ve tüm sistem aydınlatması 1sn ara ile yakıp söndürüldü.
Kullanığım rf modül bobinli tip olup algılama mesafesi açık alanda 200 300m kadardır. mesafeden dolayı .sistem kararsız çalışabiliyor.
Projeyi biraz daha geliştirebilir şekilde esnek bir programla sundum.
eksik bir noktasını görenler inceleyip geliştirebilirler.
[email protected]
merhaba
güzel bir çalışma olmuş
hocam ben buna benzer bir devre yapmak istiyorum amacım 16 verici 1 adet alıcısı olan bir alarm sistemi tasarlamak..vericilerin hepsi kablosuz olacak ve sisteme bir şekilde kodlama yöntemi ile tanıtılacak istenildiğinde sisteme basit bir şekilde ilave vericiler bağlanabilcek (örnek şifresi yazlıcak )gibi bu konu hakkında nerden başlamam lazım yardımcı olursanız sevinirim