lİsans bİtİrme projesİ - eee.ktu.edu.tr · 2.2.paralel tip adc analog işaretlerin dijital...

44
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

Upload: dodan

Post on 30-Mar-2019

232 views

Category:

Documents


0 download

TRANSCRIPT

I

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

II

III

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

IV

V

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ş ………………………………

VI

VII

Ö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

VIII

IX

İÇİNDEKİLER

Lisans Bitirme Projesi Onay Formu V

Önsöz VII

İçindekiler IX

Özet XI

Şekiller Dizini 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İŞ

X

XI

Ö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

XII

XIII

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; Analog-

Digital 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.

XIV

Ş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

XV

1

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)

2

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 DİGİTAL-İŞARET

Şekil 2.1. Analog-Dijital Dönüşüm Aşaması

3

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.

4

Uin

+UREF=4V

1

2

3

A3

A2

A1

D1

D0

V2

V3

V1

Kodlayıcı

İkilik

Çıkış

R

R

R

R

1V

2V

3V

Ş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.

5

Analog

Girişi

Tetikleme

Girişi

RampaKaynağı

Zamanlayıcı

Ve Kontrol

Reset

Yetkilendirme

İkili Sayıcı

Kaymalı

Kaydedici

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. Saat girişine 100-900 kHz arasında darbe

uygulanabilmektedir. Entegrenin iç 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.

6

Ş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]

7

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

Çıkış

Eviren

Giriş

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

8

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ı

9

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

10

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]

11

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.

12

Ş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ı

13

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]

14

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)

15

Ş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.

16

Ş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.

17

Ş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.

18

Ş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.

19

Ş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

20

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.

21

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

1

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 1: Data

#define LCD_RW RD1 // 0: Yaz 1: Oku

#define LCD_E RD2 //

#define LCD_BL RD3 // 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';

2

// 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);

3

KarakterYaz(uiDarbe / 100 % 10 + 48);

KarakterYaz(uiDarbe / 10 % 10 + 48);

KarakterYaz(uiDarbe % 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ı

LCDModAyarla(1,0); // Soldan-sağa yaz, Ekranı kaydırma

// Arka aydınlatmayı aç

LCD_BL = 1;

// LCD EKRANI TEMİZLE /////////////////////////////////////////////////////////

void LCDEkraniTemizle(void)

// uc

4

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;

5

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;

6

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, 0: kürsörü kaydır

if ( cRL == 1 ) i += 4; // 1: sağa kaydır, 0: sola 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;

7

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);

1

Ö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.