![]() |
發布時間: 2019-8-26 10:29
正文摘要:18B20用的很熟了,從來沒有出現問題,直到某寶買了幾個18B20無法讀出溫度值,仔細看,以前的18B20序號是1620C4+233AA,序號為1710C4+816AC,就是右邊的這個18B20,除了應答脈沖基本正常以外,無論如何讀出的溫度值永 ... |
M_my 發表于 2019-8-28 10:32 兄臺一出口,便知實力不俗 |
多謝各位的回復!的確是時序問題,經過調整,四個18B20可以讀出三個,有一個讀出來的溫度值永遠是85,那三個正常的18B20又有一個超過30度時不時會變成85,超過50度徹底變成85,放置好幾分鐘又正常,這就說明,這批18B20肯定是假貨,而且毫無懸念!好在只有四個,以前我用過的18B20從來沒有出過問題。在這里我給大家提個醒,序號為1710C4+816AC的18B20肯定是假貨,誰買誰上當。 |
1. 不管假貨真貨都能讀溫度的; 2. 一般都是時序問題,當然也也可能電路問題; 3. 時序寫嚴格一點吧,示波器觀察下。 |
讀取溫度的兩次間隔要拉遠一點,至少750ms |
85度是18b20初始化的數據,這說明是不是初始化過后就沒有數據更新了,一般是延時函數有問題 |
是否是上拉太強 |
在實驗板上,左邊的18B20一切正常,右邊的18B20就是不行,一直都是85度,上拉電阻肯定正常,各種時序調整過還是不行,轉換溫度指令發送后加延時,可以讀出27,但是,溫度如何變化還是27 |
時序不對呀 |
假貨肯定不是,能讀出85至少器件傳送數據是沒有問題的,主要要查讀出的時序關系是否正確,與程序的結構和編寫有關,與單片機晶振頻率有關,建議先把時序調整一下,盡量滿足較大的時序關系。 |
是沒有上拉嗎。 |