Hesaplama hatası

Başlatan _tnt, 22 Haziran 2014, 00:02:47

_tnt

Ds18b20 ile ısı okurken  bir hesaplama hatasıyla karşılaştım
formül ete hocanın kullandığı;
ISI=HAM*10/16
Örneğin ham değer 4250, 10 ile çarptığımızda 42500, 16 ya bölündüğünde 2656 çıkması gerekirken çıkan sonuç 265.
Benmi yanlışım yoksa bu hesapmı yanlış?

ete

Bu sensor +125 derece ile -55 derece arasında ölçüm yapar.
0 ile 125 derece arasında okuduğu ham değer 0-2000 arasındadır.
0- ile eksi 55 derece aradında okuduğu değer ise 65535 - 64656 arasındadır.
Biz okunan değerin 11. Ci bitine bakarak sıcaklığın eksimi artımı olduğunu snlıyoruz eksi değerleri 65535 den çıkartıp 1 ekliyoruz çünki çıkarmamız gereken sayı aslında 65536 dır.
Bu verilere bakarak rastgele bir ham değer örneği verdiğin anlaşılıyor.
Diğer taraftan data sheet sıcaklık hesabı için ham değeri 0,0625 ile çarpın diyor. Bu rakam aynı zamanda 1/16 ya eşittir. Biz ondalıkda hesap edebilmek için 1/16 yerine 10/16 formülünü kullanıp,
Ham *10/16 şeklinde kullanıyoruz formülü. Denemek için maksimum sıcaklık değeri olan 2000 değerini formüle koyalım. 2000*10/16=1250 değerini bulursunuz. O halde ne diyebiliriz formül doğru. Bu durumda yanlışlık sende olmalı. Bir yerlerde sonucu yeniden 10 a bölüyorsundur. Programı koy buraya anında bulayım yada aynı değişken başka yerden değer alıyordur . Başka bir izahı olamaz.

Ete

Powered by EzPortal