1、前言
我覺得溫度傳(chuan) 感器應該是用量最大的傳(chuan) 感器了,我也接觸了好幾種溫度傳(chuan) 感器,電阻型(50Ω,100Ω)、電流型(4~20mA)、RS485總線型、單總線型,各有各的特點。因為(wei) 溫度傳(chuan) 感器使用很頻繁,有必要總結一下幾種最常用的溫度傳(chuan) 感器的采集方式和數據換算方法。
2、DS18B20
學習(xi) 單片機的時候就很早就學過DS18B20溫度傳(chuan) 感器,測量範圍為(wei) -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C範圍內(nei) ,精度為(wei) ± 0.5°C 。DS18B20的的特點是使用單總線通信,單片機隻需要使用一根IO口與(yu) 其通信就能獲取溫度數據,而且單總線上可以並入多個(ge) 傳(chuan) 感器。但是單總線也是DS18B20的缺點之一,單總線的長度不能太長,否則容易導致信號不穩定,易受幹擾,所以適合測量電路板的溫度、機箱內(nei) 溫度等,如果測量點在2米以外這通信就不穩定了。另外主機端讀取溫度的時候時序要求比較嚴(yan) 格,通信一次需要消耗ms級的運算時間(其實大部分是在循環等待),通信過程中不宜被打斷,如果關(guan) 閉全局中斷,會(hui) 影響其他重要事件的響應。
DS18B20的通訊時序就不介紹了,網上實在是太多資料了。
3、PT100/PT1000
PT100和PT1000傳(chuan) 感器是一樣的,都是電阻型的傳(chuan) 感器,使用的材質為(wei) 鉑電阻(很貴的樣子),溫度的采集範圍可以在-200℃~+850℃,比DS18B20溫度傳(chuan) 感器的測量範圍寬很多。PT100傳(chuan) 感器在0℃的時候為(wei) 100歐姆,PT1000傳(chuan) 感器在0℃的時候為(wei) 1000歐姆,使用的比較多的是PT100,這裏就介紹PT100傳(chuan) 感器。
PT100的溫度分度表百度上滿滿的。表麵看來PT100的測量溫度T和電阻R呈現線性關(guan) 係,但是實際上不完全是線性的,偏差大的地方會(hui) 有好幾攝氏度的誤差,如果想要得到比較高精度的溫度測量結果就不能按照線性關(guan) 係來計算。使用查表法可以計算比較精確的溫度值,PT100的分度表是每5℃記錄一次阻值,我們(men) 如果測量測到電阻為(wei) Ra,這時候從(cong) 電阻分度表中使用二分法進行查找找到電阻Ra處於(yu) 哪兩(liang) 個(ge) 阻值Rb、Rc之間(假如沒有正好落在阻值上麵),然後在Rb和Rc之間近似按照線性計算Ra對應的溫度值。實際使用的精度非常高,主要誤差還是在測量傳(chuan) 感器電阻上。
4、CU50/CU100
CU50和CU100的關(guan) 係跟PT100和PT1000的關(guan) 係是一樣的,隻介紹CU50傳(chuan) 感器。CU50的CU表示的是銅(PT表示的是鉑),也就是說CU50使用的是銅材質(很便宜的樣子),但是CU50得溫度測量範圍為(wei) -50°C-150°C,在測量溫度在-50°C-150°C範圍之內(nei) 的時候,傳(chuan) 感器電阻和溫度處於(yu) 一定的函數關(guan) 係,當低於(yu) -50℃或者高於(yu) 150℃的時候就不符合那個(ge) 函數式了,可能是由於(yu) 銅的材質問題,所以CU50一般隻能測量-50°C-150°C溫度範圍。
CU50熱電阻分度表參考文章:https://wenku.baidu***.com/view/9c5ee92e14791711cc791781.html
當測量溫度在-50℃<t<150℃時, ,其中A=4.280×10-3;B=-9.31×10-8;C=1.23×10-9,R(0℃)=50。 這是傳(chuan) 感器電阻關(guan) 於(yu) 溫度的函數式,但是我們(men) 真正使用的時候能測量出來傳(chuan) 感器的電阻,需要求出來對應的溫度,所以這個(ge) 式子需要把X軸和Y軸掉個(ge) 。但是發現這個(ge) 式子是一個(ge) 一元三次函數,我試著解了一次想得到溫度T關(guan) 於(yu) 電阻r的函數式T=f(r),著實解不出來,那就耍點技巧--將次。
假設測量的溫度t為(wei) 150℃,這時候電阻R差不多為(wei) 82歐姆,這時候:
1+At+Bt(t-100℃)+Ct2(t-100℃)
= 1 + A*150 + B*150*(150-100)+C*150^2*(150-100)
= 1 + 0.642 - 0.00069825 + 0.00138375。
可以看到上麵的幾項中後兩(liang) 項小到幾乎可以忽略掉,其實不管t為(wei) 多少,後麵兩(liang) 項的值都遠小於(yu) 前兩(liang) 項的,也就是說可以去掉Bt(t-100℃)和Ct2(t-100℃)即可。這時候式子:
就可以轉成:
R = R(0℃)[1+At]
R = 50 * [1+At]
這下式子被“降次打擊”了,既可以求出t關(guan) 於(yu) R的關(guan) 係式了:
t = (R/50 - 1) / A
假如測量到的電阻為(wei) 82.134Ω(150℃),代入上式計算得到 t = 150.159℃,假如測量到的電阻為(wei) 39.242Ω(-50℃),計算得到的 t = -50.28,誤差並不大,屬於(yu) 可以接受大範圍之內(nei) 。降次打擊成功。
如果對上麵計算的精度還是滿意的話,需要解一元三次方程:
R = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] ..........................................①
R由采集係統測量測到,則有:
Y = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] - R ..........................................②
求解②式與(yu) X軸的交點即可,藝高人可以自行求解。
如果解不出來還有一個(ge) 常規辦法就是查表法,和PT100溫度傳(chuan) 感器一樣。