1. 程式人生 > >一種基於NTC的控溫電路及軟件實現

一種基於NTC的控溫電路及軟件實現

推導 極限 div images emp com 兩種 通過 cati

NTC(Negative Temperature Coefficient)是一種隨溫度上升時,電阻值呈指數關系減小的熱敏電阻。應用廣泛,最近我們就采用了NTC來控制加熱並測溫,並達到了預期的效果。

1、硬件設計

我們使用三極管作為加熱元件,通過NTC來控制通過三極管的電流,以起到控制溫度的作用,至於溫度控制到多少,可以通過調節電位器來控制。同時使用另一個NTC來測量當前的溫度。電路圖如下:

技術分享圖片

上圖中我們通過一個電橋來采集NTC電阻的變化,因為電阻的變化會引起C17兩端電壓的變化。溫度越高NTC電阻越小,C17兩端電壓差就越大,反之越小。我們采用了25攝氏度時,阻值為10K的NTC。不難推斷出輸出電壓與NTC電阻值得關系。當輸出電壓為0V時,電阻約25K,查表可知唯獨為5攝氏度左右。當輸出電壓為5V時,電阻值接近0,查表可知在100攝氏度以上。職業便是這個電路的理論測量範圍。

2、軟件設計

前面我們設計了測量電路,也分析了檢測電壓與NTC電阻制的關系。接下來我們主要討論一下軟件設計。軟件的設計我們采用了公式法和查表法兩種方式來獲取溫度值。

1)公式法

我們前面已經提到過,NTC是一種隨溫度上升時,電阻值呈指數關系減小的熱敏電阻。而這種指數關系具體如下:

技術分享圖片

其中,B是NTC的常數,每種為固定值。Rt是NTC的電阻,R為標稱25攝氏度時的電阻。T1是Rt對應的開氏溫度,T2是標稱的開氏溫度。於是我們就可以推導出有電阻計算溫度的公式:

技術分享圖片

根據以上公式我們可以實現:

 1 /*公式法計算NTC溫度值*/
 2 static float FormulaNTCTemperature(float
resistance) 3 { 4 float temp; 5 float result=0.0; 6 7 result=resistance/NTC_NOMINAL_RESISTANCE; 8 result=(log(result)/NTC_NOMINAL_CONSTANT)+(1/(NTC_NOMINAL_TEMPERATURE+KELVIN_CONSTANT)); 9 temp=1/result-KELVIN_CONSTANT; 10 11 return temp; 12 }

2)查表法

查表法顧名思義就是通過電阻分度表來獲取溫度區間,再做擬合。首先我們需要建立相應的表我們定義為數組。有了分度表實現也就簡單了,但需要註意兩端極限位置的處理。具體實現如下:

 1 /*查表法計算NTC溫度值*/
 2 static float LookupNTCTemperature(float resistance)
 3 {
 4   float temp;
 5   uint16_t index=NTC_TABLE_LENGTH+10;
 6  
 7   index=FindTargetLocation(resistance);
 8  
 9   if(index<=0)
10   {
11     temp=ntcValueTable[0][0];
12   }
13   else if(index>=NTC_TABLE_LENGTH)
14   {
15     temp=ntcValueTable[0][NTC_TABLE_LENGTH-1];
16   }
17   else
18   {
19     float lowT=ntcValueTable[0][index-1];
20     float lowR=ntcValueTable[1][index-1];
21     float highR=ntcValueTable[1][index];
22    
23     temp=((resistance-lowR)*0.5)/(highR-lowR)+lowT;
24   }
25  
26   return temp;
27 }
28  
29 /*查找目標位置*/
30 static uint16_t FindTargetLocation(float resistance)
31 {
32   uint16_t position=0;
33   while(ntcValueTable[1][position]>resistance)
34   {
35     if(position<NTC_TABLE_LENGTH-1)
36     {
37       position++;
38     }
39     else
40     {
41       position++;
42       break;
43     }
44   }
45  
46   return position;
47 }

歡迎關註:

技術分享圖片

一種基於NTC的控溫電路及軟件實現