Pomuze nekdo s dekodovanim

Pavel pavel_t@centrum.cz
Sobota Únor 19 15:53:24 CET 2005


Takze pokud budu pro teplotu vychazet z nasledujiciho schematu:

                            |  RH  | |   T   | .T |
  0.5   63   1100 0001 0011 00111111 0011 0010 1001 0000

tak pro Vasi tabulku plati T = value / 16 - 50 kdy -50C je nula a 
nejnizsi mozna teplota, rozliseni je 12bitu, teoreticke rozliseni je 
0.0625C, tedy trochu podobne jako cidla DS18B20

  0.5 = 0011 0010 1001 = 0x0329 = 809 = 809 / 16 - 50 =  0.5625 = 0.5C
  0.0 = 0011 0010 0000 = 0x0320 = 800 = 800 / 16 - 50 =  0.000  = 0.0C
-0.0 = 0011 0001 1110 = 0x031e = 798 = 798 / 16 - 50 = -0.125  = -0.0C
-1.7 = 0011 0000 0100 = 0x0304 = 772 = 772 / 16 - 50 = -1.750  = -1.7C

Ovsem zaokrouhlovaci algoritmus je trochu ujety, nasledujici tabulka 
vychazi pouze s 11bitu rozliseni a LSB je ignorovan (T = value / 8 - 50)

  0.5 = 0011 0010 100 = 0x0194 = 404 = 404 / 8 - 50 =  0.5C
  0.0 = 0011 0010 000 = 0x0190 = 400 = 400 / 8 - 50 =  0.0C
-0.0 = 0011 0001 111 = 0x018f = 399 = 399 / 8 - 50 = -0.125C ???
-1.7 = 0011 0000 010 = 0x0182 = 386 = 386 / 8 - 50 = -1.750  = -1.7C

zkuste si to porovnat s vice hodnotami, podle me je to 12bitu a rozdily 
jsou zpusobene chybou odectu.

 > Cidlo ma mit rozsah -30stC az do +70stC.

Tabulka pres cely (teoreticky -50C az 205.9C) rozsah pak vypada nasledovne:

-50.0 = 0000 0000 0000 = 0 = 0
-30.0 = 0001 0100 0000 = 0x0140 =  320 / 16 - 50 = -30.0C
   0.0 = 0011 0010 0000 = 0x0320 =  800 / 16 - 50 =   0.0C
  25.5 = 0100 1011 1000 = 0x04b8 = 1208 / 16 - 50 =  25.5C
  50.3 = 0110 0100 0101 = 0x0645 = 1605 / 16 - 50 =  50.3125C
  70.0 = 0111 1000 0000 = 0x0780 = 1920 / 16 - 50 =  70.0C
205.9 = 1111 1111 1111 = 0x0fff = 4095 / 16 - 50 = 205.935C


Takze pokud je to ono tak "vestba" p. Prokopa:

 > teplota=T*0.0625-49.91
 >
 > Je to ale vesteni z kristalove koule, az vetsi rozsah
 > namerenych hodnot ukaze.

byla spravna az na odecet 1/16C resp. po zaokrouhleni 1/10

Pavel

P.S.
> prepnuti mezi °C a °F. Nemeri nahodou a vysila primarne ve stF? Nevim jak
> vypada F stupnice - vim ale ze pri 100stF uz je dost parny leto.

Nekde bych nasel i prepocet, mozna pomuze google, ale jednodusi pro me 
bylo naklepat 3x prevod do kalkulacky, muzete odvozovat...

   0F = -17.778C
  32F = 0C
100F = 37.778C
451F = 232.778C :-)




Další informace o konferenci Hw-list