Sensörler (Algılayıcılar) ve Mikroişlemciler – 4
Geçen ay analog dijital çevirici ve mikroişlemci kullanarak sıcaklık ölçümünü nasıl gerçekleştirebileceğimizi anlatmıştık. Sıcaklık ölçümünü gerçekleştirmek için özel bir sensöre ihtiyacımız var.Bu amaçla LM35 sıcaklık sensörünü kullanacağız.
Sevgili okurlar size geçen ay analog dijital çevirici ve mikroişlemci kullanarak bir adım daha ileri giderek sıcaklık ölçümünü nasıl gerçekleştirebileceğimizi anlatmıştım. Sıcaklık ölçümünü gerçekleştirmek için özel bir sensöre ihtiyacımız var.Bu amaçla LM35 sıcaklık sensörünü kullanacağız.
LM35 National Semiconductor firmasının bir ürünü.Bu sensör piyasada kolaylıkla bulunabilecek en hassas ve ucuz senörlerden biri.
LM35'in özelliklerini içeren datasheet LM35.pdf indirebilirsiniz.
LM35 -50 ile +150 dereceler arasında ölçüm yapabilmektedir. Ölçüm hassasiyeti her 10mV/C yani her bir derece yükselmeye karşılık analog volatj çıkışı 10mV artar.Bu durumda eğer 25 santigrad oda sıcaklıgını ölçmek istersek LM35 çıkışında 250 mV okuruz.
Bu ayın konusu geçen ayın teorisini pratik bir devrede,LCD li bir oda sıcaklık temometresinde birleştirmek, kısaca bir oda termemetresi uygulaması yapmak.
LM35'li oda termometremizin şeması oldukça basit ve temel olarak ADC Voltmetre uygulamamızla aynı.Tek fark Voltaj bölücü direnç grubu yerini LM35 sıcaklık sensörüne bırakıyor.
Ortam sıcaklık termometresinin PICBASIC PRO dilinde yazılmış uygulama programı aşağıda yer almakta. Tüm source kodları ve hex progarm dosyasını termometre.zip dosyasında bulabilirsiniz. Program içinde geçen ay işlediğimiz teorinin yer aldığını göreceksiniz.
'——————————————————————————-
' LM35 SICAKLIK SENSORU ILE TERMOMETRE
' ANTRAK
' BARBAROS ASUROGLU (TA2CBA)
' 13/07/2010
' PIC16F877-20 Mhz
' Mikroislemciler ve Sensorler – 4
'——————————————————————————-
'———————-[ DEFINE'lar and Degiskenler ]—————————
' LCD Baglantilari
Define LCD_DREG PORTB
Define LCD_DBIT 0
Define LCD_RSREG PORTB
Define LCD_RSBIT 4 'pin 4
Define LCD_EREG PORTB
Define LCD_EBIT 5 'pin 6
Define LCD_DATAUS 100
Define LCD_COMMANDUS 4000
Define OSC 20
'———————–[ Degisken Tanimlamalari ]——————————
TEMP_L VAR TEMP.BYTE0
TEMP_H VAR TEMP.BYTE1
TEMP VAR WORD
SICAKLIK VAR WORD
Battvolt VAR BYTE
Volt VAR WORD
V0 VAR BYTE
V1 VAR BYTE
V2 VAR BYTE
V3 VAR Byte
V4 VAR BYTE
INCLUDE "modedefs.bas"
'——————[ Degiskenleri sifirla ]————————-
ADCON1 = %00001110 ' PORTA.0 analog
TRISA = %00000001
PORTA = 0
TRISB = 0
PORTB = 0
TRISC = 0
PORTC = 0
TRISD = 0
PORTD = 0
TRISE = 0
PORTE = 0
Clear
Pause 100
'——————————————————————————-
Main:
Lcdout $fe, 1, " ANTRAK TA2CBA "
Lcdout $fe, $C0," LM35 TERMOMETRE"
Pause 2000
Loop: Gosub Sicaklik_oku
IF V4 = 0 then
Lcdout $fe, 1, " SICAKLIK " 'Bu satir sicaklik degeri 10 derece altinda oldugunda devreye girer
' ve bastaki 0 degerini maskeler
Lcdout $fe, $C0,#V3,".",#V2,#V1," DERECE" ' Gosterilen deger Santigrad cinsindendir.
Endif
IF V4 > 0 then
Lcdout $fe, 1, " SICAKLIK " 'Bu satir sicaklik degeri 10 derece ve uzeri ise tum digitleri gosterir.
Lcdout $fe, $C0,#V4,#V3,".",#V2,#V1," DERECE"
Endif
Pause 250
Goto Loop
'————————-[ Sicaklik Degerini oku ]—————————-
Sicaklik_oku:
ADCON0 = %01000101 ' Analog donusturucuyu 10 bit olarak oku
PauseUs 100 ' 100 mikrosaniye bekle
TEMP_H = ADRESH ' analog donusturucu ikinci 8 bit degeri bu degiskene ata
TEMP_L = ADRESL ' analog dnusturucu ilk 8 bit degeri bu degiskene ata
SICAKLIK = 5 * TEMP ' TEMP degiskeni 10 bitlik analog donusturucu degerini ihtiva eder
' 5 ile carparak gercek sicaklik degerini 0.3 derece hassasiyetle elde ederiz.
V1 = SICAKLIK DIG 1 ' Gercek sicaklik degerini ihtiva eden SICAKLIK degiskenini ondalik hanelerine parcalariz.
V2 = SICAKLIK DIG 2
V3 = SICAKLIK DIG 3
V4 = SICAKLIK DIG 4
Return
Başarılar,
Barbaros