久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2184|回復(fù): 13
打印 上一主題 下一主題
收起左側(cè)

DS18B20輸出值為什么那么單調(diào)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71233 發(fā)表于 2022-1-21 13:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 新新科技 于 2022-1-21 13:20 編輯

  幾年前從T寶上購買的不銹鋼封裝防水型DS18b20溫度探頭,近期拿出來用用。  我設(shè)置的有效數(shù)字是到到小數(shù)點后一位的,即:從18B20讀出十二位數(shù)據(jù),然后乘0.625,得到上百的溫度值(計算的結(jié)果是200即為20度,計算的結(jié)果是185即為18.5度)。
  但偶然的機會發(fā)現(xiàn)一個奇怪的問題:就是其溫度顯示一般是整數(shù)值,要么就是小數(shù)0.5的值,例如顯示18度,18.5度,19.5度,就是不會顯示18.1、18.2、18.3等數(shù)據(jù)。懷疑是換算出問題,直接檢查從18B20讀出的高四位和低八位的十六進制數(shù)據(jù),結(jié)果:一般是0尾的或是8尾的,例如0x0130,0x138等,所以基本不用考慮是換算產(chǎn)生的錯誤。
  這種現(xiàn)象是不是DS18b20溫度傳感器是冒牌的或是國產(chǎn)的導(dǎo)致的?請高手給分析分析,謝謝!




2022-01-21_130726.png (103.2 KB, 下載次數(shù): 37)

2022-01-21_130726.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:716656 發(fā)表于 2022-1-21 15:46 | 只看該作者
沒用過ds18b20,但是查了一下,該器件精度是±0.5℃的,所以數(shù)值每次變化最小范圍應(yīng)該就是0.5℃吧。PTC\NTC精度會高點吧
回復(fù)

使用道具 舉報

板凳
ID:824490 發(fā)表于 2022-1-21 16:06 | 只看該作者
精度與分辯率的問題。。。 18B20的精度是0.5度,也就是說其測到的數(shù)值與實際溫度的誤差在0.5之內(nèi)。 分辯率是0.625度,就是說測到的數(shù)值是0.625的倍數(shù)。
回復(fù)

使用道具 舉報

地板
ID:71233 發(fā)表于 2022-1-21 18:19 | 只看該作者
本帖最后由 新新科技 于 2022-1-21 18:23 編輯
壓著我頭發(fā)啦 發(fā)表于 2022-1-21 15:46
沒用過ds18b20,但是查了一下,該器件精度是±0.5℃的,所以數(shù)值每次變化最小范圍應(yīng)該就是0.5℃吧。PTC\NTC ...

精度0.5℃的意思是說,如果正確溫度是20℃,那么18b20測得的結(jié)果最低可能是19.5℃,而最高可能是20.5℃,那么,如果正確的溫度是20.2℃呢?
回復(fù)

使用道具 舉報

5#
ID:423911 發(fā)表于 2022-1-21 19:59 | 只看該作者
你不是不漏了一個“0”?應(yīng)該是0.0625吧?

評分

參與人數(shù) 2黑幣 +15 收起 理由
TEC + 10 贊一個!
名字不是重點 + 5 很給力!你是對的,多謝提醒!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:624769 發(fā)表于 2022-1-21 20:00 | 只看該作者
我不知道你的 * 0.625 是用什么方式計算的, 但是, 一般用18B20的話,通常的做法是把得到的值左移4位,高8位就是溫度的整數(shù)值,低8位為0的話就是整數(shù)溫度,非0就是 0.5 的溫度。18B20 一般也就測一下室溫,沒有什么好期待的。
回復(fù)

使用道具 舉報

7#
ID:160500 發(fā)表于 2022-1-21 20:31 | 只看該作者
精度和分辨率不是一回事,仔細(xì)看看手冊就知道了
回復(fù)

使用道具 舉報

8#
ID:160500 發(fā)表于 2022-1-21 20:42 | 只看該作者
看看這個表

51hei圖片20220121204133.png (59.02 KB, 下載次數(shù): 53)

51hei圖片20220121204133.png
回復(fù)

使用道具 舉報

9#
ID:96682 發(fā)表于 2022-1-22 00:06 來自手機 | 只看該作者
塑封的小數(shù)點后的數(shù)字能連續(xù)變化,金屬封裝對溫度就沒那么敏感了。關(guān)鍵還是看程序怎樣
回復(fù)

使用道具 舉報

10#
ID:71233 發(fā)表于 2022-1-22 10:14 | 只看該作者
zlj20181110 發(fā)表于 2022-1-21 19:59
你不是不漏了一個“0”?應(yīng)該是0.0625吧?

沒錯,乘0.0625得到的是浮點準(zhǔn)確數(shù)值,我乘0.625是將這個數(shù)值擴大10倍,以便于顯示到LCD1602上,上面的問題敘述有提及。
回復(fù)

使用道具 舉報

11#
ID:71233 發(fā)表于 2022-1-22 10:22 | 只看該作者
wc86110 發(fā)表于 2022-1-22 00:06
塑封的小數(shù)點后的數(shù)字能連續(xù)變化,金屬封裝對溫度就沒那么敏感了。關(guān)鍵還是看程序怎樣

關(guān)鍵程序:
void readtemp_ds18b20() //讀取溫度
{
        uint  temp32;
        uchar templ,temph;
        EA=0;
        rest_ds18b20();//復(fù)位
        write_ds18b20(0xcc); //跳過讀序列號的操作
        write_ds18b20(0x44); //啟動溫度轉(zhuǎn)換
        delay_50us(15);
        rest_ds18b20();//復(fù)位
        write_ds18b20(0xcc); //跳過讀序列號的操作
        write_ds18b20(0xbe); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
        templ=read_ds18b20();//低八位
        temph=read_ds18b20();//高八位

        temp32=(temph<<8)|templ;//合并為十六位
        if((temph&0xf0))//判斷溫度的正負(fù)性
        {
                temp32=~temp32+1;
                temp32=temp32*0.625;//溫度值擴大10倍
                temp=-temp32;//溫度為負(fù)數(shù)
        }
        else//為正數(shù)
        {        
                temp=temp32*0.625;        //溫度值擴大10倍
        }
EA=1;

}

void show_18B20()//顯示18B20的溫度
{
        uchar i;
        LcdSetCursor(2,7); //顯示位置
        i=temp/100;
        write_LCD_data(tex[ i]);// //顯示百位,即溫度十位
        i=temp/10%10;
        write_LCD_data(tex[i ]);// //顯示十位,即溫度個位
        write_LCD_data('.');//顯示小數(shù)點
        i=temp%10;
        write_LCD_data(tex[i ]);//顯示個位,即溫度小數(shù)部分
}
回復(fù)

使用道具 舉報

12#
ID:71233 發(fā)表于 2022-1-22 16:47 | 只看該作者
再次看看手冊,終于弄明白了,是配置寄存器的問題。DS18B20一般出廠是設(shè)置為12位的,但本人手頭的18b20是設(shè)置為9位精度的,所以只能測量到整數(shù)度數(shù)或0.5度數(shù)。謝謝大家的關(guān)注!

評分

參與人數(shù) 1黑幣 +10 收起 理由
TEC + 10 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

13#
ID:625730 發(fā)表于 2022-1-22 18:58 | 只看該作者
新新科技 發(fā)表于 2022-1-21 18:19
精度0.5℃的意思是說,如果正確溫度是20℃,那么18b20測得的結(jié)果最低可能是19.5℃,而最高可能是20.5℃, ...

精度正負(fù)0.5度,應(yīng)該這么理解:如果測量值是20度,那么實際的溫度在-19.5到20.5之間。
回復(fù)

使用道具 舉報

14#
ID:378108 發(fā)表于 2022-1-29 00:08 | 只看該作者
18b20可以設(shè)置不同的采樣位數(shù),比如7位,9位,你初始化的時候,估計把它忘了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲另类春色偷拍在线观看 | 欧美激情精品久久久久久 | 91国产视频在线 | 九九热在线视频免费观看 | 日韩精品视频网 | 国产精品一二三区 | 国产一区二区黑人欧美xxxx | 成人在线免费观看 | 国产免费一区二区三区 | 91色站| h在线| 一区二区三区精品视频 | 久久久久无码国产精品一区 | 一区二区三区四区不卡 | 欧美精品区| 亚洲精品成人在线 | 伊人久久精品一区二区三区 | 自拍偷拍中文字幕 | 国产精品免费观看 | 99福利视频导航 | 成人精品视频99在线观看免费 | 日韩精品一区二区三区在线观看 | 日韩色在线 | 91最新在线视频 | 中文字幕日本一区二区 | 毛片在线看片 | 9久久精品| 成人三级在线观看 | 久久久国产精品一区 | 欧美日韩在线观看一区二区三区 | 伊人网伊人网 | 精品国产色 | 久久精品色欧美aⅴ一区二区 | 99久久久久国产精品免费 | 国产精品一区二区三区免费观看 | 婷婷综合激情 | 韩日有码 | 欧美日韩一区不卡 | 国产在线中文字幕 | 欧美日韩成人网 | 日韩电影中文字幕 |