• Sonuç bulunamadı

PIC 18F4550 MİKRODENETLEYİCİSİ İLE DİJİTAL TERMOMETRE TASARIMI

N/A
N/A
Protected

Academic year: 2021

Share "PIC 18F4550 MİKRODENETLEYİCİSİ İLE DİJİTAL TERMOMETRE TASARIMI"

Copied!
9
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

PIC 18F4550 MİKRODENETLEYİCİSİ İLE DİJİTAL TERMOMETRE TASARIMI

DESIGN OF DIGITAL THERMOMETER WITH PIC 18F4550 MICROCONTROLLER

Kadir VARDAR

ABSTRACT

In this study, a digital thermometer was designed by using PIC18F4550 microcontroller.

In design, LM35 temperature sensor was used for temperature measurement. Voltage of sensor output is sampled by the channel of analog digital converter of microntroler which is converted to real temperature value with mathematical calculation. Temperature data is shown on graphic LCD display with 128x64 pixels. The source code of microcontroller was prepared using CCS C Compiler. The designed code and circuit was simulated by PROTEUS before realizing. Finally, designed system is realized and the design of digital thermometer is completed.

Keywords: Temperature Measument, PIC18f4550 microcontroller, CCS C compiler, Proteus.

ÖZET

Bu çalışmada, PIC18F4550 mikrodenetleyicisi kullanarak digital termometre tasarımı yapılmıştır. Tasarımda, sıcaklık ölçümü için LM35 sıcalık sensörü kullanılmıştır.

Mikrodenetleyicinin analog digital çevirici kanalından örneklenen sensör gerilimi matematiksel hesaplamayla sıcaklık değerine çevrilir. Sıcalık bilgisi 128x64 pikselli grafik LCD ile gösterilmektedir. Microdenetleyici için kaynak kod CCS C derleyicisi kullanılarak hazırlanmıştır. Uygulamaya geçmeden önce hazırlanan kod ve devre PROTEUS ta simule edilerek test edilmiştir. Son olarak, tasarlanan sistem gerçeklenerek digital termometre tasarımı tamamlanmıştır.

Anahtar Kelimeler: Sıcaklık Ölçümü, PIC18F4550 mikrodenetleyicsi, CCS C derleyici, Proteus.

1. GİRİŞ

Endüstride ve güncel hayatta sıcaklık ölçümü çok sık ihtiyaç duyulan ve yaygınca kullanılan bir uygulamadır. Sıcaklık ölçümü amacıyla kullanılan sensör adı verilen ısı algılayıcılarının kullanılan yerin özel şartlarına, ölçülmek istenen olası sıcaklık değer aralığı ve gerekli olan hassasiyet değerine göre farklı tipleri mevcuttur. Bunlar; dirençsel sıcaklık sensörleri (RTD- Resistance Temperature Detector), ısıl çiftler (termokupl - thermocouple), termistörler (NTC) ve entegre devre sıcaklık sensörleridir (IC - LM35, LM134, LM56, LM75... vb.). Sıcaklık ölçümleri, bilgilendirme, güvenlik veya sistemlerin kontrollü amacıyla yapılmaktadır. Bu uygulamalara örnek verecek olursak, bir elektrik

(2)

motorun aşırı yüklenmesinin tespiti, kazan içerisinde bir sıva yada gazın ısıtılması veya sıcaklığının belirli bir değerde sabit tutulması sayılabilir. (İşçi, 2008, Kalender 2007) Mikrodenetleyiciler günümüzde kontrolden, digital elektroniğe, endüstriyel alanlarda ve birçok elektronik uygulamada sıkça kullanılmaktadır. Tasarımda lojik devrelere göre devre boyutu, kolay değiştirilebilirlik ve hızlı tasarım geliştirme gibi bir çok üstünlüğü mevcuttur. İçerisinde işletilen kaynak kodu değiştirmek vasıtasıyla tasarlanmış olan devre birçok farklı uygulamada kullanımına imkan verir. Bu çalışmada, son yıllarda Microchip firması tarafından çıkarılan yüksek hız ve hafıza boyutuna sahip olan PIC18F4550 kullanılarak genel amaçlı bir deneme kartı tasarlanmıştır. Bu kart üzerinde birçok uygulamada kullanabilecek olan sıcaklık ölçümü için analog digital konverter girişine LM35 sıcaklık sönsörü bağlanmıştır. Bu şekilde digital termometre tasarımı C derleyecisi kullanılarak hazırlanmıştır. Görüntüleme birimi olarak 128x64 piksel grafik LCD seçilmiştir. Devre şeması hazırlanarak uygulama gerçekleştirilmiştir.

Bu bildiride, projede kullanılan malzemelerin açıklanması, PIC kaynak kodunun hazırlanması, tasarlanacak sistemin önceden bilgisayar ortamında benzetimi yapılarak olası hatalarının giderilmesi ve devrenin gerçekleştirilmesi anlatılmaktadır. İkinci bölümde PIC 18F4550 mikrodenetleyicisi özellikleri ve CCS C derleyicisi ile programın hazırlanmasına yer verilmektedir. Üçüncü bölümde devrede kullanılan grafik ekran LCD ve LM35 sıcaklık sensörü elemanlarına bakılmakta, dördüncü bölümde tasarlanması düşülen sistem PROTEUS ortamında benzetimi yapılarak test edilmesi anlatılmaktadır. Beşinci bölümde sistemin gerçeklenme safhası açıklanmakta ve sonuçlar verilmektir.

2. MİKRODENETLEYİCİ VE YAZILIM GELİŞTİRME

2.1. PIC 18F4550 Mikrodenetleyicisi

Mikrodenetleyici yapıları içerisinde mikroişlemci ve bazı donanımsal çevrebirimleri barındıran tümleşik entegre sistemlerdir. Mikroişlemci kullanılarak gömülü sistem tasarımı yapılmak istendiğinde RAM, ROM, Analog dijital çevirici (ADC) vs gibi elemanlar sonradan sisteme eklenmeliyken bir mikrodenetleyici bu elemanları sahip olduğunda hızlı bir şekilde tasarıma geçilmektedir. Bir mikrodenetleyici içerisindeki temel çevrebirimler, I2C, Seri, Paralel, Can bus, Giriş-Çıkış portları gibi iletişim protokol çeşitleri veya uçlarının yanında ADC, Puls Genişlik Modülasyonu (PWM), vs gibi temel donanımsal birimlerden oluşabilir.

Bu uygulamada, Microchip firmasının 16F serisine göre üstünlükleri nedeniyle 18F4550 mikrodenetleycisi tercih edilmiş. PIC 18F4550 mikrodenetleyicisi, 48 MHz maksimum çalışma hızına çıkabilmekte 32 KB program hazıfıza ise daha yüksek boyutlu program işletebilmektedir. 2048 bayt SRAM’i ile programda daha fazla değişken kullanılmasına imkan sağlamaktadır. Bunların haricinde 256 bayt data EEPROM, 35 I/O Giriş-Çıkış ucu, 3 tane 16-bit timer/ counter, 8-bit Timer/ Counter, 20 Interupt kaynağı ve de USART, Serial, Parallel, SPI, I2C arabirimlerini içermektedir. 13 kanallı 10 bitlik ADC birimi ile çokça analog bilgi dışarıdan okunabilmekte ve bir çok mikrodenetleyicide bulunmayan günümüzde popüler olarak kullanan USB portuna Full Speed USB 2.0 ( 12Mbit/ s) arabirimi ile veri gönderip almaya yarayan donanıma sahiptir. Bu üstünlükleri nedeniyle ileride daha başka uygulamalarda kullanılması düşülerek tercih edilen PIC 18F4550’nin pin diyagramı Şekil 1 ile verilmiştir. (Microchip Inc.)

(3)

Şekil 1. PIC18F4550 pin diyagramı

2.2. CCS C derleyicisi ve Kaynak programın hazırlanması

C dili hem insan diline olan yakınlığı hem de makine diline daha az kayıpla çevrilebilme özelliği sayesinde elektronik ürünler ve mikrodenetleyici programlamada oldukça yaygın olarak kullanılmaktadır. Bu çalışmada kaynak kodun hazırlanmasında PIC ürünlerinin neredeyse tümünü destekleyen, büyük bir oranla ANSI C uyumlu, esnek ve çok kolay bir şekilde mikrodenetleyici programlanmasına izin veren, birçok iletişim protokolü ve çevresel ürünler için hazır kütüphane dosyaları (kontrol fonksiyonları) içeren CCS (Custom Computer Services Inc.) firması ürünü CCS C PIC C Derleyicisi programı tercih edilmiştir. (Çiçek 2004)

Kaynak kodu ile; CCS C derleyisinin mevcut grafik LCD kütüphanesi kullanılarak LCD’ye veri gönderimi sağlanmıştır. LCD ekran pinleri tasarladığımız devreye göre programda tanıtılmıştır. LM35 ile PIC’in Analog kanaldan (ADC AN0 kanalı) sıcaklık verisi 10 bit dijital değer olarak okunmuş ve gerekli hesaplamalar ile sıcaklık değeri derece cinsinden hesaplanmıştır. Son olarak gerçek sıcaklık değeri LCD ekranda yazdırılmıştır.

CCS C derleycisi ile hazırlanan kaynak kod aşağıdaki parçalardan oluşmaktadır:

Kitaplık tanımlamalarının yapıldığı program bölümü

#include "deneme18f_002.h"

#include "HDM64GS12.c"

#include <GRAPHICS.C>

Yazılımda kullanılan değişken ve sabitler yapıldığı program bölümü char tmp[]="Kadir VARDAR";

(4)

char tmp1[]="--- ";

char tmp2[]=" Digital";

char tmp3[]="Termometre";

char tmp4[]="Sicaklik";

char tmp5[]="'C";

Ana Programın Başlangıcı

void main() {

setup_adc_ports(AN0|VSS_VDD);

setup_adc(ADC_CLOCK_DIV_32);

setup_psp(PSP_DISABLED);

setup_spi(SPI_SS_DISABLED);

setup_wdt(WDT_OFF);

setup_timer_0(RTCC_INTERNAL);

setup_timer_1(T1_DISABLED);

setup_timer_2(T2_DISABLED,0,1);

setup_timer_3(T3_DISABLED|T3_DIV_BY_1);

setup_comparator(NC_NC_NC_NC);

setup_vref(FALSE); ………

Ana programdan buraya kadar olan kısımda 18f4550 konfigüre ediliyor, Bu kısmı CCS derleyicinin otomatik yazılım sihirbazı tarafından hazırlıyor.

git01: // Ana programın içerisinde etiket kullanılarak sonsuz döngü oluşturuluyor sicaklik_data=read_adc(); // LM35 ten sıcaklık verisi 10 bit dijital sayı olarak okunuyor

voltaj=(0.0048828125*sicaklik_data)*1000;

sicaklik=(voltaj/10)+2; // Bu değer matematik işlemlerle gerçek değere çevriliyor glcd_init(on); // LCD ekran temizlenip yeniden başlatılıyor.

glcd_text57(15,10,tmp4,1,on); // Ekran yazısı yazılıyor

(5)

glcd_text57(90,30,tmp5,3,on);

sprintf(char1,"%4.1f",sicaklik); //Sıcaklık değeri noktadan sonra 1 hane olarak tanıtılıyor

glcd_text57(15,30,char1,3,on); // Sıcaklık değeri ekrana basılıyor delay_ms(1000); // Süre bekletme

goto git01; // Program git01 etiketli satıra gönderiliyor.

} // Ana programın sonu

3. HARİCİ DONANIMSAL BİRİMLER

3.1. 128x64 piksel Grafik LCD

Bu çalışmada görüntüleme ünitesi olarak, AV Display firmasının HY-12864K serisi 128x64 noktalı grafik LCD si kullanılmıştır. İçerisindeki sürücü Samsung KS0108 ile uyumludur. LCD ünitelerinde gönderilecek veri ve komutlar belirli bir iletişim protokolü ile aktarılmaktadır. Kullandığımız LCD içinde bu protokol rutinleri CCS C derleyicisinin içerisinde mevcuttur. Şekil 2’de LCD’nin blok diyagramı ve pin bağlantı uçları verilmiştir.

Burada görüldüğü gibi data 0-7 arasında 8 pinden paralel olarak gönderilmektedir. 2 adet chip select, reset, eneable ve read/write uçları mevcuttur. Arka ışık için kullanılan kaynak ayrı bir besleme girişine sahiptir. Vo giriş ucuna Vee ve Vss uçlarına bağlı bir potansiyometre kullanılarak ekranın kontrastı ayarlanabilmektedir. Tablo 1 de pinler ve açıklamaları verilmiştir. Tasarlanan kartta PIC’in D portları LCD data uçlarına girilmiştir.

(AV Display)

Şekil 2. Grafik LCD blok şema ve bağlantı şekli.

Tablo 1. Grafik LCD pinleri

(6)

3.2. LM35 Sıcaklık Sensörü

Yarı iletken entegre devrelerin gelişmesi ile tümdevre sıcaklık sensörleri ortaya çıkmıştır.

Germanyum ve silisyum içerisine karıştırılan kristaller ile üretilen sıcaklık sensörleri kullanılmaktadır. Germanyum kristal malzemelerin dirençleri sıcaklık ile ters orantılıdır.

Silisyum kristal malzemelerin dirençleri ise sıcaklıkla doğru orantılıdır. Germanyum silisyum malzemelerin sıcaklık sensörü olarak çalışma mantığı; normal germanyum silisyum PN birleşmeli diyotlarda oluşan nötr bölgenin sıcaklık arttırılarak aşılması sonucu bu bölgeden akım geçmesinin sağlanmasıdır. Sıcaklık arttıkça bu bölgeden geçen akım da artar. (robotiksistem.com) Bu ilkeye göre çalışan yarı iletken sıcaklık sensörleri ( LMXXX ) ; sıcaklığa bağlı gerilim üreten ve sıcaklığa bağlı akım üretenler olmak üzere iki tiptir.

Sıcaklığa bağlı gerilim üreten sensörler LM135 - LM235 - LM335 ( Kelvin ), LM35 - LM45 ( Celcius ), LM34 ( Fahrenheit ) gibi sensörlerdir. Bu sensörler kırılma gerilimi sıcaklıkla orantılı olan bir zener diyot gibi çalışan monolitik sıcaklık sensörleridir.

(robotiksistem.com, İşçi 2008)

Tasarımda kullanılan LM35 sıcaklık sensörü yaygın olarak kullanılan bir sensördür, çıkış voltajı her bir santigrad derece için 10 mV olarak lineer şekilde değişmektedir. Şekil 3’de bağlantı şeması ve sensörün görünüşü verilmektedir. Şemada görüldüğü üzere 1 ve 3 uçları arasına besleme gerilimi uygulandığında 2. uç olan çıkıştan sıcaklıkla doğrusal orantılı voltaj üretilmektedir.

Şekil 3. LM35 Sıcaklık sensörü ve bağlantı şeması.

(7)

4. PROTEUS İLE BENZETİM

Tasarlanacak sisteme ait çevre birimler karalaştırılıp bunlara ait PIC 18F4550 kaynak programı hazırlandıktan sonra olası hatalarının önüne geçmek için devre Proteus ile benzetimi yapılmıştır. PROTEUS programı; elektronik alanında simülasyon, animasyon ve otomatik baskı devre çizimi yapabilen programlardan biridir. İçerisinde Isis ve Ares olarak adlandırılan iki ayrı program mevcuttur. Isis ile grafik tabanlı simülasyon yapabilir, enteraktif (etkileşimli) devre kurma olanağı verir, bir mikro denetleyici tabanlı sistemin devresinin tamamının çizilip, hazırlanmış kaynak kodu etkileşimli olarak test edilebilmektedir. (Şahin H.)

Devre şeması, Şekil 4’te görüldüğü gibi ISIS programı ile çizilmiştir. Hazırlanan kaynak kodu PIC içerisine yüklenerek görsel olarak simülasyon yapılmıştır. Burada hatalar ayıklandıktan sonra devre yapım aşamasına geçilmiştir.

Şekil 4. Devrenin Isis ile benzetimi.

4. TASARLANAN SİSTEMİN GERÇEKLENMESİ

Baskı devre şeması, Isis’te hazırlanan simülasyondan Ares’e bağlantı kurarak bu ortamda hazırlanmıştır ve Şekil 5 ile verilmiştir. Burada hazırlanan kart genel amaçlı olup farklı uygulamalarda da kullanılması amaçlanmıştır. Bu amaçla, mikrodenetleyiciden fazlaca uç baskı devre klemensleri ile dışarı alınmıştır. Besleme kartın üzerindeki 7805 Voltaj regülatör entegresinin girişine +9V harici kaynaktan sağlanabildiği gibi kullanılan usb çıkış portu üzerinden de bir PC usb portundan yada yeni nesil cep telefonları standart hale gelen usb çıkışlı şarj aletlerinden de kullanılabilir. Besleme kaynağının seçimi için 2 adet atlama(jumper) ayarı konulmuştur. Kullanılan USB portundan hem besleme alınacağı gibi ileride gerekli yazılımların hazırlanarak PC ortamıyla haberleşme amacıyla kullanılması düşünülmektedir. Ayrıca devre üzerinde PIC 18F4550’nin B portuna bağlı genel amaçlı kullanım için 8 adet sıralı dip switch bulunmaktadır.

(8)

Şekil 5. Hazırlanan devrenin baskı devre şeması.

Baskı devre hazırlandıktan sonra montajı tamamlanmış çalıştırılmaya hazır hale getirilmiş.

Bir JDM programmer devresi ve Icprog yükleyici programı kullanılarak daha önce hazırlanmıştış ve derlenmiş olan kaynak koduna ait hex uzantılı makine dili dosyasi PIC 18F4550 ye yüklenmiştir. Devrenin son hali ve çalıştırılması Şekil 6 ile verilmiştir. PIC 18F4550 kullanılarak tasarlanan Dijital Termometre devresi başarı ile çalıştırılmıştır.

Şekil 6. Hazırlanan devrenin çalıştırılması.

4. SONUÇLAR

(9)

PIC 18F4550 mikrodenetleyicisi kullanılarak tasarlanan grafik ekranlı Dijital Termometre devresi başarı ile çalıştırılmıştır. Tasarımda CCS C derleyicisi kullanılarak kaynak kodu hazırlanmıştır. Devre Isis ile bilgisayar ortamında benzetimi yapılmış ve olası hatalar giderilmiştir. Ares ile hazırlanan devre şeması ile montaj tamamlanmış ve devre çalışır hale getirilmiştir. Bu çalışmada metodik olarak bir mikrodenetleyicili sistem tasarımı sunulmuştur.

KAYNAKLAR

Çiçek S., "CCS C ile PIC Programlama", Altaş Yayınları, İstanbul, 2007, ISBN:9758834207.

İşçi C., "Termoelektrik Sensörler”, Journal of Yasar University, Vol. 2 (8), 863-873 Şahin H., "Proteus ISIS & ARES", Altaş Yayınları, İstanbul.

http://www.robotiksistem.com/sensor_cesitleri_sicaklik_sensorleri.html

Kalender O., "Endüstriyel Uygulamalar İçin Yeni Bir Pic Mikrodenetleyici Tabanlı Elektromanyetik Karıştırıcı", Gazi Üniv. Müh. Mim. Fak. Der., Cilt 22, No 4, 883-891, 2007

Microchip Technology Inc. "PIC18F2455/2550/4455/4550 Datasheet ", 2004 AV Display, " HY-12864K Series gLCD datasheet"

Referanslar

Benzer Belgeler

Eussiez-vous eu, d'ailleurs, I'invention qu'il faut Pour pouvoir là, devant ces nobles galeries, Me servir toutes ces folles plaisanteries, Que vous n'en eussiez pas articulé le

ENC28J60’ın SPI protokolü üzerinden kontrol edilebilmesi, devre üzerinde kullanılan pasif elemanlarının azlığı, az pin sayısı sayesinde diğer Ethernet arabirim

Bit 4 EEIE: EEPROM yazma işlem kesmesi geçerlilik biti 0 = EEPROM yazma kesmesine izin verilmez. Bit 3 BCLIE: Çarpışma (Bus collision) kesmesi geçerlilik biti 0 = BUS

Örnek: RB0 girişine bağlı buton ile harici kesme; Başlangıçta ON durumunda olan RB7 ye bağlı LED, RB0 dan kaynaklanan kesme olayında LED OFF konumuna alınmakta yeni bir kesme

1 : ADRESH kaydedicisinin MSB kısmındaki 6 biti 0 kabul edilir ve A/D çevirme sonucunda elde edilen veri ADRESH’ın 2 bitlik LSB kısmına ve ADRESL’ye yazılır. 0 :

Bu çalışmada PIC 16F877 kullanılarak anahtarlama elemanına gerekli olan DGM tetikleme sinyallerini üretmek için denetleyiciye ait DGM modülü kullanılmıştır (Microchip,

Trafik sinyalizasyon otomasyonu için kavşak kontrol sisteminin bir denetleyici tarafından kontrolü ve birden çok kavşağın birlikte otomasyonu için ise birbirleri

Bu kontrol yöntemine darbe genişlik modülasyonu (PWM) adı verilmektedir [14]. Besleme kaynağı açısından eviriciler, giriş gerilimi sabit kalıyorsa gerilim beslemeli