DS1820 i izracunavanje temperature

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
TomicIgor
Pocetnik na forumu
Pocetnik na forumu
Posts: 46
Joined: 25-06-2009, 23:34

DS1820 i izracunavanje temperature

Post by TomicIgor »

Prvo, pozdrav svima :) a onda moj problem...
Imam problem sa izracunavanjem temperature, to sam tek primjetio kad je krenula jaca zima i temeratura spala ispod 0 tada mi se javlja cifra koja prikazuje -128 stepeni celzijusa, a primjetio sam da ispise i -125 sto znaci da se menja zavisno od temperature. Sta treba prepraviti u kodu da bi to radilo kako treba i u negativnom opsegu... Ako iko moze pomoci, bas bi mi dobrodosla :)

Kod u vb:

Code: Select all

Predznak = 0
      
      Temp0 = BufferIn(2)
      Temp1 = BufferIn(3)

      If Temp1 = 255 Then
      Temp1 = Not (Temp1)
      Temp1 = Temp1 - 1
      Predznak = 1
      End If
      
      Temperatura = 0
      If Temp0 And 1 = 1 Then
      Temperatura = Temp0 / 2 + 0.5
      Else
      Temperatura = Temp0 / 2
      End If

      Temperatura = Temperatura - 0.25 + ((BufferIn(5) - BufferIn(4)) / BufferIn(5))
      If Predznak = 1 Then
      Temperatura = 0 - Temperatura
      End If
      
      If Predznak = 0 Then
      lblG.Caption = " " + Format(Temperatura, "####0.00")
      Else
      lblG.Caption = Format(Temperatura, "####0.00")
      End If
A u buffer-ima koji stizu sa pic-a stoji sledece:
USBBuffer[1]=temperatura.LowByte
USBBuffer[2]=temperatura.HighByte
USBBuffer[3]=count_remain
USBBuffer[4]=Count_per_c

Svaka pomoc je dobrodosla :), znam da mogu resiti u pic-u da izracuna sve i onda samo prosledi, ali da mi je da izracunam u vb po toj formuli jer bi mi bio rezultat na dvije decimale..
Pozz
Pulapola
Posts: 5
Joined: 11-08-2009, 11:02
Location: Pula

Re: DS1820 i izracunavanje temperature

Post by Pulapola »

Ako koristiš DS18B20, onda kod koji kod mene radi dobro je:

Code: Select all

     TL = TL \ 2:
     Temp = (TL - 0.25 + ((CP - CR) / CP))

        If Temp > 90 Then        
          Temp = 0 - Temp '<== OVO JE za NEGATIVNU TEMPERATURU
          Temp = Temp + 100 '<== OVO JE za NEGATIVNU TEMPERATURU
          Text1.ForeColor = vbBlue    '-- Negativna temperatura PLAVO
        
          MsgBox (">90")
        End If
        
        Text1.Text = Format(Temp, "####0.00")
TL = Tbyte(&HFF)
TH = Tbyte(&HFF)
CR = Tbyte(&HFF)
CP = Tbyte(&HFF)
Pozdrav i javi ako radi
User avatar
TomicIgor
Pocetnik na forumu
Pocetnik na forumu
Posts: 46
Joined: 25-06-2009, 23:34

Re: DS1820 i izracunavanje temperature

Post by TomicIgor »

Zaboravio sam navesti, da koristim DS1820 i kao sto rekog, u pozitivnom opsegu radi kako treba, a brlja kada temperatura padne ispod 0.25 stepeni.. pa ako mi mozete pomoci u vezi njega..

Pozzdrav ali ipak hvala na trudu..
Post Reply