18B20 ölçüm hatası

Başlatan enrique_iglesias, 22 Ocak 2009, 21:26:15

enrique_iglesias

Arkadaşlar merhaba sanırım kafam durdu işin içinden çıkamadım sizle paylaşmak istedim...

18b20 ile yüzlerce ölçüm yaptım.Ama bu sefer 5metre ekransız kablo kullanarak sensörü ucuna bağladım çalışmadı.Bende 4.7k direnci çıkardım yerine pot koydum 2.6ohm 'da çalıştı..Bu sağlıklı olurmu?

+sıcaklıkta bir sapma yok ama - sıcaklığa geldiğinde termometre ile arasında nerdeyse 5 derece fark var termometre -3 gösterirken sensör -10 gösteriyor acaba hesap hatammı var? Flot değerleri lineer değil yani -10.6 dereceden birden -9.3 dereceye atlıyor.....Ama + derecede lineer flotta ve ölçümde sorun yok....

Kodlarım :

          OWOUT   sens1, 1, [$CC, $44]' ISI değerini oku
Bekle:
           OWIN    sens1, 4, [Busy]    ' Busy değerini oku
           IF      Busy = 0 THEN Bekle  ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   sens1, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    sens1, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN
             
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    Sign  = "+"
    IF SIGN_BITI = NEGAT_ISI THEN
       Sign   = "-"  
       temp=($ffff-ham+1)*625
       ISI  = DIV32 10 
       GOTO GEC   
    endif

TEMP = 625 * (HAM+1) 
ISI = DIV32 100 
GEC: 
FLOAT = (ISI //100)/10 
ISI=ISI/100 
RETURN