Upload
others
View
9
Download
0
Embed Size (px)
Citation preview
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
SIVI SEVİYE KONTROLÜ VE AKILLI DOLUM-BOŞALTIM
SİSTEMLERİ
BİTİRME ÇALIŞMASI
Hazırlayanlar:
Mehmet SANDIKCI 164055
Enes YILDIZ 164045
BAHAR 2011
TRABZON
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
MÜHENDİSLİK FAKÜLTESİ
ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
SIVI SEVİYE KONTROLÜ VE AKILLI DOLUM-BOŞALTIM
SİSTEMLERİ
BİTİRME ÇALIŞMASI
Hazırlayanlar:
Mehmet SANDIKCI 164055
Enes YILDIZ 164045
Tez Danışmanı: Öğr. Gör. Cahit ALTAN
BAHAR 2011
TRABZON
II
ÖNSÖZ
Günümüzde kontrol sistemleri ile ilgili birçok uygulama mevcuttur. Ses kontrollü
Bilgisayar ve güvenlik kapıları bu uygulamalara örnek olarak verilebilir. Bu çalışmada
sıvı seviye kontrolü, akıllı dolum boşaltım işleyişi ve kablosuz ağ ile uzaktan izlenmesi ele
alınmıştır.
Çalışmamız boyunca bize zaman ayıran değerli danışman hocamız Sayın Ögr. Gör.
Cahit ALTAN, Araştırma Görevlisi Mehmet Ali Usta’ya ve arkadaşımız Mehmet Numan
Aydoğan’a sonsuz teşekkürlerimizi borç biliriz.
Ayrıca hayatımız boyunca her türlü maddi ve manevi desteklerini hiçbir zaman
esirgemeyen ailelerimize şükranlarımızı sunarız.
Enes YILDIZ, Mehmet SANDIKCI
Trabzon,2011
III
İÇİNDEKİLER
Sayfa No
ÖNSÖZ……………………………………………………………………………….. II
İÇİNDEKİLER……………………………………………………………………….. III
ÖZET…………………………………………………………………………………. VII
ŞEKİLLER LİSTESİ………………………………………………………………... VIII
TABLOLAR LİSTESİ………………………………………………………………. IX
SEMBOLLER LİSTESİ…………………………………………………………….. X
KISALTMALAR…………………………………………………………………….. XI
1. GİRİŞ 1
1.1. Sıvı Tanklarda Seviyenin Ölçümü…............................................................. 2
1.2. Bilginin PIC İle İşlenmesi…......................................................................... 2
1.3. RF Haberleşme Tekniği Kullanılarak İşlenen Bilginin İletilmesi……….. 2
1.4. LCD Panel Kullanılarak Bilginin Sunulması……………………………. 2
1.5. I-But İle Seviye Ölçüm, Dolum Ve Boşaltım Kontrolünün Yapılması…. 2
1.6. Diğer Kullanılan Elektronik Araç ve Gereçler…………………………... 3
2. SEVİYE ÖLÇÜM SİSTEMİNİN YAPISI 4
2.1. Sıvı Tanklarda Seviye Kontrolü………………………………………… 4
2.1.1. Sıvı Tanklarda Seviye Ölçme Yöntemleri………………………………. 4
2.1.1.1. Şamandıra Metoduyla Seviye Ölçme Yöntemi………………………….. 4
2.1.1.2. Elektrot Metoduyla Seviye Ölçüm Sistemi……………………………… 5
2.1.1.3. Ultrasonik Ses Dalgalarıyla (Ses üstü sinyaller ) Seviye Ölçümü………. 6
2.1.1.4. Basınç Değişimi ile Seviye Ölçümü……………………………………… 6
2.2. Elektrot Metodu ile Seviye Ölçüm Sisteminin İrdelenmesi……………… 7
3. PIC MİKRODENETLEYİCİLERİ 9
3.1. PIC Nedir ?.................................................................................................... 9
3.2. Bu Projede PIC Tercih Edilmesinin Sebepleri…………………………… 10
3.3. PIC16F877 Özellikleri ve Yapısı………………………………………… 11
3.3.1. PIC16F877 Portlarının Fonksiyonları…………………………………… 12
3.3.1.1. Port A……………………………………………………………………... 12
3.3.1.2. Port B……………………............................................................................. 13
IV
3.3.1.3. Port C……………………………………………………………………... 13
3.3.1.4. Port D………................................................................................................. 13
3.3.1.5. Port E…………............................................................................................. 13
3.3.2. Özel Fonksiyonlar………………………………………………………... 14
3.3.2.1. Paralel Slave Port………………………………………………………… 14
3.3.2.2. USART…………………………………………………………………… 14
3.3.2.3. Master Synchronous Serial Port (MSSP)………………………………... 14
3.3.2.4. Analog / Sayısal Çevirici Birimi…………………………………………. 15
3.3.2.5. Yakalama / Karşılaştırma ve PWM Birimi………………………………. 15
3.3.3 RAM Bellek……………………………………………………………… 15
3.3.4. PIC16F877’nin Besleme Uçları ve Beslenmesi…………………………. 16
3.3.5. PIC16F877’nin Reset Uçları…………………………………………….. 16
3.3.6. PIC16F877’nin Saat Uçları ve Osilatör Tipleri………………………….. 16
3.3.6.1. Kristal Osilatör / Seramik Rezonatör……………………………………... 17
3.3.6.2 RC Osilatör………………………………………………………………... 17
3.4. Pic Basic…………………………………………………………………... 18
3.4.1. Pic Basic’te Matematik Operatörleri……………………………………… 18
3.4.2. Pic Basic’te Karşılaştırma Operatörleri…………………………………… 19
3.4.3. Pic Basic’te Mantıksal Operatörler……………………………………….. 20
3.4.4. Pic Basic’te Komutlar…………………………………………………….. 20
3.4.5. Pic Basic Programlama Hakkında Açıklamalar…………………………... 25
3.4.5.1. Debug Komutu İçin Gerekli Tanımlamalar………………………………. 25
3.4.5.2. Debugin Komutu İçin Gerekli Tanımlamalar…………………………….. 25
3.4.5.3. Hserin, Hserout Komutu İçin Gerekli Tanımlamalar…………………….. 25
3.4.5.4. DTMF ve Freqout Komutlarının Kullanımı İçin Gerekli Devre…………. 26
3.4.5.5. I2CREAD, I2CWRITE Komutlarının Kullanımı İçin Gerekli Devre……. 26
3.4.5.6. LCD Komutları İçin Gerekli Tanımlamalar………………………………. 26
3.4.5.6.1. LCD’de Karakter Yazma Dışındaki İşlemler……………………………... 27
3.4.5.7. Pauseus Komutuyla Kullanılabilecek Minimum Bekleme Süreleri……… 27
3.4.5.8. Pot Komutunun Kullanımı İçin Gerekli Devre……………………………. 27
3.4.5.9. PWM Komutunun Kullanımı İçin Gerekli Devre…………………………. 28
3.4.5.10. Serin Komutunda Mode’a Belirtilebilen Hız Tanımları…………………... 28
V
4. KABLOSUZ HABERLEŞME 29
4.1. Radyo Frekanslı Sistemler………………………………………………… 29
4.1.1. Sistemin Özellikleri………………………………………………………. 30
4.1.2. Sistemi Oluşturan Unsurlar……………………………………………….. 30
4.2. Serbest Uzay Modeli……………………………………………………… 30
4.3. Frekans Yelpazesi………………………………………………………… 31
4.4. Modülasyon İşlemleri…………………………………………………….. 32
4.4.1. Modüle Edilmiş Sinyal Zarfları…………………………………………... 32
4.4.2. Modülasyon Teknikleri…………………………………………………… 32
4.4.3. Dalga Boyu Modülasyonu – Genlik Modülasyonu (DBM)………………. 33
4.5. Sıvı Tanklarda Seviye Kontrol Sisteminde Kullanılan Haberleşme Modülleri………………………………………………………………….
35
4.5.1. Verici Ünitesi (ATX 34)…………………………………………………. 35
4.5.1.1. Verici Ünitesi Teknik özellikleri………………………………………….. 35
4.5.1.1.1. Verici Ünitesi Bacak tanımlamaları……………………………………….. 36
4.5.2. Alıcı Ünitesi (ARX 34)…………………………………………………… 36
4.5.2.1. Alıcı Ünitesi Teknik özellikleri…………………………………………… 36
4.5.2.2. Bacak tanımlamaları………………………………………………………. 37
4.5.3. İletişim Mesafesi…………………………………………………………... 38
5. DEVREDE KULLANILAN DİĞER EKİPMANLAR 39
5.1. I-But………………………………………………………………………. 39
5.1.1. DS1990A seri numaralı iButton………………………………………….. 39
5.1.1.1. Temel Özellikler………………………………………………………….. 40
5.1.1.2. Aksesuar Örnekleri……………………………………………………….. 40
5.1.1.3. Donanım Konfigürasyonu………………………………………………... 41
5.1.2. DS9092 I-button Probu…………………………………………………... 42
5.1.2.1. DS9092 I-But Prob Özellikleri…………………………………………… 43
5.2. DC Motorlar………………………………………………………………. 43
5.2.1. DC Motorların Çalışma Prensibi………………………………………….. 44
5.2.1.1 Manyetik Alan İçerisinde Hareket Eden İletkenin Durumu……………… 45
5.2.1.2. Manyetik Alan İçerisinde İçinden Akım Geçen İletkenin Durumu………. 45
5.3. Röle………………………………………………………………………... 45
VI
5.3.1. Röleler Hakkında Bilgi……………………………………………………. 45
5.4. Transistör………………………………………………………………….. 47
5.4.1. BC547 Transistörü………………………………………………………… 47
5.5. LM7805 5 Volt Gerilim Düzenleyici……………………………………… 48
5.5.1. LM7805 Nedir ?............................................................................................. 48
5.6. HD44780 2x16 Likit Kristalli Ekran…………………………………….. 49
5.7. Tuş Takımı………………………………………………………………... 51
6. DEVRE TASARIMI 52
6.1. Verici Taraf Devre Tasarımı………………………………………………. 52
6.1.1. Verici Devresi Pic Basic Program Kodu………………………………….. 53
6.2. Alıcı Kısım Devre Tasarımı……………………………………………….. 66
6.2.1. Alıcı Kısım Pic Basic Program Kodu……………………………………… 67
7. SONUÇLAR 69
8. ÖNERİLER 70
9. KAYNAKLAR 71
10. ÖZGEÇMİŞ 72
VII
ÖZET
Proje sayesinde tank içerisindeki herhangi bir sıvının seviye kontrolü, seviyeye bağlı
dolum ve boşaltım denetimi ve kablosuz ağ yardımı ile diğer sistemde boşaltılan ve
doldurulan miktar bilgisinin analizi yapılmaktadır. Sıvı seviyesi, dolum, boşaltım
menülerine ulaşmak için ana menüden istenen doğru I-Button kullanılarak geçiş
yapılmasını öngörmektedir. Bu sayede yabancı kişilerin sisteme müdahale etme olasılığı
yok edilerek sistem güvenilirliği artırılmıştır. Depodan su boşaltma işlemi vanayı kontrol
eden DC motor yardımıyla olmaktadır.
Sistem kontrolü PIC16F877 mikrodenetleyicisi ile yapılmıştır. Denetleyici tanktan
aldığı seviye bilgisini değerlendirerek tanktan su boşaltımı için maksimum kaç birim su
boşaltılabileceği ayrıca tankta su azaldığında tankın doldurulması gerektiğini bize
bildirmektedir. Tank doldurulurken ve boşaltılırken ne kadar birim sıvı değişikliği olduysa
bu bilgileri denetleyen denetleyici kablosuz ağ ile diğer sisteme bu bilgileri göndererek,
ayrı bir sistemden bu sıvı değişikliklerini inceleme olanağı elde etmiş oluyoruz.
VIII
ŞEKİLLER LİSTESİ
Sayfa No
Şekil 1.1 Projenin Genel Çalışma Şeması……………………………..…………….….1
Şekil 2.1 Şamandıra Yöntemiyle Seviye Ölçümü………………………..……….…….5
Şekil 2.2 Elektrot Yöntemiyle Seviye Ölçümü…………………………..……….…….6
Şekil 2.3 Basınç Değişimi İle Seviye Ölçü……………………………..………………7
Şekil 2.4 Seviye Propları İçin Kullanılan Bakır Çubuk………………………………...8
Şekil 3.1 PIC16F877 Bacak Tanımlamaları……………………….…….…………… 12
Şekil 3.2 DTMF ve Freqout Komutlarının Kullanımı İçin Gerekli Devre…………….26
Şekil 3.3 I2CREAD, I2CWRITE Komutlarının Kullanımı İçin Gerekli Devre……….26
Şekil 3.4 Pot Komutunun Kullanımı İçin Gerekli Devre………………………………27
Şekil 3.5 Pot kullanımı İçin Gerekli Devre…………………………………………….28
Şekil 4.1 Genlik Modülasyonlu Dalganın Oluşumu……….……………….……….....33
Şekil 4.2 Genlik Modülasyonu…………………………….………………….……….34
Şekil 4.3 ATX 34 Verici Modülü………………………….……………….………….36
Şekil 4.4 ARX 34 Alıcı Ünitesi…………………………….………………….……...37
Şekil 5.1 Projede Kullanılar I-Buttonlar……………………………………………….40
Şekil 5.2 DS1990A ‘nın İç Devre Yapısı………………….………………….……….41
Şekil 5.3 DS9092 I-Button Problarının Şekli……………………………………….....42
Şekil 5.4 Projede Kullanılan I-But Probu………………………………………………42
Şekil 5.5 Projede Kullanılan DC Motor………………………………………………..43
Şekil 5.6 Doğru Akım Makinasının Prensip Şeması………………………………..….44
Şekil 5.7 Röle ve Transistör İle Oluşturulan Tetikleme Devresi……………………….47
Şekil 5.8 LM7805 Tümdevresi…………………………………………..…………….49
Şekil 5.9 Projede Kullanılan 2*16 Lcd Ekran………………………………………….50
Şekil 5.10 Proje İçin Tasarlanan 3*4 Tuş Takımı……………………………………...51
Şekil 6.1 Verici Kısım Simülasyon Devresi……………………………………………53
Şekil 6.2 Alıcı Kısmı Simülason Devresi……………………………………………....66
Şekil 7.1 Projenin Yaklaşık Tamamlanmış Hali……………………………………….68
IX
TABLOLAR LİSTESİ
Sayfa No
Tablo 3.1 Osilatör Çeşitleri…………………………………………………………..17
Tablo 3.2 Frekansa Göre Kondansatör Seçimi...……………………………………..17
Tablo 3.3 Pic Basic’te Matematik Operatörler……………………………………….18
Tablo 3.4 Pic Basic’te Karşılaştırma Operatörleri……………………………………19
Tablo 3.5 Pic Basic’te Mantıksal Operatörler………………………………………...20
Tablo 3.6 Pic Basic’te Komutlar…………………………………………………...…20
X
SEMBOLLER LİSTESİ
A : Amper
I : Akım
V : Volt
AC : Alternatif Akım
DC : Doğru Akım
mA : Miliamper
Hz : Hertz
Ω : Ohm
≥ : Büyük Eşit
dB : Desibel
c : Işık hızı
EA - M(t) : Modüle edilmiş işaretin genliği
EC : Taşıyıcının genliği
Em : Modüle edilecek işaretin genliği
FAKB : Alt kenar band frekansı
fc : Taşıyıcının frekansı
fm : Modülasyon frekansı
FÜKB : Üst kenar band frekansı
h : Anten boyu
Gr : Alıcının kazancı
Gt : Vericinin kazancı
λ : Dalga boyu
Ls : Uzay zayıflaması
Pr : Alıcının hassasiyeti
Pt : Vericinin gücü
Wct : Taşıyıcı sinyalinin açısal frekansı
Wmt : Bilgi sinyalinin açısal frekansı
XI
KISALTMALAR
ADC : Analog sayısal dönüştürücü
AKB : Alt kenar bandı
ALU : Aritmetik lojik ünite
AM : Genlik modülasyonu
ASK : Genlik değişimli anahtarlama
Bps : Saniyedeki bit sayısı
BANK : Küme
C : Taşma biti
CPU : Merkezi işlem birimi
DC : Basamak taşma biti (Yarım elde biti)
FM : Frekans modülasyonu
FSK : Frekans değişimli anahtarlama
FSR : Dosya seçim kaydı
GPR : Genel amaçlı kayıt alanı
LAN : Yerel alan ağı
LCD : Likit kristal gösterge
PM : Faz modülasyonu
PIC : Çevresel Ara Yüz Denetleyici
PORT : Mikro denetleyicinin giriş çıkış ünitesi
PSK : Faz değişimli anahtarlama
RF : Radyo frekansı
RAM : Rasgele erişim belleği
SFR : Özel işlem kaydedicisi
SPI :Yazılım Patent Enstitüsü
USART : Evrensel senkron asenkron alıcı – verici
ÜKB : Üst kenar bandı
WAN : Uzak alan ağı
1.GİRİŞ
Bu projede amaçlanan sıvı seviyesinin ölçümünün yapılmasından sonra sıvı seviye
bilgisinin PIC (programlanabilir mikro denetleyici) tarafından çeşitli amaçlara uygun
işlenerek (Şifreleme, şifre çözme...vs) kablosuz haberleşme tekniği olan RF (radyo
frekansı) metodu ile bir yerden belli bir yere aktarılmasıdır. Ayrıca tank içerisindeki
sıvının istenildiği zaman, istenilen miktarda boşaltılmasını ve I-But ile sadece yetkili
kişinin işlem ve süreci yönetmesini sağlamaktır.
Proje temel olarak dört bölümden meydana gelmektedir;
1. Sıvı tankında seviyenin ölçümü,
2. Bilginin PIC ile işlenmesi,
3. RF haberleşme tekniği kullanılarak işlenen bilginin iletilmesi
4. LCD panel kullanılarak bilginin sunulması
5.I-But ile seviye ölçüm, dolum ve boşaltım kontrolünün yapılması
Projenin genel şeması şekil 1.1 ile gösterilmektedir.
Şekil 1.1 Projenin Genel Çalışma Şeması
2
1.1. Sıvı Tanklarda Seviyenin Ölçümü
Projenin ilk kısmını oluşturan bu bölümde sıvı tanklarda seviye ölçümü yapılırken
kullanılabilecek bazı metotlar hakkında bilgiler sunulmaktadır. Bu bölümde ayrıca projenin
gerçeklenmesi için tercih edilen elektrotla sıvı seviyesi ölçüm metodu hakkın da ayrıntılı
anlatım ve konu ile ilgili genel bir şekil de bulunmaktadır.
1.2. Bilginin PIC İle İşlenmesi
PIC’in proje içerisindeki kullanılış amacı, seviye bilgisinin işlenerek RF haberleşme
modülüne aktarılmasıdır.
1.3. RF Haberleşme Tekniği Kullanılarak İşlenen Bilginin İletilmesi
RF haberleşme tekniğinin nasıl yapıldığı ve bu teknik için uygun görülen modül
hakkında bilgilendirmenin yapıldığı aşamadır.
1.4. LCD Panel Kullanılarak Bilginin Sunulması
Son olarak ise kullanıcının sıvı tank içerisindeki sıvı seviyesinin pratik şekilde
öğrenilmesi için bilginin gösterilmesinin yapıldığı aşamadır.
1.5. I-But İle Seviye Ölçüm, Dolum Ve Boşaltım Kontrolünün Yapılması
I-But kendi içerisinde sahip olduğu şifre sayesinde süreçlerin yönetilmesini ve bu
şekilde sistemi sadece yetkili olarak atanan kişilerin kullanmasını sağlamaktadır,
3
1.6. Diğer Kullanılan Elektronik Araç ve Gereçler
Kullanılan diğer araç ve gereçler hakkında bilgilendirmenin yapıldığı aşamadır.
Proje temel olarak üç ana modülden oluşmaktadır. Bu modüller:
1-) Sıvı içeren tank üzerine yerleştirilecek olan çevre modül. Bu modül; sıvı
seviyesini ölçmede kullanılacak elektrotları (sıvının iletkenliğinden faydalanarak),
elde edilen seviye bilgisini şifreleyerek iletime hazır hale getirecek PIC ve merkez
modül ile haberleşmeyi sağlayacak verici modülünü içermektedir.
2-) Sıvı bilgisini kullanıcıya gösterecek olan merkez modül. Bu modül; çevre
modüller ile haberleşmeyi sağlayacak alıcı modülünü, alınan veriyi çözümleyerek sıvı
seviye bilgisini elde edecek PIC’i ve bilgiyi kullanıcıya sunacak olan LCD (Likit
kristal ekran) paneli içermektedir.
3-) Sıvı dolum ve boşaltımını istenen miktarda ayarlamak ve bunun kontrolünü
sağlayacak I-But modül. Bu modül; One-wire iletişim ile I-But içerisindeki şifre PIC’e
aktarılarak sisteme erişim imkanını yetkili kişilere sağlamayı içermektedir.
2. SEVİYE ÖLÇÜM SİSTEMİNİN YAPISI
Seviye ölçüm sistemi donanımsal olarak üç temel yapıdan oluşmaktadır.Bu üç temel
yapı aşağıda sırasıyla anlatılmaktadır.
2.1. Sıvı Tanklarda Seviye Kontrolü
2.1.1. Sıvı Tanklarda Seviye Ölçme Yöntemleri
Sıvı seviye ölçümü, günlük hayatta sıvı mekaniği ile çalışan araçlar (otomobillerin,
uçakların vs.. yakıt deposu, yağlama sistemi veya hidrolik kaldıraçlar) veya depolama
amaçlı tanklarda büyük önem taşımaktadır.
Günümüzde teknolojinin de gelişmesiyle sıvı seviyesini belirlemede kullanılan metot
sayısı gitgide artmaktadır.
Sıvı tanklarda seviye ölçümü bir çok yöntem ile gerçekleştirilebilmektedir. Bunlar;
Şamandıra metodu kullanılarak seviye ölçümü
Elektrot kullanılarak seviye ölçümü
Ultrasonik sinyaller kullanarak seviye ölçümü,
Basınç farkı kullanılarak seviye ölçümü,
2.1.1.1. Şamandıra Metoduyla Seviye Ölçme Yöntemi
Şamandıralı seviye ölçme sistemleri basit bir yapıya sahiptir. Sıvıların kaldırma
kuvvetinin prensibini esas alarak çalışırlar. Bu sistemde yüzen bir cisim iki kuvvete maruz
kalmaktadır.
5
Şekil 2.1 Şamandıra Yöntemiyle Seviye Ölçümü
Bunlar yerçekiminden kaynaklanan aşağı doğru çekim kuvveti, cismin yüzebilirliğinden
kaynaklanan yer çekimine zıt yönlü kuvvettir. Şekil 2.1’de verilen sistemde taşıtların yakıt
depolarının doluluk durumunu elektronik yöntemlerle ölçülebilmektedir. Depo doluyken
şamandıra yukarı hareket eder ve potun direnci azalır. Azalan direnç pottan daha fazla
akım geçirir ve sürücü kabininde bulunan depo göstergesinin (bu aslında ampermetredir)
ibresi maksimum değeri gösterir. Depo boşaldıkça şamandıra aşağı doğru iner ve potun
değeri büyür. Direnç değeri büyüyen pot az akım geçirir. Bu ise ampermetrenin ibresini
saptırır.
2.1.1.2. Elektrot Metoduyla Seviye Ölçüm Sistemi
Bu yöntemde sıvıların iletkenliğinden faydalanılır. Şekil 2.2’de verilen devrede depo
içinde bulunan iletken sıvının (su, asit, boya vb.) seviyesi yükseldikçe deponun dibindeki
direnç ile devreyi tamamlayan elektrotlardan akım akacaktır. Elektrotların bazına bağlı
olduğu transistorler iletime geçecek ve kolektörlerinde bulunan ledler yanacaktır.
6
Şekil 2.2 Elektrot Yöntemiyle Seviye Ölçümü
2.1.1.3. Ultrasonik Ses Dalgalarıyla (Ses üstü sinyaller ) Seviye Ölçümü
Tankın tepesine yerleştirilmiş ve tankın referans yüksekliği önceden öğretilmiş radar
devresi, 3 - 30 GHz arasındaki bir frekanstaki sinyali sıvıya doğru göndermektedir. Daha
sonra sinyali gönderme ile ilk yansıyan sinyal arasındaki zaman farkını kullanarak
boşluğun yüksekliğini hesaplamaktadır.
Referans yükseklik ile boşluk yüksekliğinin farkını hesaplayan devre, ayrı bir sinyal ile
sıvı seviyesi bilgisini oluşturmaktadır.
2.1.1.4. Basınç Değişimi ile Seviye Ölçümü
Tanka yerleştirilmiş basınç ölçerlerde sıvı ve gaz basıncı ile elde edilen gerilimler bir
voltmetre yardımıyla görüntülenir. Özellikle otomobillerin ve uçakların su ve yağ
ölçümleri bu yöntem ile yapılmaktadır. Aşağıda şekil 2.3’de basınç ile seviye ölçüm
sistemi şekli verilmiştir.
7
Şekil 2.3 Basınç Değişimi İle Seviye Ölçü
2.2. Elektrot Metodu ile Seviye Ölçüm Sisteminin İrdelenmesi
Elektrot ile seviye ölçüm sistemi uygulanış açısından pratikliği ve yaygınlığı olan bir
metod olması nedeniyle bu proje için referans alınan bir modeldir.
Bu yöntemde sıvıların iletkenliğinden faydalanılır. Depo içinde bulunan iletken sıvının
(su, asit, boya vb.) seviyesi yükseldikçe deponun dibindeki besleme kaynağı ile devreyi
tamamlayan elektrotlardan akım akacaktır.
Ayrıntılı anlatılacak olan PIC’in girişlerini lojik 1 yapılabilmesi için 2,5 V tan büyük bir
gerilim uygulanması gerekmektedir. Bu yüzden sıvı seviyesini ölçtüğümüz düzeneğimizin
çıkışlarını 10 k’luk dirençler bağlayarak gerilim oluşturması amaçlanmaktadır.
Böylelikle PIC’in girişlerine verilmesi gereken gerilim seviyeleri seviye problarından elde
edilecektir.
Projede bakır çubukların 2’şerli gruplar halinde tek bi seviye ölçümü için çubukların
paralel ve birbirlerine çok yakın olarak yerleştirilmesi sonucu seviye bilgilerini elde ettik.
Kullanılan bakır çubuk şekil 2.4’de verilmiştir. Projede 8 seviye bilgisi amaçladık ve
böylece şekilde görülen çubuklardan 16 adet kullanarak bunu mümkün kıldık.
8
Şekil 2.4 Seviye Propları İçin Kullanılan Bakır Çubuk
3. PIC MİKRODENETLEYİCİLERİ 3.1. PIC Nedir? PIC Serisi mikroişlemciler MICROCHIP firması tarafından geliştirilmiştir ve üretim
amacı, çok fonksiyonlu mantıksal uygulamaların hızlı ve ucuz bir mikroişlemci ile yazılım
yoluyla karşılanmasıdır. PIC’in kelime anlamı - Peripheral Interface Controller - giriş çıkış
işlemcisidir. İlk olarak 1994 yılında 16 bitlik ve 32 bitlik büyük işlemcilerin giriş ve
çıkışlarındaki yükü azaltmak ve denetlemek amacıyla çok hızlı ve ucuz bir çözüme ihtiyaç
duyulduğu için geliştirilmiştir. Çok geniş bir ürün ailesinin ilk üyesi olan PIC16C54 bu
ihtiyacın ilk meyvesidir. PIC işlemcileri RISC benzeri işlemciler olarak anılır. PIC16C54
12 bit komut hafıza genişliği olan 8 bitlik CMOS bir işlemcidir. 18 bacaklı dip kılıfta 13
G / Ç bacağına sahiptir, 20 MHz osilator hızına kadar kullanılabilir ve 33 adet komut
içermektedir. 512 byte program EPROM’u ve 25 byte RAM`i bulunmaktadır. Bu hafıza
kapasitesi ilk bakışta çok yetersiz gelebilir ama bir RISC işlemci olması birçok işlevin bu
kapasitede uygulanmasına olanak vermektedir. PIC serisi tüm işlemciler herhangi bir ek
bellek veya giriş / çıkış elemanı gerektirmeden sadece 2 adet kondansatör, 1 adet direnç ve
bir kristal ile çalıştırılabilmektedir. Tek bacaktan 40 mA akım çekilebilmekte ve tümdevre
toplamı olarak 150 mA akım akıtma kapasitesine sahiptir. Tümdevrenin 4 MHz osilator
frekansında çektiği akım çalışırken 2 mA, bekleme durumunda ise 20µA kadardır. PIC
16C54’ün fiyatının yaklaşık 2.0 Amerikan Doları civarında olduğu düşünülürse bu
işlemcinin avantajı kolayca anlaşılır. PIC 16C54 ‘un mensup olduğu işlemci ailesi 12Bit
16C5X olarak anılır. Bu gruba temel grup adı verilir. Bu ailenin üyesi diğer işlemciler
PIC16C57, PIC16C58 ve dünyanın en küçük işlemcisi olarak anılan 8 bacaklı PIC12C508
ve PIC 12C509’dur. Interrupt kapasitesi, ilk işlemci ailesi olan 12Bit 16C5X ailesinde
bulunmamaktadır. Daha sonra üretilen ve orta sınıf olarak tanınan 14Bit 16CXX ailesi
birçok açıdan daha yetenekli bir grup işlemcidir. Bu ailenin temel özelliği interrupt
kapasitesi ve 14 bitlik komut işleme hafızasıdır.
Bu özellikler PIC’i gerçek bir işlemci olmaya ve karmaşık işlemlerde kullanılmaya
yatkın hale getirmiştir. PIC16CXX ailesi en geniş ürün yelpazesine sahip ailedir. 16CXX
ailesinin en önemli özellikleri seri olarak devre üstünde dahi programlanması -ki bu özellik
PIC16C5x de epey karmaşıktır, paralel programlanabiliyordu- interrupt kabul edebilmesi,
10
33 G / Ç, A/S Çevirici, USART, I2C, SPI gibi endüstri standardı giriş çıkışları kabul
edecek işlemcilere ürün yelpazesinde yer vermesidir. PIC 16CXX ailesinin amatör
elektronikçiler arasında en çok tanınan ve dünyada üzerinde en çok proje üretilmiş bireyi
PIC16C84 veya yeni adıyla PIC16F84 dur. PIC16F84 un bu kadar popüler olması onun
çok iyi bir işlemci olmasından ziyade program belleğinin EEPROM - Elektrikle silinip
yazılabilen bellek - olmasından kaynaklanmaktadır. Seri olarak dört adet kabloyla
programlanması da diğer önemli avantajıdır. Bugüne kadar amatörce bir işlemciyle
uğraşmış herkesin en büyük sıkıntısı EPROM veya EPROM tabanlı işlemcileri
programladıktan sonra morötesi ışık kaynağı ile silip tekrar programlamaktır. Bu çok
zahmetli ve bir amatör için ekipman gerektiren yöntem olmuştur. Evde üretilmesi zor olan
özel bir programlayıcı da madalyonun diğer yüzüdür. PIC16F84, tasarımcılar tarafından
internette en bol programlayıcısı bulunabilen işlemcilerden biridir. PIC16F84 EEPROM
barındırdığından EPROM silmek diye bir kavram söz konusu değildir . EEPROM belleği
programlayan programlayıcı devre 1 saniye içinde aynı belleği silebilmektedir. Bu özellik
tasarımcıya çok hızlı ve defalarca deneyerek program geliştirme avantajını getirmektedir.
Bu tasarımcı için çok önemli ve gerekli bir özelliktir. Benzetim programları genel fikir
vermek açısından çok yararlı olsalar da ciddi tasarımlarda devreyi fiziksel olarak
gerçeklemek, deneyler yapmak kesinlikle gereklidir. Bu denemeleri yaparken işlemciyi
devrenizden sökmek dahi gerekmez. Bu tip programlamaya ISP -In System Programming -
denmektedir[1].
3.2. Bu Projede PIC Tercih Edilmesinin Sebepleri
PIC, Harvard mimarisi temelli 8 bitlik bir mikro denetleyicidir. Bu mimaride, bellek ve
veri için ayrı yerleşik veri yolları bulunmaktadır. Böylelikle mikroişlemcinin, veriye ve
program belleğine eş zamanlı erişimi sayesinde işlem hızı arttırılmış olur. Geleneksel
mikro denetleyicilerde veri ve programı taşıyan bir tek yerleşik veri yolu bulunur. Bu,
PIC'le karşılaştırıldığında işlem hızını en az iki kat yavaşlatır. Tüm komutlar 12 veya 14
bit'lik bir program bellek sözcüğüne sığar. Yazılımın, programın veri kısmına atlamaya ve
veriyi komut gibi çalıştırması mümkün değildir. Bu risk, 8 bitlik tek veri yolu kullanan ve
Harvard mimarisi temelli olmayan mikro denetleyicilerde ortaya çıkmaktadır. 16Cxx ve
16Fxx ailesi mikro denetleyicileri programlamak için 35 farklı assembly komutu
bulunmaktadır. PIC tarafından kullanılan komutların hepsi saklayıcı (register) temellidir ve
14 bit uzunluğundadır. CALL, GOTO ve bit test eden BTFSS, INCFSZ gibi komutlar
11
dışında, her bir komut, tek bir çevrimde çalışır. Başarılı bir uygulama veya ürün isteniyorsa
yazılım hatasız olmalıdır. Yazılım assembly veya ikili kodlar halinde oluşturulabileceği
gibi PicBasic, C gibi yüksek seviyeli dillerle de oluşturulabilir. PIC, osilatör ve yerleşik
saat yolu (clock bus) arasına bağlı yerleşik bir (divide by 4) 4’lü bölünmeye sahiptir. Bu
özellikle 4 MHz'lik kristal kullanıldığında komut sürelerinin hesaplanmasında kolaylık
sağlar. Her bir komut döngüsü 1 mS' dir. PIC oldukça hızlı bir mikro denetleyicidir.
Örneğin 5 milyon komutluk bir programın, 20 MHz' lik bir kristalle adımlanması yalnız 1
saniye sürer. Bu süre 386 SX 33 mikroişlemcisinin hızının neredeyse 2 katıdır.PIC
tamamıyla statik bir mikroişlemcidir. Başka bir deyişle saati durdurulduğunda, tüm
saklayıcı içeriği korunur. Pratikte bunu tam olarak gerçekleştirmek mümkün değildir. PIC'i
uyutma moduna getirdiğinizde, saat durur ve PIC, uyutma işleminden önce hangi durumda
olduğunu kullanıcıya hatırlatacak çeşitli bayraklar kurar. PIC uyuma modunda yalnızca 1
mA'dan küçük bir değere sahip bekleme (standby) akımı çeker.
3.3. PIC16F877 Özellikleri ve Yapısı
PIC16F877, belki en popüler PIC işlemcisi olan PIC16F84’ten sonra kullanıcılarına yeni
ve gelişmiş olanaklar sunmasıyla hemen göze çarpmaktadır. Program belleği FLASH
ROM olan PIC16F877’de, yüklenen program PIC16F84’te olduğu gibi elektriksel olarak
silinip yeniden yüklenebilmektedir. Özellikle PIC16C6X ve PIC16C7X ailesinin tüm
özelliklerini barındırması, PIC16F877’yi kod geliştirmede de ideal bir çözüm olarak
gündeme getirmektedir. Konfigürasyon bitlerine dikkat etmek şartıyla C6X veya C7X
ailesinden herhangi bir işlemci için geliştirilen kod hemen hiçbir değişikliğe tabi
tutmadanF877’e yüklenebilir ve çalışmalarda denenebilir. Bunun yanı sıra PIC16F877,
PIC16C74 ve PIC16C77 işlemcileriyle de bire bir bacak uyumludur[2].
12
Şekil 3.1 PIC16F877 Bacak Tanımlamaları
3.3.1. PIC16F877 Portlarının Fonksiyonları
3.3.1.1. Port A
Her bir biti bağımsız olarak giriş veya çıkış olarak tanımlanabilmektedir. 6 bit
genişliğindedir (PICF84’de 5 bittir). RA0, RA1, RA2, RA3, RA4 ve RA5 bitleri analog /
sayısal çevirici olarak konfigüre edilebilmektedir. Buna ek olarak RA2 ve RA3 gerilim
referansı olarak da konfigüre edilebilmektedir. (bu durumda bu bitler aynı anda A / S
çevirici olarak kullanılamamaktadır).
İşlemciye ilk defa gerilim uygulandığında RA4 hariç diğer beş PORTA biti A / S
çeviricidir. Eğer RA portunun bazı bitlerini sayısal giriş / çıkış olarak kullanmak istersek
ADCON1 yazmacında değişiklik yapmamız gerekmektedir. Yazmaçlardaki değişikliklerin
nasıl yapılacağı, tümdevrenin kataloğunda bulunmaktadır. Bu projede A portu analog giriş
olarak kullanılmış ve algılayıcılardan gelen sıcaklığa bağlı gerilim değerleri A / S çevirici
yardımıyla sayısallaştırılmıştır.
13
3.3.1.2. Port B
Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit
genişliğindedir. B portunun her bacağı dahili bir dirençle Vdd’ye bağlıdır. Bu özellik
varsayılan olarak etkin değildir. Ancak OPTION yazmacının 7. bitini 0 yaparak B
portunun bu özelliği etkinleştirilebilir. RB4 - RB7 bacakları aynı zamanda bacakların
sayısal durumlarında bir değişiklik olduğunda INTCON yazmacının 0. biti olan RBIF
bayrağını 1 yaparak kesme oluşturmaktadır. Bu özelliği, işlemci SLEEP konumundayken,
devreye bağlı tuş takımının her hangi bir tuşa basıldığında işlemcinin yeniden etkinleşmesi
için kullanabilir. Bütün bunların yanı sıra RB6 ve RB7 yüksek gerilim programlama, RB3
ise düşük gerilim programlama modlarında da kullanılmaktadır.
3.3.1.3. Port C
Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit
genişliğindedir. Tüm port bacakları Schmitt Trigger girişlidir. TRISE yazmacının 4. biti
olan PSPMODE bitini 1 yaparak “parallel slave mode” da kullanılabilir. Bu fonksiyon
aracılığıyla 8 bit genişliğindeki her hangi bir mikroişlemci bus’ına bağlanabilir.
3.3.1.4. Port D
Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit
genişliğindedir. Tüm port bacakları Schmitt Trigger girişlidir. TRISE yazmacının 4.biti
olan PSPMODE bitini 1 yaparak paralel slave modda kullanılabilir. Bu fonksiyon
aracılığıyla 8 bit genişliğindeki herhangi bir mikroişlemci bus’ına bağlanabilir.
3.3.1.5. Port E
Her bir biti bağımsız olarak giriş veya çıkış olarak tanımlanabilmektedir. 3 bit
genişliğindedir. RE0, RE1 ve RE2 bacaklarında Schmitt Trigger giriş tamponları vardır.
Her bir bacak analog / sayısal çevirici olarak konfigüre edilebilmektedir. Eğer port d,
paralel slave port olarak konfigüre edilirse, RE0, RE1 ve RE2 bacakları port d’nin
bağlandığı mikroişlemci bus’ına sırasıyla READ, WRITE ve CHIP SELECT kontrol
girişleri olarak kullanılabilmektedir. Bunun için TRISE uygun biçimde ayarlanmalıdır.
İlgili yazmaçlar ve adresleri aşağıdaki gibidir. RE portlarının A / S veya sayısal giriş / çıkış
14
olarak seçiminde kullanılmaktadır. İşlemciye ilk defa gerilim uygulandığında üç port e biti
de A / S çeviricidir. Eğer RE portunun bazı bitlerini sayısal giriş / çıkış olarak kullanmak
istenirse ADCON1 yazmacında değişiklik yapılması gerekecektir.
3.3.2. Özel Fonksiyonlar
3.3.2.1. Paralel Slave Port
TRISE yazmacının PSPMODE biti 1 yapıldığında PORTD 8 bit genişliğinde
mikroişlemci portu olarak kullanabilir. Bu arada RE0, RE1 ve RE2’yi, TRISE ve
ADCON1 yazmaçlarında ilgili ayarları yaparak sayısal giriş olarak da tanımlamak
gerekmektedir. Böylece harici bir mikroişlemci, RE0, RE1 ve RE2’yi kontrol olarak
kullanarak 8 bitlik veri bus’ına bağlı PIC16F877’nin port d kısmına hem veri
yazabilmekte, hem de okuyabilmektedir.
3.3.2.2. USART
USART, yani senkron / asenkron alıcı verici PICF877’deki iki seri giriş / çıkış
biriminden biridir. Seri iletişim arayüzü ( SCI ) olarak da bilinen USART, monitör veya
PC gibi aygıtlara tam çift yönlü asenkron bağlantıda kullanılmak üzere konfigüre
edilmiştir. A / S veya S / A arayüzlerine, seri kullanılmak üzere konfigüre edilebilmektedir.
USART aşağıdaki gibi konfigüre edilebilmektedir.
Asenkron : Tam çiftyönlü
Senkron : Master, yarım çift yönlü
Senkron : Slave, yarım çift yönlü RC6 verici, RC7 ise alıcı port olarak kullanılmaktadır.
RCSTA ( 0x18 ) ve TXSTA ( 0x98) yazmaçları da konfigürasyonda kullanılmaktadır.
3.3.2.3.Master Synchronous Serial Port (MSSP)
MSSP birimi, diğer çevre birimleri veya mikroişlemcilerle seri iletişimde
kullanılmaktadır. Bu çevre birimleri seri EEPROM, kaydırmalı yazmaçlar ( shift register ),
gösterge sürücüleri, A / S çeviriciler vb. olabilir. MSSP birimi aynı anda aşağıdaki iki
moddan birine konfigüre edilebilir.
RC5: Seri veri çıkışı ( SDO: Serial data out )
RC4: Seri veri girişi ( SDI: Serial data in )
15
RC3: Seri saat ( SCK: Serial clock )
Bu modlardan birine göre konfigüre etmek içinse SSPSTAT (senkron seri port durum
yazmacı, 0x94), SSPCON (senkron seri port kontrol yazmacı, 0x14) ve SSPCON2
(senkron seri port kontrol yazmacı 2,0x91) yazmaçları ayarlanmalıdır.
3.3.2.4. Analog / Sayısal Çevirici Birimi
A / S çevirici birimi 16C7X ailesinden farklı olarak 10 bittir. Toplam 8 A / S kanal
bulunmaktadır. PIC16F877’nin güzel bir özelliği de işlemci SLEEP modunda iken bile A /
S çeviricinin geri planda çalışmasıdır. A / S kanalları için RA4 hariç diğer RA portları ve
RE portları kullanılabilir.
3.3.2.5. Yakalama / Karşılaştırma ve PWM Birimi
Her capture / compare ve pwm birimi 16 bitlik yakalama yazmacı, 16 bitlik
karşılaştırma yazmacı veya 16 bitlik PWM (darbe genişlik modülasyonu) yazmacı olarak
kullanılmaktadır. Yakalama modunda, TMR1 yazmacının değeri, RC2 / CCP1 bacağının
durumunda bir gelişme olduğunda CCPR1H:CCPR1L yazmaçlarına yazılmakta ve PIR1
yazmacının 2. biti olan CCP1IF kesme bayrağı 1 olmaktadır. RC2 bacağının durumu, her
düşen kenarda, her yükselen kenarda, her yükselen 4. veya 16. kenarda kontrol edilecek
şekilde CCP1CON yazmacı aracılığıyla ayarlanarak konfigüre edilebilir.
Karşılaştırma modu ise CCPR1 yazmacındaki 16 bitlik değer düzenli olarak TMR1
yazmaç değeriyle karşılaştır ve bir eşitlik olduğunda RC2 / CCP1 bacağı CCP1CON
yazmacında yaptığımız ayara göre 1, 0 olur veya durumunu korur. PWM modunda ise
RC2 / CCP1 bacağı 10 bit çözünürlükte darbe genişlik modülasyonlu bir işaret üretecek
şekilde konfigüre edilebilir. PR2 yazmacı darbe genişlik periyodunun tayininde
kullanılmaktadır.
3.3.3. RAM Bellek
PIC16F877’nin 0x00~7Fh adres aralığına ayrılmış olan RAM belleği vardır. Bu bellek
içerisindeki dosya yazmaçları içerisine yerleştirilen veriler PIC işlemcisinin çalışmasını
kontrol etmektedir. File register adı verilen özel veri alanlarının dışında kalan diğer bellek
alanları, normal RAM bellek olarak kullanılmaktadırlar.
16
3.3.4. PIC16F877’nin Besleme Uçları ve Beslenmesi
PIC16F877’nin besleme gerilimi 11, 12 ve 31, 32 numaralı bacaklardan
uygulanmaktadır. 11 ve 32 numaralı Vdd ucu +5 V’a ve 12, 31 numaralı Vss ucu toprağa
bağlanır. PIC’e ilk defa enerji verildiği anda meydana gelebilecek gerilim dalgalanmaları
nedeniyle oluşabilecek istenmeyen arızaları önlemek amacıyla 100nF’lık dekuplaj 19
kondansatörünün devreye bağlanması gerekmektedir. PIC’ler CMOS teknolojisi ile
üretildiklerinden 2 ila 6 Volt arasında çalışabilmektedirler. +5 V’luk bir gerilim ise ideal
bir değer olmaktadır.
3.3.5. PIC16F877’nin Reset Uçları
Kullanıcının programı kasti olarak kesip başlangıca döndürebilmesi için PIC’in 1
numaralı ucu MCLR olarak kullanılmaktadır. MCLR ucuna 0 Volt uygulandığında
programın çalışması başlangıç adresine döner. Programın ilk başlangıç adresinden itibaren
tekrar çalışabilmesi için, aynı uca +5 Volt gerilim uygulanmalıdır.
3.3.6. PIC16F877’nin Saat Uçları ve Osilatör Tipleri
PIC16CXX mikrodenetleyicilerinde 4 çeşit osilatör bulunmaktadır. Kullanıcı bu 4
çeşitten birini seçerek iki konfigürasyon bitini (FOSC1 ve FOSC2) programlayabilir. Bu
osilatör çeşitleri Tablo 3.21’te verilmiştir. PIC16F877’de saat uçları 13. ve 14. bacaklardır.
Hazırlanacak olan PIC programlarında kullanılan osilatör tipi PIC programının çalışma
hızını ve hassasiyetini etkileyeceğinden dolayı amaca uygun bir osilatör devresi
kullanılmalıdır.
Tablo 3.1 ’te farklı osilatör çeşitleri ve özellikleri görülmektedir. Osilatör tipinin
seçiminde dikkat edilecek bir başka nokta ise, seçilecek olan osilatörün kullanılan PIC’in
özelliğine uygun olmasıdır. Örnek verecek olursak; en fazla 10 MHz çalışma frekansına
sahip bir PIC16F877 için 20 MHz’lik bir osilatör kullanmak doğru olmaz. Fakat daha
düşük bir frekans değeri ile çalışan bir osilatör devresi kullanılabilir.
17
Tablo 3.1 Osilatör Çeşitleri
OSİLATÖR TİPİ TANIMI ÖZELLİĞİ FREKANSI LP Kristal osilatör veya seramik rezonatör Asgari akım 40 KHz XT Kristal osilatör veya seramik rezonatör Genel amaçlı 4 MHz HS Kristal osilatör veya seramik rezonatör Yüksek hız 20 MHz RC Direnç/Kapasitör zaman sabiti Düşük maliyet 4 MHz
3.3.6.1. Kristal Osilatör / Seramik Rezonatör
XT, LP ve HS modları, RC osilatörlere nazaran çok daha hassastırlar. Bu modlar,
kristal osilatör veya rezonatörlerin, OSC1 / CLKIN ve OSC2 / CLKOUT uçlarına
bağlanmalarıyla kurulmaktadır. Tablo 3.2’te hangi frekansta kaç pF’lık kondansatör
kullanılması gerektiği belirtilmiştir.
Tablo 3.2 Frekansa Göre Kondansatör Seçimi
OSİLATÖR TİPİ FREKANS KONDANSATÖR LP 32 KHz 33-68 pF
200 KHz 15-37 pF 100 KHz 47-100 pF
XT 500 KHz 20-68 pF 1 MHz 15-68 pF 2 MHz 15-47 pF
HS 4 MHz 15-33 pF 8 MHz 15-47 pF 20 MHz 15-47 pF
3.3.6.2. RC Osilatör
Zamanlamanın çok hassas olmadığı durumlarda RC ikilisi osilatör kaynağı olarak
kullanılmaktadır. RC osilatör, maliyetin azaltılmasını sağlamaktadır. Kullanıcı dış R ve C
elemanlarının toleransı nedeniyle meydana gelen değişiklikleri de dikkate almalıdır.
Direncin değeri 3 ila 100 KOhm arasında seçilmelidir. 1 MOhm gibi yüksek direnç
değerleri osilatörü gürültü ve nem gibi çevresel etkilere karşı duyarlı hale getirir. Direnç 2
KOhm değerinin altında ise, osilatör kararsız hale gelebilmekte, hatta tamamıyla
durabilmektedir.
18
3.4. Pic Basic
LCD, EEPROM, analog dijital çevirme, seri haberleşme, shift register, çeşitli
şekillerde sinyal çıkışı almak ve birçok sık görülen uygulamanın Pic’le kolay
yapılabilmesi için bu işleri yapan Assembly komutları makrolar halinde toplanmış ve Pic
Basic dili oluşturulmuştur. Bu porgram dili bu tür işleri sadece parametreleri olan birer
komuta indirgemiştir. Bunlara örnek olarak 24Cxx serisi EEPROM’larla bilgi alışverişini
sağlayan I2CREAD, I2CWRITE, LCD ekrana yazı yazan LCDOUT, koşul kontrolünü
sağlayan IF...THEN...ELSE...ENDIF ve WHILE...WEND, Pic’in içindeki EEPROM’la
bilgi alışverişini sağlayan READ, WRITE ve senkron ve asenkron seri haberleşmeyi
sağlayan SHIFTIN, SHIFTOUT, SERIN, SEROUT komutları gösterilebilir[4].
3.4.1. Pic Basic’te Matematik Operatörleri:
Tablo 3.3 Pic Basic’te Matematik Operatörler
Operatör Açıklaması
+ Toplama
- Çıkarma
* Çarpma
** 16 bit çarpma W0 = 250 W1 = W0 ** 1000
250000 = %111101000010010000 Sonucun üst 16 bitini W1’e atar.
/ Bölme
// Bölümden kalan B = 12 C=5 A = B // C B’nin C’ye bölümünden
kalan 2’yi A’ya atar.
<< Sola kaydırma B0 = B0 << 3 BO’ın içindeki bitler üç kez sola
kaydı.
>> Sağa kaydırma
ABS Mutlak değer
A=5 B=2 C=(B – A) C=253 C = ABS (B – A) C = 3
COS Kosinüs 0-360 derece 0-255 binary karşılıklarıyla ifade
ediliyor.
19
B0=63 B1=COS B0 B1=0 B0’daki 63 sayısı 90 derecenin karşılığı.
SIN Sinüs
DIG Sayının içinden hane seçme B0=123 B1=B0 DIG1 B1=2
MAX Verilen iki sayı arasından en büyük sayıyı seçer
MIN Verilen iki sayı arasından en küçük sayıyı seçer
NCD Sayının içinde en soldaki 1 bitinin kaçıncı bit olduğunu verir
B0=NCD %01001000 B0=7
DCD Söylenen biti 1 yapar, gerisini sıfırlar
REV Değişken içinde yanındaki sayı kadar alt bitin sırasını ters çevirir
A=01000011 B=A REV3 B=01000110
SQR Karekök alır B=4 A=SQR B A=2 B=5 A=SQR B A=2
& İki sayının binary karşılığını VE işlemine sokar
| İki sayının binary karşılığını VEYA işlemine sokar
^ İki sayının binary karşılığını ÖZELVEYA işlemine sokar
~ Bir sayının binary karşılığını DEĞİL işlemine sokar
&/ İki sayının binary karşılığını VEDEĞİL işlemine sokar
|/ İki sayının binary karşılığını VEYADEĞİL işlemine sokar
^/ İki sayının binary karşılığını ÖZELVEYADEĞİL işlemine sokar
3.4.2. Pic Basic’te Karşılaştırma Operatörleri
Tablo 3.4 Pic Basic’te Karşılaştırma Operatörleri
=, == Eşit
<>, != Eşit değil
< Küçüktür
> Büyüktür
<= Küçük eşit
>= Büyük eşit
20
3.4.3. Pic Basic’te Mantıksal Operatörler
Tablo 3.5 Pic Basic’te Mantıksal Operatörler
3.4.4. Pic Basic’te Komutlar
Tablo 3.6 Pic Basic’te Komutlar
@ Tek satırlık assembly komutu kullanmak için.
ADCIN Channel, Var Channel’daki analog değerin karşılığını Var’a atar.
ASM..ENDASM Assembly komut grubu kullanmak için.
BRANCH Index, [Label...] Label dizisinde Index sayısını karşılayan seçeneğe
yönlendirir.
CALL Label Assembly’deki CALL komutunun aynısı
CLEAR Bütün değişkenleri sıfırlar
CLEARWDT WDT’nin içindeki değeri sıfırlayarak WDT’yi kapatır.
COUNT Pin, Period, Var Belirli bir periyod içinde gelen puls sayısını Var’a atar
DATA Location, Constant Pic’e program yüklenirken dahili EEPROM’a Location
adresinden başayarak Constant’ları yükler
DEBUG Var ,Var Define komutuyla önceden belirlenmiş bir pin üzerinden
önceden belirlenmiş bir hızda (baud rate) seri haberleşme
yoluyla Var’daki veriyi yollar.
DEBUGIN Timeout,
Label [Var]
Define komutuyla önceden belirlenmiş bir pin üzerinden
önceden belirlenmiş bir hızda (baud rate) seri haberleşme
yoluyla gelen veriyi Var’a atar.
AND, && Mantıksal VE
OR, || Mantıksal VEYA
XOR, ^^ Mantıksal ÖZELVEYA
NOT AND Mantıksal VEDEĞİL
NOT OR Mantıksal VEYADEĞİL
NOT XOR Mantıksal ÖZELVEYADEĞİL
21
DISABLE Interrupt girişi ve Debug işlemlerini engeller.
DISABLE DEBUG Debug işlemini engeller.
DISABLE INTERRUPT INTCON.GIE’yi sıfırlayarak interrupt girişini kapatır.
DTMFOUT Pin, Onms,
Offms, [Tone]
Tone tuşunun telefondaki sesini Onms süresi boyunca
tuşlar arasında Offms süresi kadar bekleterek çıkarır.
Onms ve Offms belirtilmemişse 200ms Onms, 50 ms
Offms süresi kullanır.
EEPROM Location,
Constant
DATA’yla aynı işi yapar
ENABLE DISABLE komutundan sonra interrupt girişine ve Debug
komutuna izin verir.
ENABLE DEBUG DISABLE komutundan sonra Debug komutuna izin verir.
ENABLE INTERUPT DISABLE komutundan sonra interrupt girişine izin verir.
END Assembly’deki END’in aynısıdır.
FOR i=Start TO End Task
NEXT i
Start değerinden End değerine kadar i’yi birer
birer arttırarak Task’i uygular.
FREQOUT Pin, Onms,
Frequency
Pin bacağında Onms süresi boyunca Frequency
frekansında sinüs dalgası üretir.
GOSUB Label Call komutuyla aynı işi yapar.
GOTO Label Assembly’deki GOTO işleminin aynısı.
HIGH Pin Pin bacağını bir yapar.
HPWM Channel, Dutycycle,
Frequency
16F877 gibi PWM modülü olan mikrodenetleyicilerde
bu modülün Channel numaralı kanalından %(Duty+1)/2.56
duty cycle’da Frequency frekansında PWM çıkışı sağlar
HSERIN
ParityLabel,
Timeout,Label,
[Var]
16F77 gibi USART özelliği olan mikrodenetleyicilerde
donanım asenkron seri haberleşme hattından veri bekler,
gelen veriyi Var’a atar, Timeout ms süre boyunca veri
gelmezse Label bloğuna gider.
HSEROUT [Var] 16F77 gibi USART özelliği olan mikrodenetleyicilerde
Var’daki veriyi donanım asenkron seri haberleşme hattına
yollar.
I2CREAD DataPin, Control ve Address verilerini yollar, harici EEPROM’un
22
ClockPin, Control, Address,
Var
Address bölgesinden gelen veriyi Var’a atar.
I2CWRITE DataPin,
ClockPin, Control, Address,
Var
Control ve Address bilgilerini yollayıp, harici
EEPROM’un Address bölgesine Var’daki veriyi atar.
IF..THEN..ELSE..ENDIF If’ten sonra gelen şart doğruysa Then’den sonraki işlemi,
değilse Else’ten sonraki işlemi yapar.
INPUT Pin Belirtilen Pin’i giriş yapar.
LCDIN Address, Var LCD’deki RAM’in Address bölgesindeki veriyi Var’a
atar.
LCDOUT Item Item’deki değeri LCD’ye gönderir
LET Var = Value Var’a Value’daki işlem veya değeri atar. Gerekli değil
LOOKDOWN Search, [List],
Var
Search’teki veriyi List’in içinde arar, o verinin List’teki
0’dan başlayarak kaçıncı veri olduğunu Var’a atar.
LOOKDOWN2 Search,Test,
[List], Var
LOOKDOWN’dan farkı List’in içinde 16 bit gerektiren
(256’dan büyük) değerler kullanılabilmesi ve Test için
karşılaştırma operatörü kullanılırsa şartı sağlayan ilk
sayıyı seçmesidir.
LOOKUP Index, [List], Var List’in içinde Index’teki sayıya karşılık gelen veriyi Var’a
atar.
LOOKUP2 Index, [List], Var LOOKUP’tan farkı List’in içinde 256’dan büyük sayı
kullanılabilmesidir.
LOW Pin Belirtilen Pin’i sıfırlar.
NAP Period 18*2Period ms süre için uyku moduna girer.
ON DEBUG GOTO Label Debug geldiğinde Label’daki işlemleri yapar.
ON INTERRUPT GOTO
Label
Interrupt geldiğinde Label’daki işlemleri yapar.
OUTPUT Pin Pin’i çıkış bacağı yapar.
PAUSE Period Period’daki sayı kadar milisaniye bekler.
PAUSEUS Period Period’daki sayı kadar mikrosaniye bekler.
POT Pin, Scale, Var Pin’deki potansiyometrenin ayarına göre Scale içindeki
23
uygun değeri Var’a atarak
PULSIN Pin, State, Var Pin’e gelen State (0 veya 1) pulsun süresinin kaç 10us
(4MHz; 20MHz’de 2us) olduğunu Var’a atar.
PULSOUT Pin, Period Pin üzerinden Period’daki sayı kadar 10us(4MHz;
20MHz’de 2us) süresince olan işaretin(0 veya 1) tersi
puls verir.
PWM Pin, Duty, Cycle Pin’den % (Duty+1)/2.56 duty cycle’da Cycle’daki değer
kadar periyod boyunca PWM çıkışı sağlar.
RANDOM Var 0-255 arasında rastgele bir sayı seçip Var’a atar.
RCTIME Pin, State, Var Pin’in State(0 veya 1) durumunda kalma süresinin kaç
10us (4MHz; 20MHz’de 2us) olduğunu Var’a atar.
READ Address, Var Dahili EEPROM’un Address bölgesindeki bilgiyi Var’a
atar.
READCODE Address, Var READ komutundan farkı 16 bit verileri kullanması.
RESUME Interrupt’la devreye giren program bloğunu bitirir, ana
programın kaldığı yere geri dönüş sağlar.
RETURN Call’la çağrılan program bloğunu bitirir, ana programın
kaldığı yere geri dönüş sağlar.
REVERSE Pin Pin girişse çıkış yapar, çıkışsa giriş yapar.
SELECT CASE Var
CASE Expr1 Statement CASE Expr2 Statement CASE ELSE Statement END SELECT
Var’ın içindeki değeri Expr’lerin içinde arar, bulduğu
seçeneğin altındaki Statement komutunu işler, bulamazsa
Case Else’in altındaki Statement komutunu işler.
SERIN Pin, Mode, Timeout,
Label, [Qual], Var
Pin’e bağlı asenkron seri haberleşme hattından Mode’la
belirtilen hızda (baud rate) veri bekler, gelen veriyi Var’a
atar, Timeout ms süre boyunca veri gelmezse Label
bloğuna gider. [Qual] varsa verinin içinde Qual’dan
sonraki ilk veriyi Var’a atar.
SERIN2 Pin, Mode,
Timeout, Label, [Qual],
Var
SERIN’den farkı standart bağlantı hızlarından farklı hızlar
(baud rate) kullanılmasına izin vermesidir. Mode’daki sayı
(1000000/hız)-20 olarak hesaplanır.
24
SEROUT Pin,Mode, [Var] Var’ın içindeki verileri Pin üzerinden Mode hızında (baud
rate) asenkron seri haberleşme hattına gönderir.
SEROUT2 Pin, Mode, [Var] SEROUT’tan farkı standart bağlantı hızlarından farklı
hızlar (baud rate) kullanılmasına izin vermesidir.
Mode’daki sayı (1000000/hız)-20 olarak hesaplanır.
SHIFTIN Datapin, Clockpin,
Mode, Var
Datapin’e bağlı senkron seri haberleşme hattından
Clockpin’e bağlı ortak osilasyonu kullanarak Mode’la
belirtilen transfer protokolünü kullanarak veri alır ve
Var’a atar.
SHIFTOUT Datapin,
Clockpin, Mode, Var
Datapin’e bağlı senkron seri haberleşme hattına
Clockpin’e bağlı ortak osilasyonu kullanarak Mode’la
belirtilen transfer protokolünü kullanarak Var’daki verileri
gönderir.
SLEEP Period Period s süresi için uyku modunda kalır.
SOUND Pin, [Note,
Duration,Note, Duration ]
Pin üstünden Note (1-127) notasını Duration*12ms
süreyle üretir.
STOP Sonsuz nop döngüsü.
SWAP Var1, Var2 Var1 ve Var2’nin içeriklerini takas eder.
TOGGLE Pin Pin’deki değeri (0 veya 1) tersine çevirir.
WHILE Condition Statement
WEND
Condition doğrulandığı sürece Statement komutunu
uygular.
WRITE Address, Var Var’daki veriyi dahili EEPROM’un Address bölgesine
atar.
WRITECODE Address,Var WRITE komutundan farkı 16 bit verileri kullanması.
XIN Datapin, Zeropin,
Timeout, Label, [Var]
Datapin ve Zeropin’e bağlı X-10 interface entegresinden
veri bekler, gelen veriyi Var’a atar, Timeout ms süre
boyunca veri gelmezse Label bloğuna gider.
XOUT Datapin, Zeropin,
[Housecode\Keycode
Datapin ve Zeropin’e bağlı X-10 interface entegresine
Housecode ve Keycode verilerini yollar.
25
3.4.5. Pic Basic Programlama Hakkında Açıklamalar
Burada verilen örneklerde görünmese de Pic Basic’te program içinde kullanılan
açıklama metinleri önlerine ‘ işareti eklenerek ayrılırlar. Zamanlama kullanan bütün fonksiyonlar standart olarak 4 Mhz’lik kristal osilatör
kullanılacağı öngörülerek ayarlanmıştır. Örneğin 20 MHz’lik bir osilatör kullanılacaksa
programın başında “Define osc 20” komutuyla yeni osilatör programa tanıtılır. Aşağıda
görülen tanımlamalar o komutların kullanılacağı programın başında yazılmalıdır.
3.4.5.1. Debug Komutu İçin Gerekli Tanımlamalar
DEFINE DEBUG_REG PORTB Debug verisinin yollanacağı bacağı RB0
DEFINE DEBUG_BIT 0 olarak seçti.
DEFINE DEBUG_BAUD 2400 Debug verisinin yollanacağı hızı 2400 olarak belirledi.
DEFINE DEBUG_MODE 1 Debug verisini invert ederek gönderecek, 0 olsaydı
olduğu gibi gönderecekti.
3.4.5.2. Debugin Komutu İçin Gerekli Tanımlamalar
DEFINE DEBUGIN_REG PORTB Debug verisinin alıcağı bacağı seçti.
DEFINE DEBUGIN_BIT 0
DEFINE DEBUGIN_BAUD 2400 Debug verisinin alınacağı hızı 2400 olarak belirledi.
DEFINE DEBUGIN_MODE 1 Debug verisinin invert edilmiş olarak geleceği
anlatıldı, 0 olsaydı olduğu gibi geleceği anlaşılacaktı.
3.4.5.3. Hserin, Hserout Komutu İçin Gerekli Tanımlamalar
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 20h
DEFINE HSER_BAUD 2400
26
3.4.5.4. DTMF ve Freqout Komutlarının Kullanımı İçin Gerekli Devre
Şekil 3.2’de dtmf ve freqout komutlarının kullanımı için gerekli devre verilmiştir.
Şekil 3.2 DTMF ve Freqout Komutlarının Kullanımı İçin Gerekli Devre
3.4.5.5. I2CREAD, I2CWRITE Komutlarının Kullanımı İçin Gerekli Devre
Şekil 3.3’de I2cread ve I2cwrite komutlarının kullanımı için gerekli devre verilmiştir.
5 V P i c A 0
A 1 A 2 V s s
V c c W P
S C L K S D A T
S C L K S D A T
2 4 L C x x
Şekil 3.3 I2CREAD, I2CWRITE Komutlarının Kullanımı İçin Gerekli Devre
3.4.5.6. LCD Komutları İçin Gerekli Tanımlamalar
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_REBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
100nF
1K
100nF
1KPic
Output
27
3.4.5.6.1. LCD’de Karakter Yazma Dışındaki İşlemler
LCDOUT $FE, 1 Ekranı temizleme
LCDOUT $FE, 2 Üst satırın ilk harfine gitme
LCDOUT $FE, $0C İmleçi gizler
LCDOUT $FE, $0E Alt çizgiyi açar
LCDOUT $FE, $0F Yanıp sönen imleçi açar
LCDOUT $FE, $10 İmleçi bir adım sola alma
LCDOUT $FE, $14 İmleçi bir adım sağa alma
LCDOUT $FE, $C0 İmleçi ikinci satırın ilk harfine götürme
LCDOUT $FE, $94 İmleçi üçüncü satırın ilk harfine götürme
LCDOUT $FE, $D4 İmleçi dördüncü satırın ilk harfine götürme
3.4.5.7. Pauseus Komutuyla Kullanılabilecek Minimum Bekleme Süreleri
4MHz osilatör 24us
8MHz osilatör 12us
10MHz osilatör 8us
20MHz osilatör 3us
3.4.5.8. Pot Komutunun Kullanımı İçin Gerekli Devre
Şekil 3.4’de pot komutunun kullanımı için gerekli devre verilmiştir.
Şekil 3.4 Pot Komutunun Kullanımı İçin Gerekli Devre
13
2
100nF
Pic 5-50K
28
3.4.5.9. PWM Komutunun Kullanımı İçin Gerekli Devre
Şekil 3.5’de Pwm komutunun kullanımı için gerekli devre verilmiştir.
10K
1uF
12
Pic
AnalogOutput
Şekil 3.5 PWM Komutunun Kullanımı İçin Gerekli Devre
3.4.5.10. Serin Komutunda Mode’a Belirtilebilen Hız Tanımları
T sinyalin aynı şekilde, N ise invert edilerek aktarıldığını belirtir. Yandaki sayı saniyede
gönderilen veri paketi sayısıdır.
T2400 N2400
T1200 N1200
T9600 N9600
T300 N300
4. KABLOSUZ HABERLEŞME
Başlangıçta sadece ses haberleşmesini karşılamak amacıyla tasarlanan haberleşme
şebekeleri artık veri iletişimini de kapsayacak şekilde tasarlanabilmektedir.
Veri hızını kullanılan frekans ve frekans üstündeki frekans aralığı belirler. Sınırlı bant
hızlarında veri hızları sınırlıdır. 19200 bps hız için 25kHz, 9600 bps hız için ise 12.5kHz
kanal aralığı yeterlidir.
Veri bütünlüğü trafik içinde bozulmamalı, beklememeli ve kaybolmamalıdır. Sistem
hatalara karşı koruma ve düzeltme teknikleri içermelidir.
Kullanım Alanları ;
Endüstriyel Otomasyon Sistemleri
Su Pompa İstasyonları Kontrol ve Otomasyon Sistemleri
Boru Hatları
Uzak Mesafeli Network Sistemleri (WAN)
Sınırlı Alanlarda Kablosuz Network Sistemleri (LAN)
Trafik Lambaları Kontrolu
Süreç Kontrolü...vs
Gelişen teknolojide kablosuz veri transferi de önemini artırarak koruyacağı kesindir.
4.1. Radyo Frekanslı Sistemler
Radyo Frekanslı (RF) Sistemler, adından da anlaşılacağı üzere, verinin radyo
dalgalarıyla kablosuz olarak cihaz ve bilgisayar arasında iletilmesini sağlar. Bu tarz
uygulamalarda anında (online) iletişim sağlanmakta ve iletişim sırasında kablo ve
haberleşme birimleri kullanılmadığından, kablodan veya haberleşme birimlerinden
kaynaklanabilecek problemler yaşanmamaktadır. Ayrıca, veri alış verişi doğrudan arka
plandaki uygulamaların çalıştığı platformlarla (bilgisayar sistemleriyle) yapıldığından,
genellikle cihazlar üzerinde program yazma gereksinimi olmadan "tak ve çalıştır"
yapısındadır.
30
4.1.1. Sistemin Özellikleri
-Ana bilgisayar sistemiyle kablosuz ve anında haberleşilir.
-Anlık sorgulamalar kablosuz ve hızlı biçimde yapılır.
-Veri anlık olarak ve kablosuz gönderilir.
-433 mhz, 450-470 MHz ve 2.4 GHz frekanslarında çalışılabilir.
-Toz, tazyikli su ve helikopter testlerinden geçmiş, endüstriyel standartlara sahip
cihazlar kullanılır.
-Mevcut uygulamalarda büyük değişiklik yapmadan kullanılır.
-Kısa sürede kullanıma geçilir.
4.1.2. Sistemi Oluşturan Unsurlar
-433 MHz ,450 – 470 Mhz Dar Band, 2.44 GHz Spread Spectrum.
-Gerekli kapsama alanını sağlayacak kadar istasyon ünitesi.
-Veri toplama ve entegrasyon yazılımı.
-Gerekli kapsama alanını sağlayacak kadar sisteme giriş noktası.
4.2. Serbest Uzay Modeli
Radyo sistemleri bilgileri, serbest bir uzayda dağılır. Doğal olarak diğer dağıtım
sistemlerinde karşılaşılan problemlerle bu dağıtım sistemlerinde karşılaşmak söz konusu
değildir. Örneğin kablolu sistemler fiziksel bir ortama gereksinim duyarlar ve bunları bazı
coğrafik alanlara kurmak hemen hemen olanaksızdır. Radyo sistemlerini özelliklerini
aşağıdaki şekilde özetlemek olasıdır;
Göl ve nehir gibi engellerin kolayca aşılmasını sağlar. Bu ortamlarda kullanılması
olası bakır malzemelere su ulaşmasını engellemek için çok pahalı özel bazı malzemelere
gereksinim vardır.
Dağların ve derin vadilerin aşılmasında da çok büyük güçlükler yaşanır. Bu gibi
yerlerde hem kuruluş çok güçtür hem de çok pahalıdır.
Yöresel telefon sağlayıcıları veya telefon şebekesini kolayca aşmak olanaklıdır.
31
Son zamanlarda terörist ataklar nedeniyle kablolu sistemlerin kolaylıkla tahrip
edilebilmeleri nedeni ile yöneticiler, kablosuz sistem kullanımına yönelmeye başlamış
bulunmaktadır.
4.3. Frekans Yelpazesi
İki yönlü hücresel, kişisel iletişim (Personel Communication) , mikro dalga ve uydu
gibi radyo sistemleri sabit bir frekans ile iletişim kurarlar. Birçok ülkede bununla ilgili
yetkili organlar bulunmaktadır. Radyo sistemleri, bilgileri göndericiden (transmitter),
alıcıya (receiver) sabit frekans temeli üzerinden iletirler.
İşlemler, dalga boyu ve içinde dalganın üretildiği frekansın birlikte etkinliği ile oluşur.
Eğer bir defada pek çok telefon konuşması arzu ediliyorsa daha büyük bant genişliğine
gereksinim vardır. Bant genişliği, sesin radyo dalgası içine yerleştirilmeye hazır olduğu
her saniye döngüsünün ortalama adedidir. Böylece, çok dalga çok bilginin taşınabileceği
anlamına gelmektedir.
Kısa-dalga radyo frekansına bakılırsa dalga 104 (10.000) metre uzunluğunda bir dalga
boyu saniyede 10.000 dalga kullanır. Bu ise çok kısıtlı kanal adedidir. Buna karşılık mikro
dalga radyo frekansında dalga boyu çok daha kısadır. (10-2=0.01), ancak saniyede 10
milyar dalga iletir. Bu nedenle bu durumda radyo kanallarında çok daha fazla konuşma
iletilebilir.
Ses sabit bir şekilde değişen iki değişkene sahiptir;
1- Dalga Yüksekliği (Amplitute)
2- Frekans ( belirli bir zaman dilimi içinde dalgalanmadaki değişiklik oranı)
Yapı, normal olarak yukarıda görüldüğü gibi sinusodial bir dalga şekli ile temsil
edilebilir.
İnsan konuşmasının elektriksel eşitini temsil eden bu dalga şekli belirli bir zaman
diliminde dalga yüksekliği ve frekansın bir fonksiyonu olarak ortaya çıkar. Dalga şeklinin
tam bir deviri, yukarıda görüldüğü gibi A-noktasından başlayarak 360 derecelik bir devri
tamamlayıp E- notasında sonuçlanır. Bir saniye zaman çerçevesi içinde tamamlanan tam
bir devire Bir Hertz (Hz) adı verilir. Böylece 1 Hz saniyede 1 devirdir. Bir saniyelik
periyotta oluşan devir adedi ise frekanstır. Standart bir konuşmanın frekansı saniyede 3000
devir (3 Kilohertz-3kHz) ile temsil edilir.Bu nedenle insan konuşması 3 kHz dalga şekline
döndürülür ve radyo-temelli taşıyıcı içine modüle edilir.
32
Serbest uzay radyo iletişiminde elektro manyetik dalga havada saniyede 300.000 km.
hızla hareket eder. Radyo dalgaları 10kHz. den başlayıp milyar Hertz’e kadar bir yelpaze
içinde aktarılabilir.
4.4. Modülasyon İşlemleri
Bilginin, belirli bir frekans aralığında çalışan bir taşıyıcı üzerine uygulanmasına
modülasyon adı verilir. Örneğin insan sesi iletiminde en uygun dilim boyu 4khz olarak
görüldüğünden frekans yelpazesinin bu boyda dilimlere bölünmesinde yarar
görülmektedir. Böylece elektriksel dalgalar 4 khz. dilimlere bölünmüş taşıyıcı dalgalara
uyarlanır. Bir önceki başlıkta standart bir konuşmanın frekansının 3 kHz. olduğu
belirtilmişti. Bunun başlama ve bitiş kısımları de içine dahil edilecek olunursa 4 kHz’lik
bir dilimin uygun olacağı görülmektedir.
4.4.1. Modüle Edilmiş Sinyal Zarfları
Radyo temelli sistemler bilgi(ses,veri ve video) taşımada kullandığında, temel taşıyıcı
olarak radyo sistemleri kullanılır. Bu modüle edilmemiş bir taşıyıcıdır. Burada noktadan-
noktaya sabit taşıyıcı tonları gönderilir. Bunlara gönderilmek istenen bilgiler eklenir, yani
modülatör aracılığı ile sinyaller bilgi ile birlikte modüle edilir (temel taşıyıcı frekansına
değiştirilir). Daha sonra taşıyıcı frekansı radyo dalgaları üzerinde örneğin ses taşıyan
modüle edilmiş zarflara dönüştürülür. Bu zarflar alıcı istasyona iletilir ve orada gerekli
değişikliğe uğratılarak sesin iletilmesi sağlanır.
4.4.2. Modülasyon Teknikleri
Önceki bölümlerde dedeğinildiği gibi, modülasyon tekniği radyo haberleşmesinde
mesajların uygun form ve biçimde (formatta) gönderilmesi için gerekli değişikliği yapma
tekniğidir.
Bu iş için 4 temel form kullanılır;
-Genlik Modülasyonu (Amplitude Modulation) : AM veya ASK
-Frekans Modülasyonu (Frequency Modulation) : FM veya FSK
-Faz Modülasyonu (Phase Modulation) : PM veya PSK
33
-Dört Kademeli Genlik Modülasyonu (Quadrature and Amplitude Modulation) : QAM
veya QPSK
Modülasyon geri döndürülebilir bir işlemdir. Alıcı, taşıyıcı dalgaların modülasyonunu
çözerek üzerinde gelen bilgileri ortaya çıkarır. Böylece modüle ve de-modüle ediciler
kullanılarak bilgi transferini gerçekleştirilir.
4.4.3. Dalga Boyu Modülasyonu – Genlik Modülasyonu (DBM)
Bu modülasyon türünde, bilgi sinyalinin frekans ve genliğine bağlı olarak, taşıyıcı
sinyalinin sadece genliği değiştirilir. Uzak mesafelere gönderilmek istenen düşük frekanslı
ses veya müzik şeklindeki bilgiler önce elektriksel enerjiye çevrilir. Sonra taşıyıcı (RF)
sinyal üzerine bindirilerek, elektromanyetik dalgalar şeklinde uzak mesafelere yayınlanır.
Modülasyon için iki önemli sinyalin olması şarttır. Bunlar bilgi sinyali ve taşıyıcı
sinyalidir. Bunlardan frekansı düşük olan uzak mesafelere gönderilecek olan bilgi sinyali,
frekansı yüksek olan ise taşıyıcı sinyalidir. 100 KHz. ve 5 KHz. 'lik iki ayrı sinyalden
hangisinin bilgi, hangisinin taşıyıcı olduğunu tespit edebiliriz. Şekil 4.1’de genlik
modülasyonlu dalganın oluşumu gösterilmiştir.
Şekil 4.1 Genlik Modülasyonlu Dalganın Oluşumu
Alçak frekanslı bilgi sinyalinin pozitif (+) alternanslarında taşıyıcının genliği artar. En
büyük genlik, bilgi sinyalinin (+) tepe noktasında elde edilir. Alçak frekanslı bilgi
34
sinyalinin negatif(-) alternanslarında ise taşıyıcının genliği azalır. En küçük genlik ise,
bilgi sinyalinin (-) tepe noktasında elde edilir. Böylece taşıyıcının genliği, bilgi sinyaline
göre değiştirilmiş olur. Burada modüle eden sinyal, bilgi sinyalidir. Modüle edilen ise
taşıyıcıdır.
Genlik modülasyonu neticesinde; taşıyıcı sinyali, taşıyıcının üstünde ÜKB, taşıyıcının
altında ise AKB oluşur. Kenar bandların genliği ise eşittir.
Modülasyonun tanımı yeniden yapılır ise:
Alçak frekanslı bilgi sinyalleri ile yüksek frekanslı taşıyıcı sinyallerin elektronik devre
elemanı içinde karıştırılarak, taşıyıcı sinyalinin altında ve üstünde olmak üzere iki tarafında
yeni frekanslar elde etme işlemine Modülasyon denir[6].
Şekil 4.2 Genlik Modülasyonu
Bilgi sinyali ile taşıyıcı sinyali lineer çalışma yapmayan bir elektronik devre elemanı
(transistör) içinde karıştırılır. Eğer lineer çalışma yapan bir devre elemanına bu iki sinyal
uygulanırsa, çıkışında girişe benzeyen sinyaller elde edilir. Yani bu durumda giriş ile çıkış
doğru orantılıdır. Modülasyon işlemini gerçekleştiren transistörün çalışma noktası
nonlinear (doğrusal olmayan) bölgeye kaydırılırsa çıkış, girişe benzemez. Yani çıkıştan
girişe benzemeyen, girişten farklı sinyaller alınır. Girişe, farklı frekanslarda iki sinyal
uygulandığında, eleman çıkışından, girişe uygulanmayan yeni frekanslarda başka sinyaller
alınır. Genlik modülasyonunda, bir elektronik devre elemanına taşıyıcı ve bilgi sinyali
35
olmak üzere iki farklı sinyal uygulandığında, eleman veya devrenin çıkışından farklı
frekanslarda kenar bandlar alınır. Bundan dolayıdır ki; modülasyon lineer çalışma
yapmayan bir devre elemanı içinde gerçekleştirilir.
Toplam ve fark frekansları elde etmek için en az iki veya daha fazla sinyalin lineer
çalışma yapmayan bir devre içinde karıştırılması işlemine Heterodin (karıştırma) denir.
Heterodin işleminin verici kademesi içindeki uygulamasına Modülasyon denir.
Genlik modülasyonunda esas olarak antenden yayınlanan frekanslar; taşıyıcı, toplam ve
fark frekanslar (AKB ve ÜKB) dir. Şekil 4.2’de 5 KHz. 'lik bilgi ile 100 KHz. 'lik taşıyıcı
sinyali genlik modülasyonuna tabi tutulmuş ve modülasyon neticesinde 105 KHz. 'lik bir
üst kenar band, 95 KHz. 'lik alt kenar band oluşmuştur. Bilgi sinyalinin frekans ve
genliğine bağlı olarak taşıyıcının genliği değiştirilerek genlik modüleli sinyal elde
edilmiştir. Burada unutulmaması gereken nokta, genlik modüleli sinyalin frekansı da 100
KHz.'dir. Çünkü, modülasyon sonucunda taşıyıcının frekansı değil, genliği değiştirilir.
4.5. Sıvı Tanklarda Seviye Kontrol Sisteminde Kullanılan Haberleşme Modülleri
4.5.1. Verici Ünitesi (ATX 34)
4.5.1.1. Verici Ünitesi Teknik özellikleri
Çalışma Frekansı: 433,92 MHz
RF Gücü: 5 V besleme gerilimi ile 10 dbm
12 V besleme gerilimi ile 17 dbm
Besleme Gerilimi : +5 VDC, +12 VDC
Akım Sarfiyatı: 5 V besleme gerilimi ile 6,5 mA, 12 V besleme gerilimi ile 17 mA
Bilgi Oranı: max. 2400 bps
Modülasyon: ASK
Frekans Toleranası: ± 200 KHz
Kazancı : 1,5
Şekil 4.3’de projede kullanılan Atx 34 verici modül sekli gösterilmektedir
36
Şekil 4.3 ATX 34 Verici Modülü
4.5.1.1.1. Verici Ünitesi Bacak tanımlamaları
1 = Toprak
2 = Anten Çıkış
3 = Toprak
4 = Veri Girişi (Sayısıal Veri Girişi)
5 = Besleme (Vdd)
4.5.2. Alıcı Ünitesi (ARX 34):
4.5.2.1. Alıcı Ünitesi Teknik özellikleri
Çalışma Frekans Aralığı: 300 – 434 MHz
Besleme Gerilimi : 5 VDC
Kanal Genişliği : ± 500 KHz
Bilgi Oranı : 2400 bps
Kazancı : 1,5
37
Aşağıda şekil 4.4’de projede kullandığmız Arx 34 alıcı modül verilmektedir. Bacak
sayısı fazla görünse dahi devre içerisinden fazla bacaklar ilgili yerlere bağlıcır. Yani
devre kurulumu için kesinlikle tüm bacakları kullanmamız gerekmez. Fakat Tüm
bacakları devreye bağlarsak yine devre kompanzasyonu için fayda sağlamış oluruz.
Şekil 4.4 ARX 34 Alıcı Ünitesi
4.5.2.2. Bacak tanımlamaları
1 = Toprak
2 = Veri Çıkış
3 = Besleme (Vdd)
4 = Besleme (Vdd)
5 = Toprak
6 = Toprak
7 = Anten Giriş
38
4.5.3. İletişim Mesafesi
Yukarıdaki veriler ışığında alıcı – verici modüllerinin maksimum haberleşme mesafesi
hesaplanabilir. Verici modülü, maksimum güçte sinyal üretebilmesi için 12 Vdc besleme
ile çalıştırılmalı. Bu durumda modülün çıkış gücü 17 dbm (50 mW) olmaktadır.
5. DEVREDE KULLANILAN DİĞER EKİPMANLAR
Yapılan projede sistemin daha verimli ve istenilen özelliklere uygun çalışması için ek
olarak kullanılan ekipmanlar ve özelliklerinden bahsedilmektedir.
5.1. I-But
Günümüzde yarıiletken hafızalar yardımıyla pek çok çalışmalar yapılıyor ve insanlığın
hizmetine sunuluyor. Bunların başında birbiri ile paralel gelişen güvenlik sistemleri ve
bilgi iletişim teknolojileri geliyor. Yarıiletken hafızalara depolanan bilgiler güvenlikten
haberleşmeye ekonomiden ticarete kadar pek çok alanda kullanılıyor. Bu konu için örnek
olarak verilebilecek bir yarıiletken hafıza ise Dallas Semiconductor firması tarafından
üretilen iButton (information button)’dur. Dallas Semiconductor bu butonları üretirken
aynı seri numarasına sahip ikinci bir butonu üretmeme garantisi vermiş ve giriş çıkış
kontrolleri için bir güvenlik unsuru hazırlamıştır. Şu anda dünya üzerinde yaklaşık 127
milyon iButton mevcuttur. Bu iButtonlar giriş çıkış işlemlerinde kullanılabileceği gibi
değişik işlemler için kullanılmak üzere 13 değişik versiyon da üretilmiştir. Bilgisayar ve
otomasyon teknolojisi hızla gelişmektedir. Bu gelişim sayesinde birçok alanda bilgisayarlı
kontrol sistemleri kullanılmaktadır. Bu çalışmadaki sınıf kontrol sistemi, okulda veya
sınıfta otomasyon için kullanılan bilgisayarlara ilave edilecek ek donanım ve yazılım
bileşenleri ile mevcut okul otomasyonuna yeni işlevler kazandırmayı hedefleyen bir
modeldir[3].
5.1.1. DS1990A seri numaralı iButton
Projede kullanılan I-But serisi DS1990A serisi olup bu I-But’un temel özelliklerine ve
aksesuarlarına aşağıda değinilmektedir. Şekil 5.1’de projede kullandığımız I-But
verilmektedir.
40
Şekil 5.1 Projede Kullanılar I-Buttonlar
5.1.1.1. Temel özellikler
1) DS 1990’ın geliştirilmiş tipidir. Birden çok Seri numaralı iButtonun ortak bir hat
üzerinden kullanılabilmesini sağlar.
2) Bir defa kullanılan 48 bitlik seri numarası ile yüksek güvenlik sağlar.
3) Elektronik erişim için düşük maliyetli bir anahtardır.
4) 8 bit CRC ile veri bütünlüğü kontrolü yapar.
5) 5 ms’ den daha kısa bir sürede okunabilir.
6) -40° ile +85° arası çalışma sıcaklığı aralığı.
5.1.1.2. Aksesuar Örnekleri
DS9096P Kendiliğinden tutunabilen yapışkan ped
DS9101 Çok amaçlı klips
DS9093RA Ayarlanabilen kilitli halka
DS9093F Saat cebi kılıfı
DS9092 iButton probu
DS1990A seri numaralı iButton otomatik kimlik tanımlama için elektronik bir kayıt
numarası gibi işleyen programlanmamış bir data taşıyıcıdır. Bu iButton fabrikasyon olarak
lazerle kılıfa kazınmış her iButton için ayrı olarak atanan ve bir defa kullanılan 48-bitlik
seri numarası, 8-bitlik CRC ve 8-bit ailesi kodu (01H)’ yi içeren bir kayıt numarasına
sahiptir ve programlamlanması ve okunması için gerekli güç tamamen 1-Wire iletişim
41
hattından elde edilir. Bilgi 1-Wire protokolu yolu ile sadece bir tek bilgi yönlendirici ve
toprak dönüşüne ihtiyaç duyarak seri olarak iletilir. DS1990A seri numaralı iButtonu
DS1990 Seri numaralı iButtonu ile tamamen uyumludur ayrıca eklenen 1-Wire protokolu
yeteneği sayesinde iButton Search ROM komutlarını işleyebilir bu da birden fazla
DS1990A Seri numaralı iButtonunun tek bir veri hattı üstünde kullanılmasına olanak
sağlar.
Dayanıklı kılıfı kirlenmeye, neme ve darbelere karşı tam bir koruma sağlar. Az yer
kaplayan düğme şeklindeki görünüş, kendinden düzenlemeli yuvarlak şekilli yuva bu
iButton’nun kullanıcılar yada otomatik donanımlar tarafından kolay kullanılmasına
müsaade etmektedir. Aksesuarlar DS1990A seri numaralı iButtonu baskılı devre üzerine,
plastik anahtarlıklara, resimli kimliklere, kimlik kelepçelerine ve bir çok diğer nesnelere
monte edilmesine izin verir. Çalışma süreci izleme (work-in-progress) , elektronik
yolcular, erişim kontrol ve kalibrasyon kararlılıklarının depolanması gibi uygulama
alanlarını içermektedir.
5.1.1.3. Donanım Konfigürasyonu
1-Wire taşıyıcısının tanımlanması sırasında sadece bir tek nokta özenle belirtilmelidir ki
bu da, taşıyıcı üstündeki bütün cihazların uygun zamanda hattı sürebilmesinin önemli
olduğudur. Kolaylaştırmak için şu söylenebilir 1-Wire taşıyıcısına bağlı bütün cihazlar ya
bir açık kanal bağlantısına ya da 3 durumlu çıkışa sahip olmalıdır. DS1990A seri numaralı
iButtonu Şekil 5.2’de eşdeğer devresinden de görüldüğü gibi açık kanal bir parçadır
(Taşıyıcı yöneticisi de aynı eşdeğer devre olabilir). Eğer iki yönlü bir pin mevcut değil ise
ayrı olan giriş ve çıkış birlikte bağlanabilir. Taşıyıcı yöneticisi eşlenik hattın en sonunda
bir sonlandırıcı direncine gereksinim duyar. Kısa hatlar için sonlandırıcı direnç değeri
yaklaşık 5kΩ olmalıdır.
Şekil 5.2 DS1990A ‘nın İç Devre Yapısı
42
DS1990A seri numaralı iButtonuyla iletişim kurmak için 1-Wire portunu kullanılması
sırasında sırayla gerçekleşen işlemler şunlardır :
- Başlama
- ROM fonksiyon komutları
- Veri okuma
5.1.2. DS9092 I-Button Probu
Aşağıda Şekil 5.3’de DS9092 I-Button Problarının Şekli gösterilmektedir.
Şekil 5.3 DS9092 I-Button Problarının Şekli
Projede Kullandığımız I-But probumuz yukarıdaki şekillere benzer olup şekil 5.4’de
verilmiştir.
Şekil 5.4 Projede Kullanılan I-But Probu
43
5.1.2.1. DS9092 I-But Prob Özellikleri
1) iButton ailesine ait elamanları okuma/yazma probudur.
2) iButton girişlerine rehberlik eder.
3) DS9490R’ye RJ11 soketi yardımı ile basit bir Şekilde bağlanır.
4) Güvenli ve temiz bir arayüz bağlantısı sağlar.
5) Metal yüzü milyonlarca kez iButton bağlantısını gerçekleştirir.
6) DS9092T esnek olarak tasarlanmış hareketli bir giriş paneline sahiptir. DS9092 iButton
probu DS19xx ailesi iButtonlarının daha güvenilir bir data aktarımı için
gerçekleştirilmiştir. Bundan dolayı yapısı okuyucuya iButtonların kolay bir şekilde
yerleştirilmesine imkân sağlamaktadır .
5.2. DC Motorlar
Projede DC motor sıvı seviye tankının vanasının açılışını ve kapanışını kontrol etmek
için kullanılmıştır. Vana açılması için yüksek güçlü motorlar gerektiği için araçların
sileceklerinin çalışmasını sağlayan 12V-DC silecek motoru kullanılmıştır. DC motorların
özellikleri ve çalışma prensiplerine aşağıda değinilmektedir.
Şekil 5.5’de devrede projede kullanılan DC silecek motoru gösterilmektedir.
Şekil 5.5 Projede Kullanılan DC Motor
44
Mantık olarak bobin üzerinden geçen akımın sonucunda oluşturduğu magnetik kaçaklar
sayesinde oluşturduğu kutuplaşmayı ileri ve geri yönlü olarak kullanarak yani zıt
kutupların çekmesi vada aynı kutupların birbirini itmesi prensibinin dairesel harekete
dönüştürülmesini baz alınan en basit yapıdır. Diğer motorların tamamı bu mantık üzerine
kurulmuştur.
Mıknatıs mantığında oluşan N S Kutuplaşması kullanılarak N kutbu tarafına S kutbu
gelecek vada S kutbu tarafında N kutbu gelecek şekilde akımın yönü değiştirilerek hareket
ivmesi kazandırılmaktadır[7].
5.2.1. DC Motorların Çalışma Prensibi
Doğru akım makinesine ait bir devre şeması Şekil 5.6’de verilmiştir. Endüvi dönerken,
endüvi üzerindeki iletkenler de manyetik alan içerisinde döndüklerinden onlarda bir
endüksiyon elektromotor kuvveti indüklenir. Sargılarda indüklenen bu gerilim, makinenin
motor ya da dinamo olarak çalışmasına göre endüvi uç geriliminden farklıdır. Eğer makine
motor olarak çalıştırılırsa endüvi gerilimi, endüvi geriliminin düşüşünden dolayı, endüvi ye
uygulanan uç geriliminden daha küçüktür.
Şekil 5.6 Doğru Akım Makinasının Prensip Şeması
Şekil 5.5’deki devre şeması, makinenin motor olarak çalışma durumuna göre çizilmiştir.
Eğer makine dinamo olarak çalıştırılırsa tork yön değiştirir.
Doğru akım makinesi kullanım amacına göre dinamo ya da motor olarak çalıştırılabilir.
Bu formlardan birisinde çalışma, makinede herhangi bir değişikliği gerektirmez. Burada
45
önemli olan endüvi akımının meydana getiriliş biçimidir. Buna göre endüvi akımının
meydana gelişi iki temel prensibe dayanır. Bu prensiplere aşağıda değinilmektedir.
5.2.1.1. Manyetik Alan İçerisinde Hareket Eden İletkenin Durumu Manyetik alan içerisinde hareket halinde bulunan iletkende bir elektromotor kuvveti
indüklenir. Bu kuvvet iletkenin alana dik olma durumuna, iletkenin boyuna, manyetik akı
yoğunluğuna ve hareketin hızına bağlıdır. İletkenin uçları bir yüke bağlanarak kapalı devre
meydana getirilirse yük endüksiyon elektromotor kuvveti tarafından beslenerek bir akımı
çeker.
5.2.1.2. Manyetik Alan İçerisinde İçinden Akım Geçen İletkenin Durumu Manyetik alan içinde etkin uzunluğu "L" ve içerisinden geçen akımı "i" olan bir iletken
akı yoğunluğu B olan bir alan içerisinde kalırsa, iletken manyetik alan tarafından itilir.
İletkenin alana dik olma durumunda meydana gelen itme kuvvetinin büyüklüğü "Newton"
olarak F=B.i.L olur. Alan tarafından iletken üzerinde oluşturulan itme kuvvetinin yönü
iletkenin taşıdığı akımın yönüne bağlıdır. İletkende itme kuvveti olduğu sürece iletkende
bir hareket veya dönme olayı meydana gelir.
5.3. Röle Kullandığımız DC motor 12V-DC gerilimle çalıştığı için bu motoru tetiklemek için
5V’luk DC Röle kullandık. Aşağıda Röleler hakkında bilgi verilmektedir.
5.3.1 Röleler Hakkında Bilgi Röleler, elektromıknatıs palet ve kontaklar olmak üzere üç kısımdan
oluşur.Elektromıknatıs,demir nüve ve üzerine sarılmış bobinden meydana
gelir.Bobini,doğru akıma bağlanan rölelerde artık mıknatıslık nedeniyle paletin demir
nüveye yapışık kalması,nüvenin ön yüzüne konmuş küçük bir plasti pulla önlenir.Bobini
alternatif akıma bağlanan rölelerde,demir nüve saç plaketinden yapılır.Alternatif akımın
değer ve yön değiştirmesi,rölelerde titreşime neden olur.Bobini alternatif akıma bağlanan
bir rölenin titreşim yapması,demir nüvenin ön yüzünde açılmış oyuğa yerleştirilen bir bakır
halkayla önlenir.Demir nüve üzerinde bulunan bobin bir veya daha fazla sargıdan
oluşur.Röle bobininde birden fazla palet aracılığı ile açılır ve kapanırlar.Normal durumda
palet,yay veya yerçekimi nedeniyle,demir nüveden uzakta bulunur.Rölelerde normalde
46
açık ve normalde kapalı olmak üzere iki çeşit kontak vardır.Bu kontakların yapımında
gümüş,tungsten,paladyum metalleri ve bunların alaşımları kullanılır.
Başka bir deyişle röle’ler ufak yükler ile daha büyük yükler ile çalışan devreleri açıp
kapamak için birbirinden bağımsız yapılmış devrelerde denilebilir.En az 4 tane ucu
bulunmak zorundadır,piyasada genellikle 5 uclu röleler satılmaktadır.İki uc bobine
bağlıdır,diğer üç uctan ikisi sabit biri oynak bi kola bağlıdır,bu kol normalde uclardan
birine değdiği için iki uc iletimdedir doğal olarak son kalan kesimde olur,bobine elektrik
gediği zaman mıknatıslanan parça oynak ucu çeker ve kesimde olan diğer kısımla
birleştirir, artık iletimde olan uç kesime girer, diğer uç iletimdedir. Uygun şekilde
bağlayarak zil bile yapılabilir rölelerle tamamen mekanik bir anahtar gibi çalışırlar. Bu
nedenle yüksek akım ya da hassas sinyalleri en az kayıpla iletmek/engellemek için
birebirlerdir. Düşük güçte analog sinyalin iletimini kontrol etmek için ise 4066 entegresi
kullanılabilir.
Rölenin kontakları üzerinden fazla akım çekerse kontaklar ısınır ve ısındıkları için
bobinler birbirine kaynarlar ve böylece röle bir daha hiç açılmaz ve açılmadığı için normal
olan röle mekanik anahtarlama rölesine dönüşüyor. Birbiri ile görüşmemekte ısrar eden
telsizleri ikna maksatlı kullanılan cihazlardır. Kapsama alanının geniş olması bakımından
yüksek yerlere de konuşabilirler çalışma mantığı, A frekansından aldığı sinyali
güçlendirerek B frekansından yayınlamaktır. Modemin telefon hattını açıp kapatırken
çıkardığı sesin kaynağı röledir.
Röleler, elektromanyetik kuvvetle kontrol edilen elektromekanik anahtar ya da
anahtarlar grubu olarak ifade edilebilirler(Termik röleler hariç).Elektronik sanayinde
kullanılan röleler genellikle 5V - 48V arasında gerilimle çalışan,5mA - 150mA arasında
akım çeken bobin ve 0.5A - 70A arasında akıma dayanabilen kontaklara sahiptirler.AC
yada DC anahtarlama yapabilirler.
Şekil 5.7’de Röle ve transistör ile oluşturulan DC motorun tetikleme devresi
gösterilmektedir.
47
Şekil 5.7 Röle ve Transistör İle Oluşturulan Tetikleme Devresi
5.4. Transistör
Devrede kullanılan röleyi yerli akımla tetiklemek ve devrenin verimini
yükseltmekamacıyla röleyi transistör ile sürdük. Yukarıdaki Şekil 5.6’de tetikleme
devresinde transistor de görülmektedir.
Transistorün emetör ucuna 9V DC gerilim uygulayarak ve baz ucuna Pic’in ilgili
bacağını bağlayarak kolektör ucunu yukarıda özelliklerini anlattığımız 5V DC röleyi
sürmek için kullandık. Aşağıda kullandığımız BC547 transistörü hakkında bilgi
verilmektedir.
5.4.1. BC547 Transistörü
Transistörler elektroniğin ve bilgisayarın en temel elemanlarıdır. İnsanların yapı taşları
nasıl hücreler ise, transistörler de işlemcilerin yapı taşarlıdır. Tam çalışma prensipleri biraz
karışıktır. Bir NPN transistor ün BEYZ, EMİTÖR, KOLLEKTÖR adında üç tane bacağı
vardır. Dolayısıyla üç farklı bağlantı şekilleri vardır; Ortak emitör, ortak beyz, ortak
48
kolektör. Devrede kullanacağımız NPN tipi Bi-Polar transistördür. Projede tetikleme
devresinde kullandığımız transistör BC547 Transistörüdür.
5.5. LM7805 5 Volt Gerilim Düzenleyici
LM7805 yaptığımız proje 5V DC gerilim ile çalıştığı için ve bizim 5V DC gerilimi
sağlıklı bir şekilde elde etmemizi sağlayan bir regüle entegresidir. Aşağıda LM7805
hakkında açıklamalar bulunmaktadır.
5.5.1. LM7805 Nedir?
LM78XX serisi pozitif gerilim düzenleyicileri, elektronik elemanların güç
tüketimlerinin hızla azalmaya devam ettiği günümüzde, devre tasarımında sıklıkla
kullanılmaktadır. Ayrıca LM79XX serisi negatif gerilim düzenleyicileri de bulunmaktadır.
Bir LM7805 devresi, girişine uygulanan 15 Volt’luk gerilimi, 5 Volt’a düşürüp sabitlerken;
LM7905 devresi, aynı gerilim girişine uygulandığında bu gerilimi -5 Volt’a düşürmektedir.
Model olarak; 5, 6, 8, 9, 10, 12, 15, 18, 24 Volt çıkış gerilimi verebilen modeller
bulunmaktadır. Ayrıca LM117XX serisi gerilim düzenleyiciler 1.2 Volt’ tan 57 Volt’a
kadar çıkış gerilimi sağlayabilmektedirler.
Bu projede kullanılan gerilim düzenleyici modeli LM7805 modelidir. 3 bacağa sahip
olan devrede giriş gerilimi 5 Volt ile 24 Volt arası seçilebilmektedir. Soğutucu blok ile
devrenin ısınma problemine karşı önlem alınmakla birlikte; 24 Voltu aşan giriş gerilimi
değerlerinde, devre aşırı ısınma sorunu ile karşı karşıya kalmaktadır ve soğutucu blok
yeterli olamamaktadır. Şekil 5.8’da devrenin en üstteki bacağı, düzenlenmiş çıkış
bacağıdır. En alttaki bacak pozitif doğru gerilim girişi, ortadaki bacak ise toprağa veya 0
Volt gerilime bağlanması gereken giriştir.
49
Şekil 5.8 LM7805 Tümdevresi
5.6. HD44780 2x16 Likit Kristalli Ekran
HD44780 likit kristalli ekran; günlük yaşamda cep telefonlarında, beyaz eşyalarda,
güvenlik sistemlerinde ve birçok elektronik sistemde kullanılan ve kendi karakter hafızası
bulunan bir birimdir. 2X16; 2 satır ve 16 sütundan oluşan bir ekran anlamına gelmektedir.
Likit kristalli ekran 16 adet bağlantıya sahiptir. Bu bağlantılar aşağıda açıklanmıştır.
1. ve 2. bacaklar güç kaynağı hatları yani Vss ve Vdd' dir. Vdd bacağının pozitif
gerilime, Vss' nin de 0 V' a veya toprağa bağlanması gerekir. Likit kristalli ekran birimleri
veri kitapçıklarının çoğunda kaynak / besleme gerilimi 5V gösterilmesine rağmen, 6V ve
4.5V'luk beslemelerde de oldukça iyi çalışmaktadır. Hatta bazı ekran birimlerinde besleme
gerilimi 3V'a kadar düşmektedir. Bu nedenle ekran birimleri etkin ve ekonomik olarak pil
/ batarya ile beslemek de mümkündür. 3. bacak yani Vss, ekranın parlaklığını ayarlamaya
yarayan bir kontrol ucudur. Bu bacak değişken bir gerilim kaynağına veya besleme hatları
arasına bağlanan bir ayarlı direncin orta ucuna bağlanarak bu ayar yapılabilmektedir.
Ancak bazı likit kristalli ekran birimlerinin -7 V'a varan gerilimlere ihtiyaç duyduğu da
göz önüne alınırsa, en basit olarak bu bacağın 0V'a bağlanması en uygunudur. 4., 5. ve 6.
bacaklar komut kontrol bitleri olarak isimlendirilebilirler. Bunlardan 4. bacak yani RS
yazmaç seçme bitidir ve bu komut kontrol bacaklarının ilkini oluşturur. Bu hat düşük
(Lojik 0) yapıldığı durumda ekrana aktarılan veri bitleri komut olarak algılanır ve gerekli
işlem yerine getirilir. Bu durumda ekrandan okunan veri bitleri ise, ekranın durumu
50
hakkında bilgi verir. Bu hattın yüksek (Lojik 1) yapılması ile de, birime karakter veri
transferi veya alımı yapılacağı anlaşılır. Kısa ve basitçe özetlemek gerekirse, ekranda bir
karakter yazmak veya ekrandan bir karakter okumak için RS hattı yüksek, ekrana bir
komut yollamak veya ekranın durumu hakkında bilgi almak istersek RS hattını düşük
yapmamız gerekmektedir. 5. bacak yani R/W hattı, kısaca oku / yaz anlamına gelmektedir.
Eğer ekrana karakter veri transferi yapılacaksa veya bir komut yollanacaksa düşük,
karakter veri alımı yapılacaksa veya yazmaçlardan durum bilgisi okunacaksa yüksek
yapılır. 6. bacak yani E ise komut kontrol bitlerinin sonuncusunu oluşturur ve yetki biti
olarak isimlendirilebilir. Bu giriş, birim ve veri hatları arasında, komutların veya karakter
verilerinin, gerçek anlamda aktarımını başlatmak için kullanılır. Ekrana yazılırken, veri
aktarımı sadece bu işaretin düşen kenarında gerçekleşir. Bununla birlikte, ekrandan okuma
yapılırken, veri yükselen kenar hemen kısa bir süre sonra hazır olur ve işaret tekrar
düşünceye kadar hatta kalır. 7. ile 14. bacaklar arasındaki uçlar sekiz adet veri hattıdır.
Veri ekrana, ya 8 bit'lik tek bir byte olarak yada, içi 4 bit'lik nibble'lar olarak aktarılır veya
ekrandan okunur. Bu ikinci durumda, sadece üst dört veri hattı (D4' den D7' ye ) kullanılır.
Bu 4 bit modu, bir mikrodenetleyici kullanıldığında, daha az giriş / çıkış hattına gerek
olduğundan kullanışlıdır. 15. ve 16. bacaklar ise aydınlatma girişleridir. 15. bacak +5 Volt
gerilime, 16. bacak ise toprak hattına bağlandığında ekran ışıklı hale gelmektedir.
Projede kullanılan 2*16 lcd ekran şekil 5.9’de verilmektedir.
Şekil 5.9 Projede Kullanılan 2*16 Lcd Ekran
51
5.7. Tuş Takımı
Cep telefonlarındada sıklıkla gördüğümüz 3*4 boyutlarında yani kısaca 12 tuş bulunan
tuş takımını projede menü yönlendirmesi için tasarlanmış olup dışarıdan satın almak yerine
kendimiz yapmış bulunmaktayız. Çalışma mantığı ise şöyledir; 4 satır ve 3 sütundan
oluşan tuş takımında satırlar veri göndermekle ve sütunlarda veri almakla sorumludur.
Satırlar veri gönderdiği anda yani lojik-1 olduğunda sütunlardan hangisinin lojik-1
olduğunu denetleyen Pic bize basılı olan tuşun bilgisini bulmakta yardım etmektedir. Bunu
Pic’in çok hızlı olması ve kalibrasyon yeteneğinin yüksek olmasından dolayı denetleme
işlemlerinin çok verimli olmasına borçluyuz.
Aşağıda şekil 5.10’de proje için tasarlamış olduğumuz 3*4 tuş takımı verilmektedir.
Şekil 5.10 Proje İçin Tasarlanan 3*4 Tuş Takımı
6. DEVRE TASARIMI
Bu bölümde deniz sıvı seviye kontrolü ve akıllı dolum boşaltım sistemi projesindeki
alıcı ve verici taraftaki devrelerin nasıl tasarlandıkları açıklanacaktır. Anlatım 2 parça
halinde; alıcı kısım tasarımı ve verici kısım tasarımı olarak hazırlanmıştır.
6.1. Verici Taraf Devre Tasarımı
Verici kısım devresinde ATX-34 RF verici, PIC16F877, 5 cm aralıklı yerleştirilmiş tank
içerisinde 8 adet seviye probu, 4 MHz osilatör, LM7805 gerilim düzenleyici ve 17.3cm’lik
anten bulunmaktadır. Sıvı seviye probları tarafından algılanan seviye verisi, PIC içine
analog veri halinde alınmaktadır. Bu seviye bilgisi sayesinde sıvı miktarına bağlı olarak
akıllı dolum ve boşaltım algoritması yine Pic içerisinde yazılmıştır. Burada PIC içinde
bulunan kaydırmalı yazmaç ile seri hale getirilen veri, RF verici devresinin sayısal girişine
iletilmiştir. İletim 2400 baud hızında yapılmaktadır. Verici tanktaki doldurulan ve
boşaltılan miktarı göndermeden önce mutlaka uyandırma işareti göndererek alıcı RF
devresi ile anlaşma sağlamalıdır. Bu uyandırma işareti peş peşe gönderilmiş 1 ve 0
rakamları olmalıdır. A ifadesinin ikilik sistemdeki karşılığı 1010’dır. Peşpeşe 2 adet A
gönderilir. Bu işaretten sonra 5 bitlik 11111, ve 5 bitlik 00000 işaretleri ortama yayılır. Bu
işaretleri algılayan alıcı, veri almak için hazır duruma geçecektir.
Alıcının ön uyarma sinyallerinden sonra doldurulan ve boşaltılan miktar bilgilerini
alması, çok daha verimli olmaktadır. Yapılan deneyler süresince ön uyarma işareti
gönderilmediğinde bazı karmaşık harflerin ekranda görüldüğü gözlenmiştir. Bir nevi
filtreleme işlemi yapılmıştır. Uyandırma işareti yollamak ise veri gönderimi için mutlaka
gereklidir. Aksi takdirde gönderilen veri alıcı tarafından algılanamayacaktır.
Menüde görünen sıvı seviye görüntüleme depo doldurma ve depodan sıvı yükleme
komutlarının aktif hale gelebilmesi için I-But yardımı ile şifrelenmiş görüntüleme
çözülmüş olur ve sadece doğru tanımlanmış şifrelere sahip I-But’lar ile sisteme giriş hakkı
elde edilmiş olur.
Sıvı boşaltımı menüsü DC motorun vanayı mantıksal açma ve kapatması sonucunda
istenilen miktarda istenilen anda sıvı boşaltımı sağlamaktadır.
53
Aşağıda Şekil 6.1’de tasarladığımız devrenin simülasyon görüntüsü verici kısmın daha iyi
anlaşılmasında bize kolaylık sağlamaktadır.
Şekil 6.1 Verici Kısım Simülasyon Devresi
6.1.1. Verici Devresi Pic Basic Program Kodu
DEFINE LCD_DREG PORTC 'LCD data port
DEFINE LCD_DBIT 0 'LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTE 'LCD register select port
DEFINE LCD_RSBIT 0 'LCD register select bit
DEFINE LCD_EREG PORTE 'LCD enable port
DEFINE LCD_EBIT 1 'LCD enable bit
DEFINE LCD_RWREG PORTE 'LCD read/write port
DEFINE LCD_RWBIT 2 'LCD read/write bit
DEFINE LCD_BITS 4 'LCD bus size 4 or 8 KAC BİTDATA YOLU ONU GOSTERİR
DEFINE LCD_LINES 2 'Number lines on LCD
DEFINE LCD_COMMANDUS 2000
54
DEFINE LCD_DATAUS 50 'Data delay time in us
ADCON1=7
OPTION_REG.7=0
DEFINE HSER_BAUD 2400
LOW PORTE.2'R/W O A CEKİLİR
LCDOUT $FE,1
TRISD=%11111111
TRISB=%01110000
PORTD=1
PORTC.6=0
A VAR BYTE[8]
B VAR BYTE[2]
C VAR BYTE
MIKTAR VAR BYTE
SONUC VAR BYTE
TEMPP var byte
YUZDE var byte
TUS VAR BYTE
G VAR BYTE
G1 VAR BYTE
G=0
SATA VAR PORTB.0:SATB VAR PORTB.1:SATC VAR PORTB.2:SATD VAR
PORTB.3
SUTA VAR PORTB.4:SUTB VAR PORTB.5:SUTC VAR PORTB.6
LCDOUT $FE,$82,"SIVI SEVIYE"
LCDOUT $FE,$C2,"GOSTERGESI"
PAUSE 100
LCDOUT $FE,1
'----------------------------------ANA--------------------------------------------
ANA:
GOSUB TUSAL
G1=0
55
A=0
LCDOUT $FE,$80,"1.SEVIYE"
LCDOUT $FE,$88,"2DOLUM"
LCDOUT $FE,$C0,"3.YUKLEME"
IF TUS=1 THEN LCDOUT $FE,1:GOTO SEVIYE1
IF TUS=2 THEN LCDOUT $FE,1:GOTO DOLUM1
IF TUS=3 THEN LCDOUT $FE,1:GOTO YUKLEME1
GOTO ANA
'------------------------------ SEVİYE GÖRÜNTÜ KISMI---------------------
SEVIYE1:
GOSUB TUSAL
LCDOUT $FE,1,"I-BUT OKUTUNUZ"
HIGH PORTA.3
OWOUT PORTA.4,1,[$33]
PAUSE 100
OWIN PORTA.4,0,[A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7]]
IF A[0]=$01 AND A[1]=$AA AND A[2]=$0F AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$B1 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"GIRIS TAMAM"
PAUSE 300
SOUND PORTC.4,[119,30,0,13,119,30]
LOW PORTA.3
GOTO SEVIYE
ENDIF
IF A[0]=$01 AND A[1]=$0D AND A[2]=$71 AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$A7 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"SIFRE YANLIS"
PAUSE 1000
LCDOUT $FE,1
LCDOUT $FE,$83,"BU SIFRE"
LCDOUT $FE,$C5,"GECERSIZ"
56
SOUND PORTC.4,[119,30,0,13,119,30]
ENDIF
IF TUS=12 THEN GOTO ANA
GOTO SEVIYE1
SEVIYE:
LCDOUT $FE,1
GOSUB HESAP
GOSUB EKRAN
PAUSE 1000
IF YUZDE<=15 THEN
GOSUB UYARI
ENDIF
GOSUB TUSAL
IF TUS=12 THEN GOTO ANA
GOTO SEVIYE
UYARI:
GOSUB HESAP
SOUND PORTC.2,[110,5,120,10,125,5,127,10,0,2]
LCDOUT $FE,1
LCDOUT $FE,1,"DOLUM YAPINIZ"
LCDOUT $FE,$C0,"%",DEC3 YUZDE
SOUND PORTC.4,[110,5,120,10,125,5,127,10,0,2]
GOSUB TUSAL
IF TUS=12 THEN GOTO ANA
GOTO UYARI
EKRAN:
GOSUB HESAP
LCDOUT $FE,$81,"SIVI SEVIYESIII"
LCDOUT $FE,$C5,"% ",DEC3 YUZDE
RETURN
57
'--------------------------SEVİYE KISMI SONU------------------------------------
'----------------------TANK DOLDURMA DURUMUNDA----------------------
DOLUM1:
GOSUB TUSAL
LCDOUT $FE,1,"I-BUT OKUTUNUZ"
HIGH PORTA.3
OWOUT PORTA.4,1,[$33]
PAUSE 100
OWIN PORTA.4,0,[A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7]]
IF A[0]=$01 AND A[1]=$AA AND A[2]=$0F AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$B1 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"GIRIS TAMAM"
PAUSE 300
SOUND PORTC.4,[119,30,0,13,119,30]
LOW PORTA.3
GOTO DOLUM
ENDIF
IF A[0]=$01 AND A[1]=$0D AND A[2]=$71 AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$A7 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"SIFRE YANLIS"
PAUSE 1000
LCDOUT $FE,1
LCDOUT $FE,$83,"BU SIFRE"
LCDOUT $FE,$C5,"GECEERSIZ"
SOUND PORTC.4,[119,30,0,13,119,30]
ENDIF
IF TUS=12 THEN GOTO ANA
GOTO DOLUM1
DOLUM:
GOSUB TUSAL
58
GOSUB HESAP
G=YUZDE
LCDOUT $FE,$80,"DOLUM TUSUNA BASINIZ "
LCDOUT $FE,$C0,"TUS=1 "
IF TUS=1 THEN GOTO EKRAN3
IF TUS=12 THEN GOTO ANA
GOTO DOLUM
EKRAN3:
GOSUB HESAP
GOSUB TUSAL
LCDOUT $FE,1
LCDOUT $FE,1,"DEPONUZ DOLUYOR"
LCDOUT $FE,$C5,"% ",dec3 yuzde
PAUSE 100
LCDOUT,$FE,1
IF YUZDE>=090 THEN
GOTO TASMA
ENDIF
IF TUS=12 THEN GOTO GONDERIM
GOTO EKRAN3
TASMA:
GOSUB TUSAL
SOUND PORTC.2,[110,5,120,10,125,5,127,10,0,2]
LCDOUT $FE,1
LCDOUT $FE,1,"DEPONUZ TASIYOR"
LCDOUT $FE,$C3,"GIRISI KAPATIN"
IF TUS=12 THEN GOTO GONDERIM
GOTO TASMA
GONDERIM:
GOSUB HESAP
LCDOUT $FE,1
59
'----------VERİCİDEN GÖNDERİLEN DOLUM BİLGİSİ KISMI---------
C=0
PORTC.6=1
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
PAUSE 100
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
PAUSE 1000
G1=YUZDE-G
LCDOUT $FE,$C0,"ENES"
LCDOUT $FE,$C0,"GONDERILEN",DEC3 G1
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
PAUSE 100
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
PAUSE 1000
PORTC.6=0
'------------------------------RF VERİCİ KISMI SONU------------------------------
60
LCDOUT $FE,1
GOTO ANA
'------------------------DOLUM DURUMUNUN SONU-----------------------------
'-------------------TANKTAN SIVI BOŞALTIM DURUMU----------------------
YUKLEME1:
GOSUB TUSAL
LCDOUT $FE,1,"I-BUT OKUTUNUZ"
HIGH PORTA.3
OWOUT PORTA.4,1,[$33]
PAUSE 100
OWIN PORTA.4,0,[A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7]]
IF A[0]=$01 AND A[1]=$AA AND A[2]=$0F AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$B1 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"GIRIS TAMAM"
PAUSE 300
SOUND PORTC.4,[119,30,0,13,119,30]
LOW PORTA.3
GOTO YUKLEME
ENDIF
IF A[0]=$01 AND A[1]=$0D AND A[2]=$71 AND A[3]=$82 AND A[4]=$13 AND
A[5]=$00 AND A[6]=$00 AND A[7]=$A7 THEN
LCDOUT $FE,1
LCDOUT $FE,1,"SIFRE YANLIS"
PAUSE 1000
LCDOUT $FE,1
LCDOUT $FE,$83,"BU SIFRE"
LCDOUT $FE,$C5,"GECEERSIZ"
SOUND PORTC.4,[119,30,0,13,119,30]
ENDIF
IF TUS=12 THEN GOTO ANA
GOTO YUKLEME1
61
YUKLEME:
GOSUB HESAP1
LCDOUT $FE,1
LCDOUT $FE,$80,"YUKLENECEK MAX"
LCDOUT $FE,$C0,"MIKTAR=",DEC2 MIKTAR
PAUSE 1000
LCDOUT $FE,1
GOTO YUKLEME3
YUKLEME3:
GOSUB TUSAL
LCDOUT $FE,$80,"MIKTAR=",DEC2 MIKTAR
LCDOUT $FE,$C0,"1.ARTIR"," 3.AZALT"
IF TUS=1 THEN MIKTAR=MIKTAR+5
IF TUS=3 THEN MIKTAR=MIKTAR-5
IF MIKTAR=100 THEN MIKTAR=0
IF TUS=10 THEN LCDOUT $FE,1:GOTO YUKLEME2
IF TUS=12 THEN LCDOUT $FE,1:GOTO ANA
GOTO YUKLEME3
HESAP1:
GOSUB HESAP
MIKTAR=YUZDE
RETURN
YUKLEME2:
GOSUB TUSAL
IF MIKTAR<=YUZDE THEN
LCDOUT $FE,$80,"DEPO MIKTARI"
LCDOUT $FE,$C0,"YETERLI"
PAUSE 3000
LCDOUT $FE,1
GOTO VANA1
62
ELSE
LCDOUT $FE,$80,"DEPO MIKRARI"
LCDOUT $FE,$C0,"YETERSIZ"
PAUSE 1000
LCDOUT $FE,1
LCDOUT $FE,$80,"DEPOYU"
LCDOUT $FE,$C0,"DOLDURUN"
GOTO ANA
ENDIF
GOTO YUKLEME2
VANA1:
GOSUB TUSAL
LCDOUT $FE,1,"VANA ACILSINMI"
LCDOUT $FE,$C0,"1.EVET"
IF TUS=1 THEN
GOSUB TEST2
HIGH PORTA.0
LCDOUT $FE,1,"DOLUM BASLADI"
PAUSE 500
LCDOUT $FE,1
SONUC=YUZDE-MIKTAR
LCDOUT $FE,1,"SONUC=",DEC2 SONUC
GOTO VANA2
ENDIF
GOTO VANA1
VANA2:
GOSUB TUSAL
GOSUB HESAP
'-------VERİCİDEN GÖNDERİLEN BOŞALTIM BİLGİSİ KISMI-------
G1=0
63
PORTC.6=1
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
PAUSE 100
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
HSEROUT ["ENES",G1]
PAUSE 1000
C=MIKTAR
LCDOUT $FE,$C0,"GONDERILEN",DEC3 C
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
PAUSE 100
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT [REP$AA\5,REP$00\5,REP$FF\5]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
HSEROUT ["MEHMET",C]
PAUSE 1000
PORTC.6=0
'------------------------------RF VERİCİ KISMI SONU---------------------------
GOTO VANA
64
VANA:
LCDOUT $FE,1,"YÜKLENİYOR."
PAUSE 1000
LCDOUT $FE,1,"YÜKLENİYOR.."
PAUSE 1000
LCDOUT $FE,1,"YÜKLENİYOR..."
PAUSE 1000
LCDOUT $FE,1,"YÜKLENİYOR...."
PAUSE 1000
GOSUB HESAP
IF SONUC>=YUZDE THEN
LCDOUT $FE,1
LCDOUT $FE,1,"YUKLEME TAMAM"
LCDOUT $FE,$C0,"VANA KAPATILIYOR"
GOSUB TEST2
SOUND PORTC.4,[119,30,0,13,119,30]
LOW PORTA.0
LCDOUT $FE,1
LCDOUT $FE,1,"ANA MENUYE"
LCDOUT $FE,$C0,"DONULUYOR"
PAUSE 2000
GOTO ANA
ENDIF
IF TUS=12 THEN GOTO YUKLEME
GOTO VANA
TEST2:
HIGH PORTA.1
PAUSE 2500
LOW PORTA.1
RETURN
'----------------------------SIVI BOŞALTIM SONU--------------------------------
'-------------------------TUŞ TAKIMI HESAP KISMI---------------------------
65
TUSAL:
TUS=0
SATA=0:SATB=1:SATC=1:SATD=1
S1:IF SUTA=0 THEN TUS=1:GOTO S1
S2:IF SUTB=0 THEN TUS=2:GOTO S2
S3:IF SUTC=0 THEN TUS=3:GOTO S3
SATA=1:SATB=0:SATC=1:SATD=1
S4:IF SUTA=0 THEN TUS=4:GOTO S4
S5:IF SUTB=0 THEN TUS=5:GOTO S5
S6:IF SUTC=0 THEN TUS=6:GOTO S6
SATA=1:SATB=1:SATC=0:SATD=1
S7:IF SUTA=0 THEN TUS=7:GOTO S7
S8:IF SUTB=0 THEN TUS=8:GOTO S8
S9:IF SUTC=0 THEN TUS=9:GOTO S9
SATA=1:SATB=1:SATC=1:SATD=0
S10:IF SUTA=0 THEN TUS=10:GOTO S10
S11:IF SUTB=0 THEN TUS=11:GOTO S11
S12:IF SUTC=0 THEN TUS=12:GOTO S12
IF TUS<>0 THEN SOUND PORTC.4,[119,10,0,10,119,10]
RETURN
'-----------------------------TUŞ TAKIMI SONU--------------------------------------
'-----------------PROBLARDAN SEVİYE BİLGİSİ ALAN KISIM------------
HESAP:
IF PORTD.0=1 THEN YUZDE=15
IF PORTD.1=1 THEN YUZDE=25
IF PORTD.2=1 THEN YUZDE=35
IF PORTD.3=1 THEN YUZDE=50
IF PORTD.4=1 THEN YUZDE=65
66
IF PORTD.5=1 THEN YUZDE=75
IF PORTD.6=1 THEN YUZDE=90
IF PORTD.7=1 THEN YUZDE=100
RETURN
'---------------SEVİYE BİLGİSİ SONU------------------------------------------
6.2. Alıcı Kısım Devre Tasarımı
Alıcı kısım devrede; 16 satır 2 sütun ekran, ARX-34 RF alıcı devresi, PIC 16F877,
LM7805 gerilim düzenleyici devre, 17.3 cm anten, osilatörler ve temel devre
elemanları ( kapasite, direnç ) bulunmaktadır. Mikrodenetleyicinin C portuna ait 4 bacak
ile ekran veri bağlantıları ve diğer 2 bacak ile ekranın kontrol uçlarına ait bağlantılar
yapılmıştır. PIC’in 1. bacağı 10 KOhm’luk direnç ile artı beslemeye bağlanmıştır. Bu uç
reset ucudur. PIC’in 11. ve 32.bacakları artı beslemeye; 12. ve 31. bacakları devrenin
toprağına bağlanmıştır. PIC’in C portunun 7. bacağı sayısal veri girişi olarak ayarlanmıştır
ve alıcıdan gelen sayısal veriyi kabul etmektedir. Yazılımda bu bacak analog giriş olarak
ayarlanmıştır. Alınan bu analog veri PIC içindeki analog sayısal dönüştürücü yardımı ile
sayısal veriye çevrilip ekrana yollanmaktadır. LM7805 gerilim düzenleyici ile devrenin
besleme gerilimi +5 Volt olarak sabitlenmiştir. PIC için 4 MHz osilatör kullanılmıştır.
Vericinin yolladığı veriler anten sayesinde yakalanıp, alıcının sayısal çıkışından PIC’e
iletilmiştir. PIC bu veriyi ekrana yollayarak doldurulan ve boşaltılan sıvı miktarının
ekranda gösterilmesi işlemini tamamlamaktadır.
Aşağıda Şekil 6.2’de alıcı kısmın simülasyon devre tasarımı verilmektedir.
Şekil 6.2 Alıcı Kısmı Simülason Devresi
67
6.2.1. Alıcı Kısım Pic Basic Program Kodu
‘--------------------------------LCD GÖSTERGE TANIMLARI----------------------
DEFINE LCD_DREG PORTC 'LCD data port
DEFINE LCD_DBIT 0 'LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTE 'LCD register select port
DEFINE LCD_RSBIT 0 'LCD register select bit
DEFINE LCD_EREG PORTE 'LCD enable port
DEFINE LCD_EBIT 1 'LCD enable bit
DEFINE LCD_RWREG PORTE 'LCD read/write port
DEFINE LCD_RWBIT 2 'LCD read/write bit
DEFINE LCD_BITS 4 'LCD bus size 4 or 8 KAC BİTDATA YOLU ONU GOSTERİR
DEFINE LCD_LINES 2 'Number lines on LCD
DEFINE LCD_COMMANDUS 2000 'Command delay time
DEFINE LCD_DATAUS 50 'Data delay time in us
‘--------------------------------------LCD TANIM SONU------------------------------------
LOW PORTE.2 ' LCD YAZMA MODUNA GEÇİRİLDİ
PAUSE 100 ' LCD NİN AÇILMASI İÇİN 100 ms BEKLE
ADCON1 = 7 ' PORTA VE PORTE DİJİTAL YAPILDI
DEFINE HSER2_BAUD 2400
A VAR BYTE
B VAR BYTE
C VAR BYTE
D VAR BYTE
DOLAN VAR WORD
BOSALAN VAR WORD
DOLAN=0
BOSALAN=0
LCDOUT $FE,1
LCDOUT $FE,$C0,"KTU BITIRME"
PAUSE 1000
'----------------------ALICI KISIM PROGRAM KODLARI----------------------
68
TEKRAR:
HSERIN 10,TEKRAR1,[WAIT ("ENES"),A]
DOLAN=DOLAN+A
C=DOLAN/5
LCDOUT $FE,$80,"DOLAN=",DEC4 C
GOTO TEKRAR 'TEKRAR ETİKETİNE GİT.
TEKRAR1:
HSERIN 10,TEKRAR,[WAIT ("MEHMET"),B]
BOSALAN=BOSALAN+B
D=BOSALAN/5
LCDOUT $FE,$C0,"BOSALAN=",DEC4 D
GOTO TEKRAR1
END
'---------------------------------ALICI KISIM SONU---------------------------------
7.SONUÇLAR
Bu çalışmada sıvı seviye kontrolü, tank içerisinde sıvı miktarına bağlı olarak sıvı
dolumu ve sıvı boşaltımı yapılmıştır. Tüm bu işlemlerin I-Button sayesinde sadece sisteme
tanıtılan I-Buttonlar tarafından yürütülmesi sağlanmıştır. Sistemdeki doldurulan ve
boşaltılan sıvı miktarları kablosuz bağlantı ile başka bir sisteme gönderilmiş böylece diğer
sistemde de sıvı analizi yapılması sağlanmıştır. Bu süreç aşağıda maddeler halinde
gerçekleştirilmiştir.
1. Kontrol yazılımı geliştirilmiş.
2. Sistemin tasarımı yapılmıştır.
3. Tasarıma göre gerekli donanım tespit ve temin edilmiştir.
4. Şematik çizimleri yapılmıştır.
5. Donanımın baskı devresi üretilip montajı gerçekleştirilmiştir.
6. Sistem test edilmiştir.
Projenin tank haricindeki verici, alıcı devreleri ayrıca tankın vana kontrolünü sağlayan
motor ve bağlantıları aşağıda şekil 7.1’de gösterilmektedir.
Şekil 7.1 Projenin Yaklaşık Tamamlanmış Hali
8. ÖNERİLER
Devrede vanayı açmak ve kapamak için kullanılan Dc motor yerine elektronik valfler
kullanılabilir. İsteğe bağlı olarak depoya sıvı girişi, sıvı boşaltımı gibi Dc motor yada
valfler yardımıyla yapılabilir. Kablosuz iletişimi daha kusursuz olması için daha farklı
çözüm ve yöntemlere gidilebilir. Bunlara rağmen çoğu endüstriyel firmaların rahatlıkla
kullanabileceği bir sistemdir.
9.KAYNAKLAR
[1] Microchip Technology Incorporated., PIC16F87X Data Sheet 28/40-Pin 8-Bit CMOS
[2] FLASH Microcontrollers, USA, 2001.
[3] 5. Bakla Ö.F. , " Tom (Touch On Memory- Dokunmatik Bellek Veya İbuton) İle
Sınıf Kontrolü" , Gazi Üniversitesi Fen Bilimleri Enstitüsü , Ankara,
[4] Ak, Nursel, PIC programlama, İstanbul, 2007.
[5] Altınbaşak, Orhan, Mikrodenetleyiciler PIC Programlama, İstanbul, 2008.
[6] Yard. Doç. Demir ÖNER “Bilgisayar Ağları” (Papatya Yayın Evi) 2004
[7] Prof.Dr. Erhan Akın, Yrd. Doc. Dr. Ahmet Orhan “Elektrik Makinalarının Temelleri”
(Çağlayan Kitabevi) 2007
10.ÖZGEÇMİŞ
Enes YILDIZ 1988’de Ankara’da doğdu. İlk ve Ortaöğrenimini Hazar İlköğretim
Okulunda, Lise öğrenimini Özel Ankara Aziziye Lisesinde yaptı. 2005 yılında
Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği
Bölümü’nde Lisans Programı’na başladı. Yabancı dil olarak İngilizce bilmektedir.
Mehmet SANDIKCI 1987’de Afyon’da doğdu. İlk ve Ortaöğrenimini İstanbul
Velibaba İlköğretim okulunda ve lise öğrenimini Kartal Yakacık Lisesi’nde yaptı. 2005
yılında Karadeniz Teknik Üniversitesi, Mühendislik Fakültesi, Elektrik-Elektronik
Mühendisliği Bölümü’nde Lisans Programı’na başladı. Yabancı dil olarak İngilizce
bilmektedir.