在嵌入式產(chǎn)品中,溫度檢測非常常見。在成本比較敏感而精度要求較低時,NTC電阻是個不錯的選擇。在這一篇中,我們將討論如何和設(shè)計并實現(xiàn)一個通用的NTC驅(qū)動,以便在后續(xù)的項目中更方便的復(fù)用。
1、功能概述
??NTC是指隨溫度上升電阻呈指數(shù)關(guān)系減小、具有負(fù)溫度系數(shù)的熱敏電阻現(xiàn)象和材料。NTC熱敏電阻是以錳、銅、硅、鈷、鐵、鎳、鋅等金屬氧化物為主要材料,采用陶瓷工藝制造而成的,其電阻率和材料常數(shù)隨材料成分比例、燒結(jié)氣氛,燒結(jié)溫度和結(jié)構(gòu)狀態(tài)不同而變化。現(xiàn)在還出現(xiàn)了以碳化硅、硒化錫、氮化鉭等為代表的非氧化物系NTC熱敏電阻材料。因此,在實現(xiàn)小型化的同時,還具有電阻值、溫度特性波動小、對各種溫度變化響應(yīng)快的特點,可進(jìn)行高靈敏度、高精度的檢測。
??NTC 熱敏電阻是一種典型具有溫度敏感性的半導(dǎo)體電阻。根據(jù)標(biāo)準(zhǔn)IEC 60539-1的規(guī)定,NTC的電阻與溫度存在如下關(guān)系曲線:
??對于NTC的這種電阻與溫度的關(guān)系也可以使用近似的舒徐公式來表示:
??其中,R是在絕對溫度T時,NTC的零功率電阻。Ra是在絕對溫度Ta時,NTC的零功率電阻。
??B值是負(fù)溫度系數(shù)熱敏電阻器的熱敏常數(shù),每種既定的材料都只有一個B值。B值可以通過測量在25攝氏度和50攝氏度(或85攝氏度)時的電阻值后進(jìn)行計算。B值與產(chǎn)品電阻溫度系數(shù)正相關(guān),也就是說B值越大,其電阻溫度系數(shù)也就越大。
2、驅(qū)動設(shè)計與實現(xiàn)
??NTC作為測溫元件的原理我們已經(jīng)明白了,在此基礎(chǔ)上我們就可以來實現(xiàn)其測溫的驅(qū)動程序。
2.1、對象定義
??我們依然是將NTC當(dāng)作一個對象,首先定義其對象類型。對于不同的NTC有三個參數(shù)是與其自身緊密相關(guān)的,或者說一旦制造就不會更改的。那就是B值、標(biāo)稱溫度與標(biāo)稱電阻。B值與材質(zhì)有關(guān),標(biāo)稱溫度通常定為25攝氏度,標(biāo)稱電阻則為標(biāo)稱溫度下的電阻。所以我們定義NTC對象類型為:
/* 定義NTC電阻測溫對象 */
typedef struct NTCObject{
float BValue; //NTC的B常數(shù)
float nominalT; //NTC標(biāo)稱溫度(攝氏度)
float nominalR; //NTC標(biāo)稱電阻
}NTCObjectType;
??在一個對象使用之前必須對其實現(xiàn)初始化配置。主要是對指針進(jìn)行檢查及對屬性變量和操作指針進(jìn)行賦值。
/* NTC對象初始化函數(shù) */
void NTCInitialization(NTCObjectType *ntc,float bValue,float nt,float nr)
{
if(ntc==NULL)
{
return;
}
ntc->BValue=bValue;
ntc->nominalT=nt;
ntc->nominalR=nr;
}
2.2、對象操作
??在我們實現(xiàn)了對象的定義和初始化之后,我們就可以操作對象來得到溫度值。那么如何操作對象得到溫度值呢?我們前面已經(jīng)提到過,NTC是一種隨溫度上升時,電阻值呈指數(shù)關(guān)系減小的熱敏電阻。而這種指數(shù)關(guān)系就是我們前面提到的電阻與溫度的關(guān)系表達(dá)式。于是我們就可以根據(jù)這一表達(dá)式推導(dǎo)出有電阻計算溫度的公式:
??根據(jù)以上公式我們可以通過檢測電阻來計算溫度:
/*公式法計算NTC溫度值*/
float NTCTemperature(NTCObjectType *ntc,float resistance)
{
float temp;
float result=0.0;
result=resistance/ntc->nominalR;
result=(log(result)/ntc->nominalR)+(1/(ntc->nominalT+KELVIN_CONSTANT));
temp=1/result-KELVIN_CONSTANT;
return temp;
}
3、驅(qū)動的使用
??接下來使用我們前面開發(fā)的驅(qū)動來實現(xiàn)NTC檢測溫度。首先需要使用NTCObjectType對象類型聲明NTC對象變量。
??NTCObjectType ntc;
??這個對象變量必須初始化才能使用。所以我們采用初始化函數(shù)對這個變量進(jìn)行初始化:
??NTCInitialization(&ntc,bValue,nt,nr);
??如果是有多個NTC對象可以使用數(shù)組等方式來處理。初始化完成后我們就可以操作該對象了。我們通常會采用一個電橋電路來檢測NTC電阻,以測量當(dāng)前的溫度。電路圖如下:
??上圖中我們通過一個電橋來采集NTC電阻的變化,因為電阻的變化會引起C17兩端電壓的變化。溫度越高NTC電阻越小,C17兩端電壓差就越大,反之越小。我們采用了25攝氏度時,阻值為10K的NTC。不難推斷出輸出電壓與NTC電阻值的關(guān)系。當(dāng)輸出電壓為0V時,電阻約25K,查表可知溫度為5攝氏度左右。當(dāng)輸出電壓為5V時,電阻值接近0,查表可知在100攝氏度以上。這也便是這個電路的理論測量范圍。
??我們檢測到當(dāng)前的電阻后,調(diào)用NTCTemperature(NTCObjectType *ntc,float resistance);函數(shù)來計算對應(yīng)的溫度值。
4、應(yīng)用總結(jié)
??使用NTC作為測溫和控溫的元件所得到的結(jié)果基本與預(yù)期的一致。但在控溫的精度和響應(yīng)速度上略有不足,對于一般的應(yīng)用是完全足夠的。在要求較高的場合我們也可以通過軟件提高控溫精度。
??使用NTC作為測溫元件需要注意,由于阻值與溫度的非線性,而我們解非線性方程可能會造成較大誤差,所以測溫有時候會有較大的誤差。而且NTC的測溫范圍很有限,所以使用是需要考慮這個問題。同時NTC存在較大的個體差異。當(dāng)然作為一般的應(yīng)用這些都不是問題。
-
熱敏電阻
+關(guān)注
關(guān)注
14文章
1194瀏覽量
102699 -
NTC
+關(guān)注
關(guān)注
7文章
457瀏覽量
52951 -
驅(qū)動設(shè)計
+關(guān)注
關(guān)注
1文章
111瀏覽量
15514 -
測溫元件
+關(guān)注
關(guān)注
0文章
8瀏覽量
2785
發(fā)布評論請先 登錄
NTC負(fù)溫度系數(shù)溫度傳感器工作原理
RTD熱電阻測溫的驅(qū)動設(shè)計與實現(xiàn)

[分享]熱電阻
熱電阻的測溫原理

具有負(fù)溫度系數(shù)NTC熱敏電阻概述

評論