1、前言
我覺(jué)得溫度傳感器應(yīng)該是用量最大的傳感器了,我也接觸了好幾種溫度傳感器,電阻型(50Ω,100Ω)、電流型(4~20mA)、RS485總線型、單總線型,各有各的特點(diǎn)。因?yàn)闇囟葌鞲衅魇褂煤茴l繁,有必要總結(jié)一下幾種最常用的溫度傳感器的采集方式和數(shù)據(jù)換算方法。
2、DS18B20
學(xué)習(xí)單片機(jī)的時(shí)候就很早就學(xué)過(guò)DS18B20溫度傳感器,測(cè)量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范圍內(nèi),精度為 ± 0.5°C 。DS18B20的的特點(diǎn)是使用單總線通信,單片機(jī)只需要使用一根IO口與其通信就能獲取溫度數(shù)據(jù),而且單總線上可以并入多個(gè)傳感器。但是單總線也是DS18B20的缺點(diǎn)之一,單總線的長(zhǎng)度不能太長(zhǎng),否則容易導(dǎo)致信號(hào)不穩(wěn)定,易受干擾,所以適合測(cè)量電路板的溫度、機(jī)箱內(nèi)溫度等,如果測(cè)量點(diǎn)在2米以外這通信就不穩(wěn)定了。另外主機(jī)端讀取溫度的時(shí)候時(shí)序要求比較嚴(yán)格,通信一次需要消耗ms級(jí)的運(yùn)算時(shí)間(其實(shí)大部分是在循環(huán)等待),通信過(guò)程中不宜被打斷,如果關(guān)閉全局中斷,會(huì)影響其他重要事件的響應(yīng)。
DS18B20的通訊時(shí)序就不介紹了,網(wǎng)上實(shí)在是太多資料了。
3、PT100/PT1000
PT100和PT1000傳感器是一樣的,都是電阻型的傳感器,使用的材質(zhì)為鉑電阻(很貴的樣子),溫度的采集范圍可以在-200℃~+850℃,比DS18B20溫度傳感器的測(cè)量范圍寬很多。PT100傳感器在0℃的時(shí)候?yàn)?00歐姆,PT1000傳感器在0℃的時(shí)候?yàn)?000歐姆,使用的比較多的是PT100,這里就介紹PT100傳感器。
PT100的溫度分度表百度上滿滿的。表面看來(lái)PT100的測(cè)量溫度T和電阻R呈現(xiàn)線性關(guān)系,但是實(shí)際上不完全是線性的,偏差大的地方會(huì)有好幾攝氏度的誤差,如果想要得到比較高精度的溫度測(cè)量結(jié)果就不能按照線性關(guān)系來(lái)計(jì)算。使用查表法可以計(jì)算比較精確的溫度值,PT100的分度表是每5℃記錄一次阻值,我們?nèi)绻麥y(cè)量測(cè)到電阻為Ra,這時(shí)候從電阻分度表中使用二分法進(jìn)行查找找到電阻Ra處于哪兩個(gè)阻值Rb、Rc之間(假如沒(méi)有正好落在阻值上面),然后在Rb和Rc之間近似按照線性計(jì)算Ra對(duì)應(yīng)的溫度值。實(shí)際使用的精度非常高,主要誤差還是在測(cè)量傳感器電阻上。
4、CU50/CU100
CU50和CU100的關(guān)系跟PT100和PT1000的關(guān)系是一樣的,只介紹CU50傳感器。CU50的CU表示的是銅(PT表示的是鉑),也就是說(shuō)CU50使用的是銅材質(zhì)(很便宜的樣子),但是CU50得溫度測(cè)量范圍為-50°C-150°C,在測(cè)量溫度在-50°C-150°C范圍之內(nèi)的時(shí)候,傳感器電阻和溫度處于一定的函數(shù)關(guān)系,當(dāng)?shù)陀?50℃或者高于150℃的時(shí)候就不符合那個(gè)函數(shù)式了,可能是由于銅的材質(zhì)問(wèn)題,所以CU50一般只能測(cè)量-50°C-150°C溫度范圍。
CU50熱電阻分度表參考文章:https://wenku.baidu.com/view/9c5ee92e14791711cc791781.html
當(dāng)測(cè)量溫度在-50℃<t<150℃時(shí), ,其中A=4.280×10-3;B=-9.31×10-8;C=1.23×10-9,R(0℃)=50。 這是傳感器電阻關(guān)于溫度的函數(shù)式,但是我們真正使用的時(shí)候能測(cè)量出來(lái)傳感器的電阻,需要求出來(lái)對(duì)應(yīng)的溫度,所以這個(gè)式子需要把X軸和Y軸掉個(gè)。但是發(fā)現(xiàn)這個(gè)式子是一個(gè)一元三次函數(shù),我試著解了一次想得到溫度T關(guān)于電阻r的函數(shù)式T=f(r),著實(shí)解不出來(lái),那就耍點(diǎn)技巧--將次。
假設(shè)測(cè)量的溫度t為150℃,這時(shí)候電阻R差不多為82歐姆,這時(shí)候:
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。
可以看到上面的幾項(xiàng)中后兩項(xiàng)小到幾乎可以忽略掉,其實(shí)不管t為多少,后面兩項(xiàng)的值都遠(yuǎn)小于前兩項(xiàng)的,也就是說(shuō)可以去掉Bt(t-100℃)和Ct2(t-100℃)即可。這時(shí)候式子:
就可以轉(zhuǎn)成:
R = R(0℃)[1+At]
R = 50 * [1+At]
這下式子被“降次打擊”了,既可以求出t關(guān)于R的關(guān)系式了:
t = (R/50 - 1) / A
假如測(cè)量到的電阻為82.134Ω(150℃),代入上式計(jì)算得到 t = 150.159℃,假如測(cè)量到的電阻為39.242Ω(-50℃),計(jì)算得到的 t = -50.28,誤差并不大,屬于可以接受大范圍之內(nèi)。降次打擊成功。
如果對(duì)上面計(jì)算的精度還是滿意的話,需要解一元三次方程:
R = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] ..........................................①
R由采集系統(tǒng)測(cè)量測(cè)到,則有:
Y = R(0℃)[1+At+Bt(t-100℃)+Ct^2(t-100℃)] - R ..........................................②
求解②式與X軸的交點(diǎn)即可,藝高人可以自行求解。
如果解不出來(lái)還有一個(gè)常規(guī)辦法就是查表法,和PT100溫度傳感器一樣。