LİSANS BİTİRME PROJESİ PIC ile DARBE SAYICI TASARIMI

advertisement
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
LİSANS BİTİRME PROJESİ
PIC ile DARBE SAYICI
TASARIMI
Hazırlayan
Uygar Sezer
Danışman
Yrd.Doç.Dr. Ayten Atasoy
Mayıs 2012
TRABZON
I
II
T.C.
KARADENİZ TEKNİK ÜNİVERSİTESİ
Mühendislik Fakültesi
Elektrik-Elektronik Mühendisliği Bölümü
LİSANS BİTİRME PROJESİ
PIC ile DARBE SAYICI
TASARIMI
Hazırlayan
Uygar Sezer
Danışman
Yrd.Doç.Dr. Ayten Atasoy
Mayıs 2012
TRABZON
III
IV
LİSANS BİTİRME PROJESİ ONAY FORMU
Uygar Sezer tarafından Yrd.Doç.Dr. Ayten Atasoy yönetiminde hazırlanan “PIC ile
Sayıcı Devre Tasarımı” başlıklı lisans bitirme projesi tarafımızdan incelenmiş,
kapsamı ve niteliği açısından bir Lisans Bitirme Projesi olarak kabul edilmiştir.
Danışman
: Yrd.Doç.Dr. Ayten Atasoy
………………………………
Jüri Üyesi 1
: Öğr.Gör. Cahit Altan
………………………………
Jüri Üyesi 2
: Yrd.Doç.Dr. Yusuf Sevim
………………………………
Bölüm Başkanı
: Prof.Dr. İsmail H. Altaş
………………………………
V
VI
ÖNSÖZ
Bu tez çalışmasında analog-dijital çevirici deney düzeneğinin ara elemanı olan darbe sayıcı
kısmının PIC kullanılarak gerçeklenmesi sağlanmıştır ve analog dijital çeviricisinde
kullanılan ara elemanlar ve işlemler üzerinde durulmuştur.
Bu çalışmada; tecrübelerinden ve bilgilerinden yararlandığım başta değerli tez hocam Yrd.
Doç. Dr. Ayten Atasoy’a ve Öğr.Gör. Cahit Altan’a bu günlere gelmemde her türlü
desteklerini benden esirgemeyen ve varlıklarından her zaman gurur duyduğum aileme,
ayrıca çalışmalarım sırasında sürekli destek olan Öğr.Gör.Oğuzhan Çakır hocama teşekkür
ederim.
Mayıs 2012
Uygar Sezer
VII
VIII
İÇİNDEKİLER
Lisans Bitirme Projesi Onay Formu
Önsöz
İçindekiler
Özet
Şekiller Dizini
V
VII
IX
XI
XIV
1. GİRİŞ ................................................................................................................................. 1
2.ANALOG DİJİTAL ÇEVİRİCİLER ................................................................................. 2
2.1. ADC Çalışma Prensibi ............................................................................................... 2
2.2.Paralel Tip ADC .......................................................................................................... 3
2.3.Sayma Yöntemiyle Analog-Dijital Çevirici ................................................................ 4
2.4.Analog-Dijital Çevirici Entegreleri ............................................................................. 5
3.İŞLEMSEL YÜKSELTEÇLER ......................................................................................... 7
3.1.İşlemsel Yükselteçlerin Genel Özellikleri ................................................................... 7
3.2. İşlemsel Yükselteçlerin Kullanım Alanları ................................................................ 9
4.DENEY DÜZENEĞİNDE KULLANILAN DİĞER ELEMANLAR ............................. 10
4.1.Diyotlar ...................................................................................................................... 10
4.2.555 Entegre Elemanı ................................................................................................. 11
4.3.PIC Hakkında ............................................................................................................ 12
5.SİSTEM TASARIM AŞAMALARI ................................................................................ 14
SONUÇ............................................................................................................................... 20
KAYNAKLAR
EK-1
ÖZGEÇMİŞ
IX
X
ÖZET
20.yüzyılın son çeyreğinden itibaren sayısal ölçme tekniği sanayide sıklıkla kullanılmış.
Ana sebeplerden biride seri üretimde otomasyonun önemli bir yer tutmasıdır. Son
zamanlarda üretim, sanayi kuruluşlarında bilgisayarlı otomasyonla kontrol edilmektedir.
Otomasyonun en önemli parametrelerinden biriside Analog-Dijital çeviricilerdir.Bu tez
çalışmasında ise Analog-Dijital çevirici deney düzeneği elemanlarının kısa bir incelemesi
yapılmış olup, Analog-Dijital çevirici deney düzeneğinin ara elemanlarından darbe sayıcı
sistemin PIC16F84 işlemcisi kullanılarak tasarımı gerçeklenmiştir.
Anahtar kelimeler: Analog-Dijital çevirici, PIC
XI
XII
ABSTRACT
Since the last quarter of the twentieth century and the constant encouragement of a
measuring technique is used frequently in industry.One of the main reasons I have an
important role of automation in mass production. Recently, production, manufacturing
industries are controlled by computerized automation. One of the most important
parameters of automation is Analog-to-digital converters In this thesis study; AnalogDigital converter, a brief review of the experimental apparatus is made of elements. Search
for Analog-Digital converter experimental apparatus design elements are implemented
using a pulse counter, the PIC16F84 processor system.
XIII
Şekiller Dizini
Şekil 2.1. Analog-Dijital Dönüşüm Aşaması
2
Şekil 2.2. Analog-Dijital dönüşüm aşaması grafikleri
3
Şekil 2.3. Paralel Analog-Dijital çevirici
4
Şekil 2.4. Sayma Yöntemiyle Analog-Dijital Çevirici
5
Şekil 2.5. ADC0800 çevirici entegre devresi
6
Şekil 2.6. ADC0804 entegre devresi
6
Şekil 3.1. Temel İşlemsel Yükselteç Sembolü
7
Şekil 3.2. Offset gerilimi sıfırlama
8
Şekil 3.3. İşlemsel yükselteç ile gerçekleştirilen türev ve integral alıcı devre grafikleri
9
Şekil 4.1. Çeşitli diyot türleri
10
Şekil 4.2. 555 Zamanlayıcı entegresinin bacak bağlantısı
12
Şekil 4.3. PIC16F84 pin diyagramı
13
Şekil 5.1. DC gerilim ile testeredişi
14
Şekil 5.2. Zaman üzerinden dönüşüm devresi
15
Şekil 5.3. Tasarımı yapılan devre konumu
16
Şekil 5.4. Sayıcı devrenin şematiği
17
Şekil 5.5 Devrenin PCB çıktısı
18
Şekil 5.6. Sayıcı devre test aşaması
19
XIV
XV
1. GİRİŞ
20.yüzyılın son çeyreğinden itibaren sayısal ölçme tekniği sanayide sıklıkla
kullanılmış ve sürekli teşvik edilir bir hale gelmiştir. Ana sebeplerden biride seri üretimde
otomasyonun önemli bir yer tutmasıdır. Son zamanlarda üretim, sanayi kuruluşlarında
bilgisayarlı otomasyonla kontrol edilmektedir. Şayet birkaç örnek verecek olursak eğer,
boya fabrikasında ısıtma kazanının sıcaklık ayarı otomatik bir şekilde yapılmaktadır.
Bilgisayar derece ayarını yapabilmesi için kazanın ısısını sensörler vasıtasıyla ölçmesi
gerekir. Sıcaklık ölçümü teknik olarak iki farklı yöntemle yapılır.
a-Bir termistörün sıcaklıkla direncinin değişmesinden yararlanarak,
b-Termokupler gibi elemanlar vasıtasıyla
Termo elemanların vermiş olduğu gerilim veya termistörün direncindeki değişim
değerleri birer analog büyüklüklerdir. Bu analog verilerin bilgisayara analog olarak
gönderilmeleri hat boyunca meydana gelecek gerilim düşümleri ve dış etkenler sebebiyle
sakıncalıdır. Değerler değişmiş olarak ana sisteme ulaşacaklarından sağlıklı sonuçlar elde
edilemez ve bir takım aksaklıklar meydana gelebilir. Ayrıca sisteme gelen büyüklüklerin
bilgisayar tarafından anlam ifade edebilmesi için analog büyüklüğün sayısal duruma
dönüştürülmesi gereklidir. Dijital veriler gürültüden daha az etkilendiklerinden dolayı,
analog verilere göre daha az hata oranı ile iletilirler. Bu sebepten dolayı ölçülen
büyüklüklerin ilk ölçüldüğü yerden dijitale çevrilerek iletilmesi daha iyidir. Ölçülen
büyüklüklerin bazıları direkt olarak dijital olarak ölçülmektedir.(Açı, uzunluk). Diğerleri
ise dönüştürücüler yardımıyla ilk olarak akım veya gerilime dönüştürülürler(Sıcaklık,
kuvvet).
Elde edilen akım veya gerilimler Analog-Dijital çeviriciler aracılığıyla dijital forma
getirilirler. Bu akım veya gerilim büyüklüklerinin analog formdan dijital forma çevrilmesi
üç büyüklük üzerinden yapılmaktadır. (Genlik, Frekans, Zaman)
1
2.ANALOG DİGİTAL ÇEVİRİCİLER
Bilgisayar ve dijital olarak çalışan sitemler lojik mantıkla(1 ve 0) çalışmaktadırlar.
Binary sistemlerde 1’ler ve 0’lar analog sistemlerde herhangi bir anlam ifade etmezler.
Analog sistemler geniş bir yelpaze sahiptirler, daha doğrusu gerilim çalışma aralıkları
oldukça geniştir. Şayet örnek verecek olursak strain gauge kullanarak yapmış olduğumuz
ölçümlerde veya sensör kullanarak yaptığımız ısı, ışık, sıcaklık ölçümlerinde, sensörler
meydana gelen fiziksel değişiklikleri algılar ve bunları gerilim ve akım değerlerine
dönüştürürler. Fakat bu değerlerin bizim için anlamlı olabilmesi için belirli referanslarda
bir ölçü aleti ile tanımlanması gerekmektedir. Ölçü aleti kullandığımız vakit meydana
gelen değişimleri anlamlı bir sayılar kümesine dönüştüren Analog-Dijital çeviriciler
vasıtasıyla onları ikili olarak ifade edebiliriz. Bundan sonraki aşamada gerekli kodlayıcılar
kullanılarak onluk sayı (decimal) sistemine çevirebiliriz. Isı, ışık sıcaklık gibi ortamın
fiziksel değişiklerini ölçen transdüser, sensörler gerilim veya akım büyüklüklerini analog
çıkış olarak vermektedirler. Analog çıkışlar ise bilgisayar için herhangi bir anlam ifade
etmemektedir, bundan dolayı bu analog işaretleri dijital işaretlere dönüştürme işlemini
yapan entegre devrelere ADC adı verilmektedir.
2.1. ADC Çalışma Prensibi
Analog sinyal dijital sinyale dönüştürürken belli zaman aralıklarında örnekleme
olmalıdır, herhangi bir referans gerilimi üzerinden örneklenen işaret için bir dijital kod
atanır, sonrasındaysa kuantalayıcı ve kodlayıcıda kullanılarak işlemler tamamlanmış
olmaktadır. [1] Aşağıdaki Şekil 2.1. de
tamamıyla sistem, ana hatlarıyla ifade
edilmektedir.
ANALOG-İŞARET
ÖRNEKLEYİCİ
KUANTALAYICI
KODLAYICI
Şekil 2.1. Analog-Dijital Dönüşüm Aşaması
2
DİGİTAL-İŞARET
Analog sinyaller sürekli sinyallerdir, dijitale dönüşüm yapabilmek için belli zaman
aralıklarında örneklenmeleri, sonrasında kuantalanarak seviyelere ayrılmaları ve son olarak
da ikili kodlara atanarak işlem tamamlanmış oluyor. Örneklenen işaretlerin genlikleri
herhangi bir değere karşılık gelebilir, ancak işaretin dijitale dönüştürülmesi aşamasında
kullanılacak seviye sayısının belirli olması gerekmektedir, belirlenen seviye bit sayısına
bağlı olarak değişmektedir. Örnek verecek olursak eğer;5 bitlik kodlama yapılacaksa 25=32
seviye,7 bitlik kodlama yapılacaksa 27=128 seviye kullanılmaktadır. Seviye sayısının
artması analog-dijital çevirme kalitesini etkiler. Bit sayısı her ne kadar artarsa kalitede bir o
kadar artmaktadır. Şekil 2.2. aşamaları özetlemektedir.
Şekil 2.2. Analog-Dijital dönüşüm aşaması grafikleri
2.2.Paralel Tip ADC
Analog işaretlerin dijital sinyallere dönüştürülmesi aşamasında kullanılan en pratik
çevirici paralel Analog-Dijital çeviricilerdir. Paralel tipli Analog-Dijital çeviricilerde
işlemsel
yükselteçli
karşılaştırıcı
devreler
kullanılmaktadır.
İşlemsel
yükselteçli
karşılaştırıcı devrelerinde işlemsek yükselteç geri-beslemesiz olarak kullanılmaktadır.
Şekil 2.3. de sistemin kısa bir özeti yer almaktadır. Ayrıca işlemsel yükseltecin
girişlerinden bir tanesi referans olarak alınır. Diğer girişin referans alınandan küçük veya
büyük olması durumuna göre çıkış pozitif ya da negatif olur.
3
UREF=4V
+
R
Uin
V3
Kodlayıcı
1
3V
A3
D1
R
2
V2
R
V1
İkilik
Çıkış
A2
2V
3
A1
D0
1V
R
Şekil 2.3. Paralel Analog-Dijital çevirici
2.3.Sayma Yöntemiyle Analog-Dijital Çevirici
Analog-Dijital çeviricisinde kullanılan başka bir yöntem ise; karşılaştırıcı, sayıcı ve
doğrusal rampa kaynağından oluşan sayma yöntemli Analog-Dijital çeviricilerdir. Şekil
2.4.’te sistemin ana bloklarıyla yer almaktadır. Doğrusal rampa kaynağı ise, sabit eğimli
referans geriliminin sağlanması için kullanılır. Çeviricinin ilk aşamasında sayıcı reset ile
sıfırlanır, karşılaştırıcının pozitif girişine uygulanan giriş gerilimi referans gerilimden
büyük olduğunda çıkış yükselen kenara çekilecektir. Bu durumdan sonra rampa kaynağı
darbe üretmeye başlayacak ve AND kapısının çıkış kısmında tetikleme sinyaliyle beraber
sayma işlemi başlamış olacaktır. Sayma işlemi üretilen darbenin analog giriş geriliminden
büyük olmaya devam ettiği sürece ilerleyecektir.
4
Analog
Girişi
Tetikleme
Girişi
İkili Sayıcı
Rampa
Kaynağı
Reset
Zamanlayıcı
Ve Kontrol
Kaymalı
Kaydedici
Yetkilendirme
Kod Çözücü
Şekil 2.4. Sayma Yöntemiyle Analog-Dijital Çevirici
2.4.Analog-Dijital Çevirici Entegreleri
Normalde çevirimin yapan devreler piyasada entegreler halinde satılmaktadır.
Entegre Analog-Dijital çeviricilerin birkaç tanesinden kısaca bahsedecek olursak eğer;
2.4.1.ADC0800
8 bit çıkış verebilen analog-dijital çeviricidir.+5 Volt ile -5 Volt arasında analog
girişte çalışır. Çıkışları ise kilitli tampon aracılığıyla vermektedir. Giriş ile çıkış arasındaki
tepki
süresi
yaklaşık
50µs’dir.
uygulanabilmektedir. Entegrenin iç
Saat
girişine
100-900
kHz
arasında
darbe
kısmını incelersek eğer; analog switchler,
karşılaştırıcı, 8 bit tamponlar, paralel dirençlerdir. ADC pin diyagramı şekil 2.5.’te yer
almaktadır.
5
Şekil 2.5. ADC0800 çevirici entegre devresi [5]
2.4.2.ADC0804
Analog dijital çeviriciler içerisinde en yaygın olan entegredir. Özelliklerini
sıralarsak, 8 bit çözünürlük, 100 ms dönüşüm süresi, 140 ns erişim süresi, 5 Voltluk
besleme gerilimi, 0-5 Volt giriş gerilimi , sıfırlama gereksinimine ihtiyaç yoktur. ADC pin
diyagramı ise şekil 2.6’da gösterilmektedir.
Şekil 2.6. ADC0804 entegre devresi [5]
6
3.İŞLEMSEL YÜKELTEÇLER
3.1.İşlemsel Yükselteçlerin Genel Özellikleri
1960’lı yılların sonlarına doğru piyasaya sürülmüştür.741 ve 747 şeklinde entegre
olarak üretilmiştir. Entegrelere dışarıdan eklenen devre elemanları kullanılarak geri
beslemeli, yani kazancı kontrol edilebilmektedir bu sayede, genellikle işlemsel
yükselteçler, çok yüksek bir kazanca sahip doğru akım yükselteci olarak da bilinirler. Şekil
3.1 basit bir işlemsel yükselteç sembolü verilmektedir. İşlemsel yükselteçlerin aşağıdaki
özelliklerinden dolayı kullanım alanı bir o kadar fazladır;
 Çok yüksek kazanca sahip olabilirler
 Yüksek giriş empedansına sahiptirler
 Çıkış empedansı idealde sıfırdır
 Band genişliği oldukça fazladır
Eviren
Giriş
Çıkış
Evirmeyen
Giriş
Şekil 3.1. Temel İşlemsel Yükselteç Sembolü
İşlemsel yükselteçler açık çevrim ve kapalı çevrim olmak üzere iki kazanca
sahiptirler. Kapalı çevrim kazancı harici olarak devreye eklenen geri besleme (feedback)
direnci ile hesaplanır. Açık çevrim kazancı ise işlemsel yükseltecin kendi kazancıdır.
İşlemsel yükseltecin kazancı uygulanan gerilime bağlı olarak değişmektedir. Yani açık
çevrim kazancını belirleyen etken besleme voltajıdır. İşlemsel giriş empedansının çok
büyük olmasının avantajı ise bağlandığı işaret kaynağının ve bir önceki devreyi
yüklememesi, çok küçük bir akım ile kumanda edilebilmesi gibi avantajları söz
7
konusundur, çıkış empedansının çok küçük olması hatta idealde sıfır olması ise, çıkış
akımını yükselterek sistemin kısa devrelerden zarar görmesini engeller, bant genişliği ise
ortalama 1MHz civarındadır, İşlemsel yükseltece uygulanan işaretin frekansı arttıkça
kazanç ters orantılı olarak düşer. İşlemsel yükseltecin statik çalışması durumunda, yani
giriş gerilimi 0 Volt iken çıkış gerilim 0 Volt olması beklenir. Ancak pratikte girişteki
uçlar arasında küçükte olsa offset gerilimi oluşur, offset gerilimi işlemsel yükseltecin
kazancıyla çarpılarak çıkışa aktarılır. Bu sebepten dolayı entegrelerde ofset sıfırlama uçları
mevcuttur. Şekil 3.2 de ofset uçlarını sıfırlama açıkça gösterilmektedir.
Şekil 3.2. Offset gerilimi sıfırlama
İşlemsel Yükselteçlerin Kullanım Alanları
 Faz Çeviren
 Faz Çevirmeyen
 Gerilim İzleyici
 İntegral Alıcı
 Fark Alıcı
 Dalga Doğrultucu
 Karşılaştırıcı
 VCO (Gerilim kontrollü osilatör) olarak kullanılan devreler
 Toplayıcı
8
3.2. İşlemsel Yükselteçlerin Kullanım Alanları
İşlemsel yükselteçlerin kullanım alanları şöyle bir gözden geçirecek olursak;
medikal elektronikten tutunda elektroniğin her alanında çeşitli türleri kullanılmaktadır.
Analog bilgisayar işlemleri; matematiksel dört işlem (toplama, çıkarma…), türev alma,
integral alma trigonometrik fonksiyonlardır. Şekil 3.3’te türev alma ve integral alma
işlemleri sonrasında işaretlerde meydana gelen değişiklikler gösterilmektedir. Yükselteç
işlemleri, dalga şekillendirici; kırpıcı, kare-üçgen dalga dönüştürücü, sinüs-kare dalga,
schmitt tetikleyici devreleri, tepe dedektörü, özel karşılaştırıcılar, kablolu veri transfer
devreleri, sinyal analiz işlemleri, biyomedikal işaret yükselteci vb.[4]
Şekil 3.3. İşlemsel yükselteç ile gerçekleştirilen türev ve integral alıcı devre grafikleri
9
4.DENEY DÜZENEĞİNDE KULLANILAN DİĞER ELEMANLAR
4.1.Diyotlar
Diyotlar elektronik devre elemanlarının temel yapıtaşıdır. Transistörler, lojik
kapılar entegre devreler diyotların birleşiminden meydana gelmektedir. Diyotlar tek yönde
akım geçiren diğer yönde akım geçirmeyen elektronik devre elemanıdır. İletim yönündeki
dirençleri önemsenmeyecek kadar küçük, tıkama yönündeki dirençleri ise çok büyük olan
elemanlardır. Diyodun pozitif ucuna anot, negatif ucuna ise katot adı verilmektedir.
Diyodun anoduna gerilim kaynağının pozitif kutbu, katoduna ise gerilim kaynağının
negatif kutbu uygulandığı vakit, diyot iletime geçmektedir. Başlıca diyot çeşitleri;
 Kristal diyot
 Tünel diyot
 Işık yayan diyot (LED)
 Mikrodalga diyot
 Pin diyot
 Zener diyot
 Ayarlanabilir kapasiteli diyot (Varaktör)
Şekil 4.1. Çeşitli diyot türleri.[5]
10
Diyotlar temel olarak üç ana gruba ayrılmaktadır;
1. Lamba diyotlar
2. Metal diyotlar
3. Yarı iletken diyotlar
4.2.555 Entegre Elemanı
Elektronik dünyasının vazgeçilmez elemanlarından biridir. Aslında karmaşık
olmasının yanı sıra sadece bir kare dalga üreticisidir.555 entegresi; darbe üreteci, darbe
genişlik modülasyonu(PWM), darbe konum modülasyonu(PPM), zamanlayıcı
vb.
uygulamalarda kullanılmaktadır. 555 entegresinin 1 ve 8 numaralı uçları besleme, 2
numaralı ucu tetikleme, 3 numaralı ucu ise çıkış amacıyla kullanılmaktadır. Tetikleme
sinyallerinde alçalan ve yükselen kenar olmak üzere iki kenar vardır. [2] Yükün bir ucu 3
numaralı çıkışa, diğer ucu ise Vcc’ye bağlanır. İdealde çıkış ucu sıfırdır ve şase
potansiyelinde bulunmaktadır. 555 genel özelliklerinin sıralayacak olursak eğer;
1. +4.5 Volt ile +16 Volt arasında besleme gerilimi ile çalışmaktadır
2. Çıkışından yaklaşık olarak 200 mA akım çekilebilmektedir.
3. Zamanlama devrelerinde, periyot besleme gerilimine bağlı değildir.
4. Besleme akımı 3-6 mA arasındadır.
5. Güç harcaması 600 mW
6. Çalışma sıcaklığı 0-70 C derecedir.
11
Şekil 4.2. 555 Zamanlayıcı entegresinin bacak bağlantısı
4.3.PIC Hakkında
20.yüzyılın son yıllarında 16 ve 32 bitlik işlemcileri denetlemek ve işlem yükünü
an aza indirgemek amacıyla Microchip firması tarafından geliştirilmeye başlanmıştır. Pic
işlemcileri ilk olarak PIC16C54 olarak üretilmiştir. PIC işlemcileri ekstradan ek bellek
olmaksızın veya giriş/çıkış elemanı olmadan yalnızca 2 adet kapasite, 1 adet direnç ve 1
adet kristal ile çalışabilmektedir. PIC ailesinin en çok proje yapılan ürünü PIC16F84’tür.
PIC16F84 çok fazla kullanılır olmasının sebeplerinden biriside silinip yazılabilen
E2PROM belleğe sahip olmasıdır. Seri olarak 4 kablo ile programlanabilir olması da
önemli avantajlarından birisidir. PIC mikroişlemcilerinin tercih edilmelerindeki en önemli
sebeplerden birkaçını sıralayacak olursak;
1. Ekonomik olması
2. Belleğe erişimin çok hızlı olması
12
3. Yüksek frekanslarda rahatlıkla çalışabilir olması
4. Stand-by halinde çok küçük akım çekmesi
5. Kod sıkıştırma sayesinde işlem çokluğu sağlayabilmesi
6. Data için ayrı yerleşik BUS kullanılması
7. Lojik uygulamalarında hızlı olması
Şekil 4.3. PIC16F84 pin diyagramı.[3]
13
5.SİSTEM TASARIM AŞAMALARI
Analog Dijital dönüştürücü deney düzeneğinde kullanılan elemanlar daha önceki
bölümlerde ayrı başlıklar halinde tek tek incelendi. Bu aşamada zaman üzerinden yapılan
dönüştürmeyle ilgili gerekli analizler yapılacaktır. Zaman üzerinden analog-dijital çevrimi
yaparken analog DC gerilim bir testeredişi gerilim ile karşılaştırılır. (Şekil 5.1.).
Şekil 5.1. DC gerilim ile testeredişi
Testeredişi gerilim ile UA geriliminin başlangıç değerleri eşit olana kadar geçen Ta
zaman süresiyle ölçülecek gerilim arasında bir doğru orantı söz konusudur. Zamanın
sayısal olarak ölçülmesi işlemi, periyodu (T) bilinen bir işaret üreticinin ürettiği darbeleri
Ta süresine kadar sayıcıyla saymakla ölçüm yapılır. Analog-Dijital dönüşümünü zaman
üzerinden yapan çevirici devre aşağıda verilmiştir. (şekil 5.2)
14
Şekil 5.2. Zaman üzerinden dönüşüm devresi
Herhangi bir analog DC gerilimi Ux testeredişi gerilim ile karşılaştırıldıktan sonra,
karşılaştırıcının çıkışı, elektronik anahtarda Tx süresi boyunca kare dalga üreticinin
darbelerinin sayıcıya ulaşmasını sağlamaktadır. Sayıcıdan gözlemlenen sonuç ise ölçülmek
istenen gerilim değeriyle orantılı olmaktadır.
Tezde yapılan sayıcı devrenin, deney düzeneğindeki konumu aşağıdaki şekil 5.3.
de gösterilmektedir.
15
Şekil 5.3. Tasarımı yapılan devre konumu
Sayıcı sistemini tasarlayabilmek amacıyla PIC kullanılarak oluşturulan devreni
şematiği şekil 5.4 görülmektedir. Kullanılan elemanlar gözönüne alındığında LCD ekran
sözkonusuydu, direnç, kapasite, kristal osilatör kullanılarak devre gerçeklenmiş oldu.
Darbe sayma işleminde ise periyodu T=4.4 µs olan kare dalgaları sayan sayıcı
tasarlanmıştır. Gerekli C program kodları EK-1 de sunulmuştur.
16
Şekil 5.4. Sayıcı devrenin şematiği
Devrenin simülasyonu yapıldıktan sonra eagle programı kullanılarak baskı devre
aşamasına geçilmiştir. Ayrıca devre elemanlarının bir listesi de aşağıda yer almaktadır. Bu
aşamadan sonra ise baskı devre veya PCB(şekil 5.5.) çizimi yapıldıktan sonra devre
çalışma aşamasına gelmiştir.
17
Şekil 5.5 Devrenin PCB çıktısı
Baskı devreden sonra sistemin çalışabilir hale gelmesi için gerekli lehimleme ve
malzeme montajı işlemi yapıldıktan sonra sayıcı sistemin test edilme aşamasına
gelinmiştir. Test aşamasında herhangi bir sorunla karşılaşılmadan aşağıdaki şekil 5.6
görüldüğü üzere darbe sayma işlemi sağlıklı bir şekilde yapılmıştır.
18
Şekil 5.6. Sayıcı devre test aşaması
Son olarak da darbe sayıcı sistem tasarımında kullanılan devre elemanları ise;
 PIC16F84 kullanılmıştır
 2X16 LCD ekran
 6 adet 10 kΩ direnç
 1 adet 1 kΩ direnç
 1 adet 10 kΩ potansiyometre
 4 adet buton
 2 adet 22 pF kondansatör
 1 adet 4 MHz kristal osilatör
19
SONUÇ
Etrafımızdaki fiziksek büyüklükler analog formda yer almaktadır, bunları sayısal
forma geçirebilmek amacıyla bir dizi işlemlere yapmak gerekmektedir. Bu işlemler
silsilesinde önemli bir yer ihtiva eden darbe sayıcı sistemler ise sistemin belki de en pratik
ve kullanışlı kısmını kapsamaktadır. Tezde tasarım aşaması olarak anlatılan; darbe sayıcı
sistemin tasarımında kullanılan PIC16F84, az önce bahsettiğimiz gerekli pratiklik ve
kolaylığı gerçekten sağlamaktadır. Yapılan darbe sayıcı sistem hemen hemen çoğu
uygulamada yardımcı devre elemanlarıyla kullanılma amacı içerdiğinden, sürekli
değiştirilebilir bir yapıya sahiptir.
Sonuç itibariyle; Analog-Dijital çevirici deney düzeneğinin darbe sayıcı kısmının
gerçeklenmesi, bir takım analizler ve uygulamalar neticesinde gerçeklenmiş olup, deney
düzeneğinde çalışırken herhangi bir sorun gözlemlenmemiştir. Sistemde, herhangi bir
periyoda sahip üretilen işaretin, darbelerini saymak için gerekli düzenlemeler, C programı
üzerinden rahatlıkla yapılabilmektedir. Yani istenen periyoda sahip işaretin darbe sayıları
veya sensör kullanılarak gerçekleştirilecek sayıcı işlemleri yapılabilmektedir.
20
KAYNAKLAR
[1] Güleryüz Veysel, Dijital ve Analog Elektronik Devreleri, 1.Baskı, Birsen Yayınevi,
İstanbul, 2009
[2] İbrahim Doğan , 555 Entegresi ile Zamanlama Devreleri, 2.baskı, Bileşim Yayınları,
İstanbul, 2005
[3] Akpolat Çağatay, PIC Programlama, 1.Baskı, Pusula Yayıncılık, İstanbul, 2005
[4] Ciylan Bünyamin, İşlemsel Yükselteçler, 1.Baskı, Gazi Kitapevi, Ankara, 2003
[5] http://www.akademice.blogcu.com
21
EK-1
#include <htc.h>
#include <pic.h>
#include <delay.h>
// Denetleyiciyi ayarla ///////////////////////////////////////////////////////
__CONFIG(0X3F71);
// Tanımlamalar
///////////////////////////////////////////////////////////////
// Pin isimleri
// Arayüz
#define AY_D0 RA0
// Data0
#define AY_D1 RA1
// Data1
#define AY_D2 RA2
// Data2
#define AY_D3 RA3
// Data3
#define AY_D4 RA4
// Data4
#define AY_D5 RA5
// Data5
// Anahtarla
#define SW1 RD4
// 1. anahtar
#define SW2 RD5
// 2. anahtar
#define SW3 RD6
// 3. anahtar
#define SW4 RD7
// 4. anahtar
// Alfanümerik LCD 2x16 karakter
#define LCD_DB PORTC
// 8 bitlik veri yolu
#define LCD_RS RD0
// 0: Komut
#define LCD_RW RD1
// 0: Yaz
#define LCD_E RD2
#define LCD_BL RD3
1: Data
1: Oku
//
// 0: Kapalı
1: Açık
// Sabitler
#define KIS
10
// Komut işlem süresi uS
// Sabit Diziler //////////////////////////////////////////////////////////////
const unsigned char YAZI[12] = {'D','A','R','B','E',' ','S','A','Y','I','S','I'};
1
// Değişkenler ///////////////////////////////////////////////////////////////
// uc
unsigned char i;
// Sayaç
unsigned char j;
// Sayaç
unsigned char k;
// Sayaç
// ui
unsigned short long int uiDarbe = 196700; // Darbe sayacı
// Fonksiyonlar
///////////////////////////////////////////////////////////////
void Init(void);
void LCDEkraniTemizle(void);
void LCDSayfaBasi(void);
void LCDGotoxy(char ucx, char ucy);
void LCDModAyarla(char cID, char cS);
void LCDEkranKontrol(char cD, char cC, char cB);
void LCDKaydir(char cSC, char cRL);
void LCDFonksiyonAyarla(char cDL, char cN, char cF);
void KarakterYaz( unsigned char ucSembol);
// ANA PROGRAM ///////////////////////////////////////////////////////////////
void main(void)
{
// Bekle
DelayMs(100);
Init();
LCDGotoxy(2,0);
for ( i = 0; i < 12; i++ ) KarakterYaz( YAZI[i] );
while (1)
{
// Sayacı arttır
uiDarbe++;
LCDGotoxy(5,1);
KarakterYaz(uiDarbe / 100000
+ 48);
KarakterYaz(uiDarbe / 10000 % 10 + 48);
KarakterYaz(uiDarbe / 1000 % 10 + 48);
2
KarakterYaz(uiDarbe / 100 % 10 + 48);
KarakterYaz(uiDarbe / 10
KarakterYaz(uiDarbe
% 10 + 48);
% 10 + 48);
DelayMs(250);
}
}
// BAŞLANGIÇ DEĞERLERİ
///////////////////////////////////////////////////////
void Init(void)
{
// Portların verilerini belirle
PORTA = 0x00;
// A portunun içeriğini temizle
PORTB = 0x00;
// B portunun içeriğini temizle
PORTC = 0x00;
// C portunun içeriğini temizle
PORTD = 0x00;
// D portunun içeriğini temizle
PORTE = 0x00;
// E portunun içeriğini temizle
// Portların yönlerini ayarla
TRISA = 0b00001111;
// A0..3: giriş, A4,5: çıkış
TRISB = 0b11111111;
// B portu giriş (kullanılmıyor)
TRISC = 0b00000000;
// C portu çıkış
TRISD = 0b11110000;
// D portu çıkış
TRISE = 0b00000111;
// E portu çıkış (kullanılmıyor)
// LCD'yi ayarla
LCDFonksiyonAyarla(1, 1, 0);
// Veri yolu 8 bit, 2 satır, 8*5 nokta
LCDEkranKontrol(1, 0, 0);
// Ekran açık, Kur. kapalı, Kırpışma kapalı
// Soldan-sağa yaz, Ekranı kaydırma
LCDModAyarla(1,0);
// Arka aydınlatmayı aç
LCD_BL = 1;
}
// LCD EKRANI TEMİZLE /////////////////////////////////////////////////////////
void LCDEkraniTemizle(void)
{
// uc
3
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
LCD_DB = 0b00000001;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayMs(5);
}
// LCD SAYFA BAŞI /////////////////////////////////////////////////////////////
void LCDSayfaBasi(void)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
LCD_DB = 0b00000010;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayMs(5);
}
// LCD GOTOXY /////////////////////////////////////////////////////////////
void LCDGotoxy(char cx, char cy)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
if ( cy == 0 ) i = 0b10000000;
// 1. satır
if ( cy == 1 ) i = 0b11000000;
// 2. satır
LCD_DB = i + cx;
LCD_E = 1;
4
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
// LCD GİRiŞ MODU AYARLA //////////////////////////////////////////////////////
void LCDModAyarla(char cID, char cS)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
i = 0b00000100;
if ( cID == 1 ) i += 2;
// 1: solda sağa yaz,
0: sağdan sola yaz
if ( cS == 1 ) i += 1;
// 1: Ekranı kaydır,
0: kürsörü kaydır
LCD_DB = i;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
// LCD EKRAN KONTROL //////////////////////////////////////////////////////////
void LCDEkranKontrol(char cD, char cC, char cB)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
i = 0b00001000;
if ( cD == 1 ) i += 4;
// 1: ekran açık,
0: ekran kapalı
if ( cC == 1 ) i += 2;
// 1: kursör açık,
0: kursör kapalı
if ( cB == 1 ) i += 1;
// 1: yan-sön açık,
0: yan-sön kapalı
LCD_DB = i;
LCD_E = 1;
5
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
// LCD KAYDIR /////////////////////////////////////////////////////////////////
void LCDKaydir(char cSC, char cRL)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
i = 0b00010000;
if ( cSC == 1 ) i += 8;
// 1: ekranı kaydır,
if ( cRL == 1 ) i += 4;
// 1: sağa kaydır,
0: kürsörü kaydır
LCD_DB = i;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
// FONKSİYON AYARLA ///////////////////////////////////////////////////////////
void LCDFonksiyonAyarla(char cDL, char cN, char cF)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 0;
LCD_RW = 0;
i = 0b00100000;
6
0: sola kaydır
if ( cDL == 1 ) i += 16;
// Data bus 8 bit
if ( cN == 1 ) i += 8;
// LCD 2 satır
if ( cF == 1 ) i += 4;
// Karakterler 5*10 nokta
LCD_DB = i;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
// KARAKTER YAZ ///////////////////////////////////////////////////////////////
void KarakterYaz( unsigned char ucSembol)
{
// uc
unsigned char i;
// Sayaç
LCD_RS = 1;
LCD_RW = 0;
LCD_DB = ucSembol;
LCD_E = 1;
for (i = 0; i < KIS; i++) {}
LCD_E = 0;
DelayUs(100);
}
7
ÖZGEÇMİŞ
Uygar Sezer, 23.01.1990 tarihinde Gaziantep’te
doğmuştur.Gaziantep Şehit Şahin
Lisesini bitirdikten sonra Karadeniz Teknik Üniversitesi Mühendislik Fakültesi Elektrik
Elektronik Mühendisliği Bölümüne girmiştir.İstanbul Anel Grup’ta ve Gaziantep Sanko
Holding’de stajlarını tamamlamıştır.
1
Download