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