Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: DİRİLİŞ_MAK - 11 Nisan 2015, 23:18:52

Başlık: LM35 negatif sıcaklık
Gönderen: DİRİLİŞ_MAK - 11 Nisan 2015, 23:18:52
Arkadaşlar LM35 ile sıcaklık bilgisi LCD'ye aktaran bir program ve devre oluşturdum. LM35 ile ilgili kullanım bilgisine ve voltaj-sıcaklık dönüştürme işlemini Serdar ÇİÇEK'in CCS C ile PIC Programalam kitabından faydalanarak yaptım. PIC 16f877 ve 10  bitlik ADC kullandım. Kitaptaki hesap;
voltaj=(0.004828125*okunan adc degeri)*1000;
sicaklik=voltaj/10;
LM35'in ölçme aralığının -50 ve +150 arasında  olması için devrede gördüğünüz R2 direncini bağlayıp -5V uyguladım (kitapta bu şekil ve birde diyotlu kullanımın negatif sıcaklık vereceği yazıyor) ama LCD ekranda negatif sıcaklık okuyamadım.0 dereceden daha aşağı inmiyor. Sorunu nasıl çözebilirim?

(http://i.hizliresim.com/9VkBzZ.png) (http://hizliresim.com/9VkBzZ)


Device 16F877
XTAL 4

Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.2
Declare LCD_RSPIN PORTB.0
Declare LCD_INTERFACE 4
Declare LCD_LINES 2

ADCON1 =%10000000
TRISA = %00000001
Dim Sicaklik As Word
Dim hesap1 As Float 
Dim hesap2 As Float

DelayMS 250
Cls

basla:
Sicaklik=ADIn 0
DelayUS 50
hesap1=(0.0048828125*Sicaklik)*1000
hesap2=(hesap1/10)
Print At 1,1, "SICAKLIK:"
Print At 1,11,DEC1 hesap2," C "
DelayMS 1000
GoTo basla:

Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: Maxim - 12 Nisan 2015, 10:43:03
hiç lm35 ile negatif sıcaklık ölçme yapmadım ama
onun 2 çeşidi var bildiğim kadarı ile

birincisi çıkışa negatif voltaj eklemek
fakat bu şekilde pic, gelecek negatif voltajı göremeyeceğinden arada opamplı devre falan yapmak lazım sanırım

ikinciside lm35 in gnd ayağına 2 tane IN914 seri diyot takarak 2. bir adc çıkışı almak
sonra 2. adc girişinde okuduğumuz değeri 1. den çıkarmak
yani 2 tane adc kullanacağız.

devrede şöyle birşey
(http://i.stack.imgur.com/2Re5M.jpg)
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: DİRİLİŞ_MAK - 12 Nisan 2015, 11:39:51
Bağlantıyı ve programı dediğiniz şekilde düzelttim. Negatif sıcaklıklarda gözükmeye başladı. Programı da inceler misiniz bir daha herhangi bir hata var mı? Gerçek hayatta stabil ve doğru olarak çalışır mı bu şekliyle yoksa eklenti yapmak gerekli mi?

(http://i.hizliresim.com/7oRlnr.png) (http://hizliresim.com/7oRlnr)


Device 16F877
XTAL 4

Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTB.2
Declare LCD_RSPIN PORTB.0
Declare LCD_INTERFACE 4
Declare LCD_LINES 2

ADCON1 =%11000000
TRISA = %00000011
Dim Sicaklik As Word
Dim nsicaklik As Word
Dim hesap1 As Float 
Dim hesap2 As Float
Dim hesap3 As Float
Dim hesap4 As Float
Dim sonuc As Float

DelayMS 250
Cls

basla:
Sicaklik=ADIn 0
DelayUS 50
hesap1=(0.0048828125*Sicaklik)*1000
hesap2=(hesap1/10)
nsicaklik=ADIn 1
DelayUS 50
hesap3=(0.0048828125*nsicaklik)*1000
hesap4=(hesap3/10)
sonuc= hesap2-hesap4
Print At 1,1, "SICAKLIK:"
Print At 1,10,DEC1 sonuc," C "
DelayMS 1000
GoTo basla:
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: Maxim - 12 Nisan 2015, 15:00:28
işlemci sigorta ayarları yok (fuse)

kullanılmayan pinleri çıkış tanımlayın
TRISA = %00000011
TRISC = %00000000
TRISC = %00000000

MCLR girişinde 47nf kondansator olsun
yani butonu 47nf ile değiştirin

işlemci besleme ayaklarında 100nf mutlaka olsun

portA.0 seri bir 4k7 ekleyin, sonra gnd ile arasına 100nf koyun

Print At 1,1, "SICAKLIK:"
Print At 1,10,DEC1 sonuc," C "
yerine

Print At 1,1, "SICAKLIK:",DEC1 sonuc," C "
yazabilirsiniz
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: ahmetbudak - 12 Nisan 2015, 15:33:22
Alıntı yapılan: Maxim - 12 Nisan 2015, 15:00:28
işlemci sigorta ayarları yok (fuse)

kullanılmayan pinleri çıkış tanımlayın
TRISA = %00000011
TRISC = %00000000
TRISC = %00000000

MCLR girişinde 47nf kondansator olsun
yani butonu 47nf ile değiştirin

işlemci besleme ayaklarında 100nf mutlaka olsun

portA.0 seri bir 4k7 ekleyin, sonra gnd ile arasına 100nf koyun

Print At 1,1, "SICAKLIK:"
Print At 1,10,DEC1 sonuc," C "
yerine

Print At 1,1, "SICAKLIK:",DEC1 sonuc," C "
yazabilirsiniz
"portA.0 seri bir 4k7 ekleyin, sonra gnd ile arasına 100nf koyun" demişsiniz bunun sebebi nedir bir de bu işlemi RA0 ANALOG  gitrişinede uygulamamız gerekmez mi?
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: Maxim - 12 Nisan 2015, 15:52:03
doğru aynı şey, diğer analog girişede uygulamak lazım

sebebi low pass filtre yaparak dalgalanmaları engellemek
gerçi arkadaş 1sn lik bekleme koymuş
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: DİRİLİŞ_MAK - 12 Nisan 2015, 19:29:06
Programa ek olarak sıcaklık belli değerler arasındaysa bir motor çalışsın değilse motor dursun demek istiyorum şu şekilde bir kod yazdım ama hata alıyorum. Yazımda yanlılık mı var? (sıcaklık değeri sonuc değişkenine yazdırılıyordu)

If 20<sonuc<30 Then
PORTC.0=1
Else
PORTC.0=0
EndIf
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: ahmetbudak - 12 Nisan 2015, 19:55:44
If sonuc > 20 and sonuc<30 Then
PORTC.0=1
Else
PORTC.0=0
EndIf


olarak dene
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: zeka43 - 12 Nisan 2015, 22:56:47
Hiç işlemci işine girmeden kullanabileceğimiz pot okuyup ntc ile ölçüm yapan termostat entegresi yokmudur acaba. Analok bir oda termostadında görmüştüm entegreyi kazımışlar pek fazla incelemedim ama hatırladığım çok az parça var dı 18 pin bir entegre pic olma ihtimali yüksek 3 jumper birkaç direnç ve bir pot 2 ntc gibi birşey di.
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: ido2323 - 13 Nisan 2015, 06:19:11
http://i.stack.imgur.com/2Re5M.jpg (http://i.stack.imgur.com/2Re5M.jpg)
http://www.oocities.org/elektronikevii/pic/karisik/op-amp10.gif (http://www.oocities.org/elektronikevii/pic/karisik/op-amp10.gif)
bu devreyi kullanıp opamp ile fark alıcı devre yapacaksın fakat kullandığın dirençler %1 lik olsun
Başlık: Ynt: LM35 negatif sıcaklık
Gönderen: sifirzero - 06 Ocak 2017, 03:23:57
https://www.picproje.org/index.php/topic,66531.0.html

Burada ccs c ile yapılmış var