lm35 sıcaklık okuma nasıl

Başlatan karagöl41, 01 Mayıs 2012, 05:54:07

karagöl41

lm 35 sensorle pic 18f452 ile devre kuruyorum fakat lcd de net sonuç alamadım programda dönüştürmede hata var heralde sensorun okuduğu değeri nasıl dönüştürebilirim ..kullandığım derleyici mplab c 18  ....

Maxim

kullandığınız kodu buraya yazın

karagöl41

lm35 teki değeri dönüştürmek için bunu yazdım fakat isiste çaıştırdığım da sıcaklık 1 eksik yazıyo yani lm35 i 26 dereceye ayarladığımda lcd de 25 yazıyo

while(1)
{
volt=ReadADC();
bekle();
isi=volt/1.94805;
atoi(isi);
ad1=tolower(isi);
WriteCmdXLCD(0xC0);
putsXLCD(itoa(ad1,derece));

eğer anlaşılmadıysa programın tamamını atabilirim

Kabil ATICI

ilk okuduğumda ben de devreyi fiziksel olarak kurup çalıştırdığını ve hatalı ölçüm aldığını sanmıştım.

Yapabiliyorsan devreni gerçek fiziksel ortamda kur ve çalıştır. Bakalım ne olacak?
ambar7

karagöl41

hocam fiziksel olarak devre hazır pici kodlayıp çalıştırdım herşey tam lm35 in fiziksel etkiyle ölçümlerini gözledim soğutup ölçtüm hafif ısıtıp ölçtüm ölçüm yapıyor ... sorun şu ki hocamız raporda net olçüm istiyor programı okuyun ca 1 derce eksik olduğunu hemen görür ... benim sıkıntım da bu işte programda bu sıkıntıyı çözemezmiyiz ..teşekkürler..

Kabil ATICI

tamam o zaman. C derleyici ile ilgili bir durum olabilir. Ben asm kullanıyorum. Bunun için LM35 ile ilgili ölçüm sonucunu almak için ben doğrudan tablo yöntemini kullanıyorum. işlemci içinde yer varsa exel gibi bir programla ölçüm sonucu karşılığını veren bir tablo oluşturarak bunu program veri tabanı olarak ekliyorum. LM35'de yapılan ölçüme göre sıcaklık değerini bu tablodan alıyorum. Program biraz şişiyor ama sonucu istediğim gibi kontrol edebiliyorum.

işlem şöyle:
her ölçüm karşılığındaki sıcaklık tablonu oluştur.
Bunu programına veri tabanı olarak ekle.
ve ölçüm sonucunu bu tablodan sıcaklık değeri karşlığını oku ve ekrana yazdır.

Bilemiyorum ama yaptığın programın değişkenlere yaptığın atama ile ilgili bir şey olabilir. pic içinde kayar nokta matematik işlemleri ile ilgili bir komut yok diye biliyorum (asm olarak). Bunu c derleyici programı derleme esnasında kendisi oluşturuyor.
ambar7

arslan74

Merhaba,

İşin en kritik tarafı

isi=volt/1.94805;

hesaplaması dır. 1.94805 değerini neye göre sectiniz? Referans voltajını kac onu belirmemişsiniz.

Sorduğum soruları cevaplarsanız, sorun belli olur.

Selamlar

CyberX

bencede volt/1.94805

1.94805  değerini azar azar düşür gerçek sıcaklığa kalibre etmiş olursun.

uop

lineer çalışıyorsa, ki kullandığın dönüştürme formülü lineer. madem 1 eksik ölçüyor, programda +1 ekle.

karagöl41

herkese teşekkür ederim hepinizden aldığım fikirlerle değişik bi kod yazdım ve sorun çözüldü bende şaşırdım ama oldu sonunda ilgilendiğiniz için tekrar teşekkür ederim