Professional Documents
Culture Documents
Ihsan Cihan Dai
Ihsan Cihan Dai
BİTİRME PROJESİ
Projeyi Yöneten
Yrd. Doç. Dr. Zeki KIRAL
Ocak, 2007
İZMİR
TEZ SINAV SONUÇ FORMU
ONAY
TEŞEKKÜR
Ayrıca, hazırladığım bu projenin başından sonuna kadar bana destek olan ve yardımlarını
esirgemeyen, tüm aşamalarda fikirlerini ve önerilerini paylaşan bütün arkadaşlarıma, benim
bu günlere gelmemi sağlayan aileme teşekkürlerimi bir borç bilirim.
Otomasyon, hayatımızın birçok alanında önemli bir yer edinmiştir. Özellikle günümüzde
teknolojinin hayatımıza hızla girmesiyle birlikte, otomatik kontrollü sistemlerin kullanımı
hızla yaygınlaşmıştır.
İçindekiler……………………………………………………………………..……………V
Tablo Listesi…………………………………………………………………….………..VII
Şekil Listesi………………………………………………………………………………VIII
Bölüm Bir
SİSTEM ELEMANLARININ TANITIMI
Sayfa
1. Giriş……………………………………………………………………………….1
1.1 Termistör……………………..………………………………………………... 1
1.1.1 Termistör Yapısı……………………………………………...……..…1
1.1.2 Termistör Çeşitleri………………………………………..……………1
1.1.2.1 NTC…………………………………………………………………1
1.1.2.2 PTC…………………………….……………………………………1
1.1.3 Termistörün Özellikleri…………………………………….……….….2
1.1.4 Termistör Sıcaklığının Hesaplanması………………………………….3
1.2 16 F 877 Micro Denetleyici (PIC)…………………….……………………….4
1.2.1 Pic 16 F877 Portları ve Fonksiyonları…………………………………7
1.2.1.1 Port A………………………………………………………………7
1.2.1.2 Port B………………………………………………………………7
1.2.1.3 Port C………………………………………………………………8
1.2.1.4 Port D………………………………………………………………8
1.2.1.5 Port E………………………………………………………………8
1.2.2 PIC 16 F877 Özel Fonksiyonları………...……………………………..9
1.2.2.1 Analog / Sayısal Çevirici Modülü…………………………………9
1.2.2.2 Capture / Compare ve PMW Modülü………………………….…..9
1.3 LCD Ekran…………………………………………………………………...10
1.4 Op-amp (LM 741)…………………………………………………………….11
V
Bölüm İki
SICAKLIK KONTROL SİSTEMİ
2. Giriş……………………………………………………………………………13
Bölüm Üç
SONUÇ
3. Değerlendirme…………………………………………………………………15
Kaynaklar......................................................................................................................16
Ekler..............................................................................................................................17
VI
TABLO LİSTESİ
Sayfa
Tablo 1.1 PIC 16 F 877’nin özellikleri………………………………….………5
Tablo 1.2 Osilatör Çeşitleri……………………………………………………………..17
Tablo 1.3 Osilatör Tip ve Frekansına Göre Kondansatör Seçimi………………………18
VII
ŞEKİL LİSTESİ
Sayfa
Şekil 1.1 Termistörün Sıcaklık Direnç Değişimi………………………………………..2
Şekil 1.2 Termistör……………………………………………………………………....2
Şekil 1.3 Termistörün Sıcaklık Direnç Değişimi………………………………………..4
Şekil 1.4 16 F 877’ nin bacak bağlantısı………………………………………….……..6
Şekil 1.5 LCD Ekran………………………………………………………………...10
Şekil 1.6 Op-amp………………………………………………………………………..11
Şekil 1.7 LM741 Op-amp……………………………………………………………….11
Şekil 1.8 Op-amp Bağlantıları…………………………..………………………………12
Şekil 1.9 Osilatör Bağlantı Şeması……………………………………….……………..18
Şekil 2.1 Sıcaklık Kontrol Sistemi Devre Şeması………………………………………13
Şekil 2.2 Sıcaklık Kontrol Devresinin Görünüşü……………………………………….14
VIII
BÖLÜM BİR
1.Giriş:
1.1. Termistör
Termistör, ısı ile iç direncini değiştiren bir direnç tipidir. Aynen foto dirençlerde
olduğu gibi termistör de bünyesine uygulanan ısıya göre direncini değiştirir.
Termistörler ucuz ve de kolayca uyum sağlayabilen algılayıcılardır. Termisörler
genelde çok karmaşık olmayan, daha basit devrelerde kullanılmaktadır. Çok yüksek
sıcaklıklarda kullanılamazlar. Termistörler hassas dirençlerdir[1].
Negatif ısı katsayılı termistördür. Isındıkça direnci azalır, soğudukça direnci artar.
Pozitif ısı katsayılı termistördür. Isındıkça direnci artar, soğudukca direnci azalır.
1
1.1.3. Termistörün Özellikleri
2
1.1.4. Termistör Sıcaklığının Hesaplanması
Burada herhangi bir termistörün sıcaklığa bağlı olarak değişim grafiğine bakarsak;
T (oC) R (Ω,Ohm)
0 16,330
25 5000
50 1801
A = 0.001284
B = 2.364x 10-4
C = 9.304x 10-8
3
Böylece bu değerleri kullanarak, bu termistörün sıcaklığa bağlı direncini belirleyebiliriz.
16 F 877 , 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.
4
Tablo 1.1 PIC 16 F 877’nin özellikleri
Özellikleri PIC16F877
Çalışma hızı DC – 20 Mhz
Program belleği 8Kx14 word Flash ROM
EEPROM Veri belleği 256 byte
Kullanıcı RAM 368x8 byte
Giriş/Çıkış port sayısı 33
Timer Timer0,Timer1,Timer2
A/D çevirici 8 kanal 10 bit
Capture/Comp./PWM 16 bit capture
16 bit compare
10 bit PWM çözünürlük
Seri çevresel arayüz SPI(Master) ve I2C (Master/Slave)
modunda SPI portu
(senkron seri port)
Paralel slave port 8 bit, harici RD, WR ve CS kontrollü
USART/SCI 9 bit adresli
Interrupt kaynağı sayısı 14
5
Şekil 1.4 16 F 877’ nin Bacak Bağlantısı
PIC 16F877 üstteki şekilden de görüldüğü üzere kırk (40) bacaklı bir işlemcidir ve
üstteki şekilde her bir bacağın adı ve bağlantısı yazmaktadır. Bacaklar kendi aralarında Port
adı verilen gruplara ayrılmışlardır. Her bir Port’un kendine has özellikleri vardır.
6
1.2.1. PIC 16F877 Portları ve Fonksiyonları
1.2.1.1 Port A
Her bir biti bağımsız olarak giriş veya çıkış olarak tanımlanabilmektedir. 6 bit
genişliğindedir (F84’de 5 bittir). RA0, RA1, RA2, RA3 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/D çevirici olarak
kullanılamazlar). İlgili yazmaçlar ve adresleri aşağıdaki gibidir [5].
PORTA 0x05
TRISA 0x85 ; giriş/çıkış belirleme yazmacı
ADCON1 0x9F ; RA portlarının A/D , referans gerilimi veya sayısal giriş/çıkış
olarak seçiminde kullanılır.
İşlemciye ilk defa gerilim uygulandığında RA4 hariç diğer beş PORTA biti A/D
çeviricidir. Eğer RA portunun bazı bitlerini sayısal giriş/çıkış olarak kullanmak istenirse
ADCON1 yazmacında değişiklik yapmak gerekmektedir.
1.2.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 (weak pull-up).
Bu özellik varsayılan olarak etkin değildir. Ancak OPTION yazmacının 7.bitini 0 yaparak B
portunun bu özelliğini etkinleştirilebilmektedir.
7
1.2.1.3 Port C
Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit
genişliğindedir. SPI, USART, Capture/Compare ve PWM gibi özel fonksiyonlar, ilgili
yazmaçların ayarlanmasıyla bu porttan yürütülmektedir. İlgili yazmaçlar ve adresleri
aşağıdaki gibidir.
PORTC 0x07
TRISC 0x87 ; giriş/çıkış belirleme yazmacı
1.2.1.4 Port D
Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit
genişliğindedir. Bütün 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 mikro işlemci bus’ına bağlanabilmektedir.
PORTD 0x08
TRISD 0x88 ; giriş/çıkış belirleme yazmacı
TRISE 0x89
1.2.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 PORTD parallel
slave port olarak konfigüre edilirse, RE0, RE1 ve RE2 bacakları PORTD’nin bağlandığı
mikro işlemci bus’ında sırasıyla READ, WRITE ve CHIP SELECT kontrol girişleri olarak
kullanılır. Bunun için TRISE uygun biçimde ayarlanmalıdır. İlgili yazmaçlar ve adresleri
aşağıdaki gibidir.
PORTE 0x09
TRISE 0x89 ; giriş/çıkış belirleme yazmacı
ADCON1 0x9F ; RE portlarının A/D veya sayısal giriş/çıkış olarak seçiminde
kullanılır.
8
İşlemciye ilk defa gerilim uygulandığında üç PORTE biti de A/D çeviricidir. Eğer RE
portunun bazı bitlerini sayısal giriş/çıkış olarak kullanılmak istenirse ADCON1 yazmacında
değişiklik yapmak gerekmektedir.
A/D modülü 16C7x ailesinden farklı olarak 10 bittir. Toplam 8 A/D kanal vardır.
F877’nin güzel bir özelliği de işlemci SLEEP modundayken bile A/D çeviricinin geri planda
çalışmasıdır. A/D kanalları için RA4 hariç diğer RA portlarını ve RE portlarını
kullanabilirsiniz. Aşağıdaki yazmaçlar konfigürasyon ve sonuçta kullanılmaktadır.
9
PWM modundaysa RC2/CCP1 bacağı 10 bit çözünürlükte darbe genişlik modülasyonlu
bir sinyal üretecek şekilde konfigüre edilebilir. PR2 yazmacı darbe genişlik periyodunun
tayininde kulanılmaktadır.
CCPR1H 0x16 ; Yakalama/karşılaştırma yazmacı (High register)
CCPR1L 0x15 ; Yakalama/karşılaştırma yazmacı (Low register)
CCP1CON 0x17 ; kontrol yazmacı
PR2 0x92 ; PWM çıkış yazmacı
TMR1L 0x0E ; TMR1 yazmacı (High register)
TMR1H 0x0F ; TMR1 yazmacı (Low register)
10
1.4 Op-amp (LM 741)
11
Şekil 1.8’ de LM741 op-amp’ındaki bağlantılar görülmektedir.
12
BÖLÜM İKİ
2. Giriş
Bölüm 1’de kısa tanıtımları verilen devre elemanları kullanılarak bir sıcaklık kontrol
devresi tasarlanmış ve üretilmiştir. Kontrol sistemi devre şeması Şekil 2.1’de verilmiştir.
13
Geliştirilen sıcaklık kontrol devresindeki temel eleman PIC16F877’dir. Bu işlemci
geliştirilen sistem için programlanmıştır. Kontrol devresi için geliştirilen PIC programı
Ek’de verilmiştir. Geliştirilen sıcaklık kontrol devresinin görüntüleri Şekil 2.2’de verilmiştir.
14
BÖLÜM ÜÇ
SONUÇ
3. Değerlendirme
Proje kapsamında geliştirilen kontrol devresi, endüstriyel uygulamalar için tekrar gözden
geçirilip, daha profesyonel hale getirilebilir.
15
Kaynaklar
[2] ALTINBAŞAK O., PicBasic Pro ile Pic Programlama 2. baskı, Altaş Yayıncılık,
İstanbul, TÜRKİYE, 2004.
16
EKLER
17
Tablo 1.3. Osilatör Tip ve Frekansına Göre Kondansatör Seçimi
OSİLATÖR TİPİ FREKANS KONDANSATÖR
LP 32KHz 33-68pF
200 KHz 15-47pF
100KHz 47-100pF
XT 500KHz 20-68pF
1MHz 15-68 pF
2MHz 15-47 pF
4MHz 15-33 pF
HS 8MHz 15-47 pF
20MHz 15-47 Pf
18
Ek-2 Sistem için kullanılan program komutları
Program, Micro Code Studio ile yazılmıştır, Icprog ile PIC ‘e yüklenmiştir.
****************************************************************
'* Name : mikdoislemci ile sicaklik kontrolu.BAS *
'* Author : [powered by icihandai ] *
'* Notice : Copyright (c) 2006 [set under view...options] *
'* : All Rights Reserved *
'* Date : 10.01.2007 *
'* Version : 1.0 *
'* proje : ihsan cihan dai *
'* danisman: Yrd. Doc. Zeki KIRAL *
'****************************************************************
'degiskenler
TERM VAR WORD
TRISA=%11111111
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000
PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0
19
'’LCD TANIMLAMALARI
DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
ADCON1=%10000010
'’ANALOG GIRISLER PORTA.0 VE PORTA.1 SECILDI.
INCLUDE "modedefs.bas"
START:
ADCIN 1,TERM
'’serout portb.7,N9600,[#TERM,13,10]
'’istenildiginde yukaridaki komut kullanilarak seri porttan bilgi okunabilir
20
LCDOUT $FE, 1, "termistor "
LCDOUT $FE, $C0, #TERM
PAUSE 300
pause 500
endif
goto start
end
21
Ek-3 Kulanılan Komutlar
Goto Komutu
Programın akışı etiket ile belirlenen yerdeki komuttan itibaren devam eder[2].
Kullanılışı: GOTO Etiket
End Komutu
Programın çalışmasını durdurup düşük güç moduna geçmek için kullanılır. Tüm pinlerin
lojik seviyesi o andaki değerde kalır. End komutu, sleep komutunun bir döngü içerisinde
devamlı olarak çalıştırılması prensibine göre çalışır.
Her programın sonunda END, STOP, GOTO komutu yer almalıdır. Aksi halde programın
bitmesi gereken adresten sonra çalışmaya devam etmesi engellenemez.
Low Komutu
Belirlenen bir pini (low=düşük) "OV" yapar. Pin otomatik olarak çıkış olur. Pin 0-15
arasında bir sabit veya 0-15 sayılarını içeren değişken (örn. BO) ya da pin adı PORTA)
olabilir.
High Komutu
Belirlenen bir pin'i (high=yüksek) "5V" yapar. Pin otomatik olarak çıkış olur. 0-15
arasında sabit bir sayı, 0-15 arasındaki sayıları içeren bir değişken (örn: B0) veya bir pin adi
(örn: PORTA.O) olabilir.
If … Then Komutu
IF ... THEN karşılaştırılan ifadelerin doğru veya yanlış oluşunu değerlendirerek, farklı
işlemler gerçekleştirmek için kullanılır. Karşılaştırma sonucu doğruysa THEN' den sonraki
22
komut çalıştırılır. Karşılaştırma sonucu yanlışsa THEN' den sonraki komut çalıştırılmadan bir
sonraki komuta geçer. Karşılaştırma ifadesinin olduğu yerdeki sayı sıfırsa yanlış olarak
değerlendirilir. Diğer tüm sayılar doğru olarak değerlendirilir. Tüm karşılaştırma işaretsizdir,
çünkü PicBasic Pro sadece işaretsiz sayıları destekler.
IF ... THEN deyiminin bir kullanış biçimi de etiket kullanarak program akışını
değiştirme şeklindedir. Karşılaştırma doğruysa program akışı THEN' den sonra yazılan
etikete dallanır. Yanlışsa THEN' den sonraki komuttan devam eder.
IF ... THEN' in başka bir kullanış biçimi de THEN' den sonra bir grup komut
çalıştırılacak olduğu zaman kullanılır. Bu durumda grup halinde çalışacak olan deyimlerden
sonra ELSE veya ENDIF yazılmalıdır.
Kullanılışı:
IF Karşılaştırma { AND/OR Karşılaştırma … } THEN Etiket
veya
IF Karşılaştırma { AND/OR Karşılaştırma … } THEN
Deyimler…
ELSE
Deyimler…
ENDIF
Pause
Programı süre parametresi ile belirlenen milisaniye süresince durdurur. Süre 16 bittir, bu
nedenle bir gecikme süresi 65535 milisaniye olabilir. Diğer gecikme komutlarında (NAP ve
SLEEP) olduğu gibi mikro-denetleyiciyi düşük güç moduna sokmaz. PAUSE komutu
çalışınca diğerlerine göre daha fazla güç harcar, ancak süre diğerlerine göre daha hassastır.
PAUSE 4MHz lik osilatör frekansının kullanıldığını varsayar. Eğer osilatör 4MHz den
farklıysa DEFINE OSC komutu ile bu frekans değiştirilir.
23
Ek-4 Termistörün Sağlamlık Kontrolü
Ohm metre X 100 konumuna alınır ve uçlar yön farketmeksizin termistöre bağlanır ve
termistör ısıtılır. Eğer termistör PTC ise direnci düşer, NTC ise direnci azalır. Bu şekilde
davranan bir termistör sağlam demektir.
24