Devrede PIC16F877 mikro denetleyici DS1302 gerçek zaman saati entegresi ve LM35 ısı sensor entegresi kullanılmış yazılım CCS C ile hazırlanmış. Simülasyonda herşey çok güzel ancak simülasyonda LM35 sıcaklığı 40 dereceye ayarladığım halde ekranda 42 derece okuyor neden olabilir ?
devredeki kristal 20mhz olarak ayarlı mı sayın @serkan_48. Yorumları okudum biraz sıkıntılı bir devre olduğundan söz ediliyor. Özellikle büyük display kullanmak için mutlaka transistör yada uln2003 gibi bir entegre kullanılması gerek. Bu haliyle yanlız küçük display kullanılabilir.
sicaklik_degeri=floor((sicaklik_voltaj/10)+2);
şöyle bir kod satırı var css c den anlamam ama sıcaklık değerinin 2 derece fazla çıkması +2 den olabilir mi. +2 ibaresini silip tekrar denemek lazım.
Öncelikle cevabınız için teşekkürler. Display olarak buyuk display kullanmayacağım. Küçük displaylerle yapmayı planlıyorum. Devre bence imalat hataları yüzünden çalışmıyor.
Yazılımdaki ilgili satıra bakayım çok anlamasamda yönlendirmeniz ile ilgili satırı bulabilirim. Sorum şuki değeri değiştirsem bile yazılımı tekrar hex koduna nasıl çeviririm bilmiyorum ccs ile hiç uğraşmadım.
Serkan, bence LM35 ile yapılmış devrelere bulaşma. bu hali ile negatif sıcaklığı göstermez haberin olsun. sicaklik_degeri=floor((sicaklik_voltaj/10)+2); buradaki +2 yi kaldırınca düzeliyor istersen düzenlenmiş halini göndereyim ama yapacaksan DS18B20 sensörlü bir devre bul daha iyi olur.
@serkan_48
öncelikle LM35 bir analog çıkışlı sensördür. PIC ile okurken donanımsal ADC kullanılıyor ancak bu ADC 10bit olduğu için 5v besleme referansı ile yaklaşık 5mv çözünürlükte okuma yapabiliyor. LM35 ise 1C sıcaklıkta 10mv çıkarır yani her 0.5C sıcaklıkta ADC birimi 1 artar. buda hassas ölçüm yapamayız anlamına geliyor. ayrıca, analog sinyal okurken ortam gürültüleri ve beslemedeki parazit dalgalanmalar ölçüm sonucunu olumsuz etkiler. birde, LM35 ile negatif sıcaklığı okumak için bazı donanımsal eklemelerin yapılması gerekir aksi halde okuyamazsın. nedense bu devreleri yapanlar hiç eklememiş.
bunun nedeni aslında belli. tasarımcılar kolaya kaçmış. ds18b20 kullansalar okuma süresi 750ms süreyi buluyor. display tarama yapıldığı için LM35 sensörünü ADC ile daha hızlı okuyup zaman kaybını azaltmak istemiş. yani bu acemice yapılmış bir uygulama. sıcaklık çözünürlüğü mühim değil ama negatif değeri mutlaka göstermesi gerekir. tabi bu devre sadece göstermelik yapılacak bişeyse sorun olmaz ama gerçek hayatta kullnılacaksa bazı özellikler gereklidir.
neyse, internette ds18b20 ile yapılmış yığınla uygulama var hatta sana nasıl bişey lazım söyle bende bakayım.
Burada ilk mesajımda ve aşağıdaki videodaki gibi bir proje yapmak istiyorum.
Örnek videodaki saat aynen sayacak. Sayımı yukarıdan aşağı yapacak videodaki gibi. Saat dot matriks de 20 sn gibi bir süre duracak. Sonra yine videodaki gibi ekran sola kayarak tarihi gösterecek. 10 saniye tarihten sonra tarih yine sola kayıp bu sefer sıcaklığı gösterecek. Sıcaklıkta 10 saniye göründükten sonra tekrar başa dönüp yukarıdan aşağı saat gelecek.
Böyle bir proje ancak bu tabi kolay bir proje değil.
İlk olarak 7 segment ile saat görünecek yukarıdaki gibi 20 saniye. Sonra tarih görünecek 10 saniye sonra sıcaklık görünecek 10 saniye. Bunu çalışmak istedim. bir sürü proje indirdim simülasyonlarda deniyorum. Sizlerin sayesinde yeni bilgiler öğreniyorum. LM35 ile proje yapmak istiyordum ama sizin önerinizle artık DS18B20 projelerini inceliyorum. Sayın ETE nin projelerine bakıyorum.