標(biāo)題: 關(guān)于DS18B20數(shù)據(jù)轉(zhuǎn)換temp=tp*0.0625*100+0.5 [打印本頁(yè)]

作者: 遠(yuǎn)征之路    時(shí)間: 2024-5-3 11:44
標(biāo)題: 關(guān)于DS18B20數(shù)據(jù)轉(zhuǎn)換temp=tp*0.0625*100+0.5
在學(xué)習(xí)DS18B20程序時(shí),怎么理解數(shù)據(jù)轉(zhuǎn)換 temp=tp*0.0625*100+0.5;

求大神分別 解釋一下* 0.0625;*100;+0.5 的具體含義?

作者: snso666    時(shí)間: 2024-5-3 14:12
*100表示保留小數(shù)兩位,+0.5表示對(duì)第三位小數(shù)四舍五入。
作者: snso666    時(shí)間: 2024-5-3 14:12
*100表示保留小數(shù)兩位,+0.5表示對(duì)第三位小數(shù)四舍五入。
作者: zhuls    時(shí)間: 2024-5-3 17:40
個(gè)人覺(jué)得,18B20的小數(shù)用查表來(lái)的更方便快捷。。
u8 tt[16]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9},
就一個(gè)16成員的數(shù)組而已,18B20的分辯率雖有0.0625度,但精度+-0.5度,
所以小數(shù)點(diǎn)后一位的分辯率夠用了。后兩位顯示出來(lái),并沒(méi)什么用。
且測(cè)溫這種慣量容差大的應(yīng)用,真需要高精度的,也用不上18B20了。
作者: fj51hei    時(shí)間: 2024-5-4 08:39
zhuls 發(fā)表于 2024-5-3 17:40
個(gè)人覺(jué)得,18B20的小數(shù)用查表來(lái)的更方便快捷。。
u8 tt[16]={0,1,1,2,3,3,4,4,5,6,6,7,8,8, ...

樓主位的公式,編譯器會(huì)當(dāng)浮點(diǎn)計(jì)算?
作者: zhuls    時(shí)間: 2024-5-4 10:53
不確定,但可以編譯一下看看。
作者: 遠(yuǎn)征之路    時(shí)間: 2024-5-6 08:53
zhuls 發(fā)表于 2024-5-3 17:40
個(gè)人覺(jué)得,18B20的小數(shù)用查表來(lái)的更方便快捷。。
u8 tt[16]={0,1,1,2,3,3,4,4,5,6,6,7,8,8, ...

大神,請(qǐng)問(wèn)一下 18B20的分辯率雖有0.0625度,怎么計(jì)算的?18B20輸出數(shù)字量12位,但是量程是180℃,若用180/4095=0.043度?
作者: angmall    時(shí)間: 2024-5-6 10:39
遠(yuǎn)征之路 發(fā)表于 2024-5-6 08:53
大神,請(qǐng)問(wèn)一下 18B20的分辯率雖有0.0625度,怎么計(jì)算的?18B20輸出數(shù)字量12位,但是量程是180℃,若用18 ...

關(guān)于DS18B20的分辨率,它的分辨率是由其內(nèi)部的12位ADC(模數(shù)轉(zhuǎn)換器)決定的。DS18B20的分辨率是0.0625度(1/16度)。 這意味著它可以將溫度值轉(zhuǎn)換為2的12次方(4096)個(gè)不同的數(shù)字化輸出。因?yàn)镈S18B20的溫度范圍是從 -55°C 到 +125°C,所以每個(gè)數(shù)字化輸出代表的溫度范圍為(125°C - (-55°C)) / 4096 ≈ 0.043°C。這就是你提到的0.043度的計(jì)算方式。

所以,每個(gè)數(shù)字化輸出代表大約0.043°C的溫度變化,這就是為什么可以說(shuō)DS18B20的分辨率是0.0625°C的原因。這個(gè)值比實(shí)際的分辨率稍微高一些,可能是由于精度損失或其他因素造成的。

此外,DS18B20的精度為±0.5°C,在 -10°C 到 +85°C 的范圍內(nèi)。這意味著在這個(gè)溫度范圍內(nèi),溫度測(cè)量的準(zhǔn)確度可以保證在±0.5°C之內(nèi)。

作者: zhuls    時(shí)間: 2024-5-6 11:07
遠(yuǎn)征之路 發(fā)表于 2024-5-6 08:53
大神,請(qǐng)問(wèn)一下 18B20的分辯率雖有0.0625度,怎么計(jì)算的?18B20輸出數(shù)字量12位,但是量程是180℃,若用18 ...

手冊(cè)中有,18B20測(cè)量范圍是180C,是從-55到+125的:
Measures temperatures from –55°C to +125°C (–67°F to +257°F)
±0.5°C accuracy from –10°C to +85°C
看手冊(cè):

你看LSB的你4 位就是小數(shù)點(diǎn)后的值,共4bit,最低位就是0.0625C了
溫度值傳回來(lái)的是16bit,高低各一字節(jié),數(shù)值從LSB.0到MSB.2,有效位是內(nèi)容11bit.
而MSB的高5位(bit7-bit3)則表示正負(fù)溫:全0正溫,全1是負(fù)溫。
正溫直接取數(shù),負(fù)溫取補(bǔ)碼。
說(shuō)這些,只希望對(duì)你有點(diǎn)幫助。
建議你在器件選型時(shí)認(rèn)前閱讀相關(guān)的手冊(cè)。。。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1