高精度NTC測溫的硬件電路以及軟件設計


什么是NTC

NTC是熱敏電阻,其電阻值對溫度變化敏感,在不同的溫度下,可以呈現不同的電阻值。

熱敏電阻有兩類,一類是負溫度系數電阻(NTC),溫度增加時,電阻值降低,另一類是正溫度系數電阻(PTC),溫度增加時,電阻值增加。

熱敏電阻的電阻值計算

NTC的電阻值R與溫度的關系可以近似表示為:

高精度NTC測溫的硬件電路以及軟件設計

公式1,電阻與溫度函數關系式

其中T是絕對溫度,數值為攝氏溫度+273.15,單位為K(開爾文)。

R0一般取溫度25℃即298.15K時的電阻值,對應的T0取25℃,即298.15K。

B為材料常數.不同的村料或者生產工藝都能導致B的數值發生變化,甚至在熱敏電阻的工作范圍內,B的數值都可能發生變化,而不是嚴格的常數;

因為NTC的電阻與溫度呈非線性的關系,而且存着溫度的增加,溫度隨着溫度變化的變化率越小。

所以隨着溫度的增加,NTC測溫的精度變化;

所以比較適合於溫度變化范圍小的使用場景,比如環境溫度(約為-20℃-50℃)或者是水溫的檢測(0℃-100℃)。

下圖是在淘寶上搜索到的一款NTC,按照溫度為25℃的電阻取值,可有5KΩ,10 KΩ等不同的規格,而材料系數B值固定為3950。

高精度NTC測溫的硬件電路以及軟件設計

從淘寶搜索到的一款NTC

我們選擇10K的規格,根據公式1,可以得到這款NTC的電阻與溫度的關系為:

高精度NTC測溫的硬件電路以及軟件設計

公式2,電阻與溫度的函數關系式

通過excel表格的公式,在excel工作薄的第一列輸入溫度,第二列輸入公式可以得到不同溫度下的電阻值,比如0℃為33.6 KΩ

高精度NTC測溫的硬件電路以及軟件設計

采用excel計算AD值

NTC測溫電路的設計

NTC測溫核心在於具有ADC功能的MCU,電路比較簡單,只需要將固定的電壓經過另一個高精度的電阻分壓接到NTC電阻,然后將分壓值連接到MCU的ADC輸入口。

如下圖:

高精度NTC測溫的硬件電路以及軟件設計

NTC測溫電路

R1為1%精度的電阻,R2為NTC,

0.1uF的電容C1除了可以濾除從電源引入或者從電路板感應來的高頻干擾信號,另外當ADC有多路AD輸入在轉換時,MCU的AD模塊需要通過模擬開關切換不同的通道,再進行采樣轉換,電容C1可以在ADC切換通道之后,迅速向采樣電容充電,從而可以提到轉換速度,避免因采樣時間太短而導致測量不准確。

R1上拉的電源應該和MCU的ADC的參考電源共用一個電源(在一般的設計中,MCU的供電電源和ADC的參考電源共用一個電源)。

這是因為:

輸入ADC的AD值為(假設為12位的ADC):

高精度NTC測溫的硬件電路以及軟件設計

AD值計算公式

如果上拉的電源ADC的參考電源共用一個電源,可以得到和上位電源無關的一個公式:

高精度NTC測溫的硬件電路以及軟件設計

AD值計算公式

所以可以消除電源精度對測試的影響,同時減少了計算的復雜性;

NTC測溫軟件的設計

我看到在一個網友的程序設計中,他直接將公式1取對數,通過復雜的對數運算和倒數運算得到溫度值,這是不合適的,

主要是:

  1. 普通的單片機不一定提供這樣的數學函數庫。
  2. 普通的單片機沒有浮點數運算,浮點數都是轉成整弄運算的,不可避免會有舍入誤差。
  3. 單片機做對數,倒數的運算,只能是近似算法,而且會耗費大量的運算時間,可能會到幾百ms級,影響了對其它功能處理的實時性。
  4. 公式1只是一個近似公式,B值也並不是一個常數,用這樣具體的解析公式計算,沒有辦法根據實際測量值對計算值進行標定,從而提高測量精度。

我在實際的項目中,采用的是分段線性化的方法,步驟如下:

高精度NTC測溫的硬件電路以及軟件設計

采用excel表格自動生成C語言中包含AD與溫度的二維數組

  1. 將測溫范圍分若干個區間,比如在0-100度的范圍內,分100個區間,每個區間范圍為1℃
  2. 計算或者實測每一個區間下限和區間上限的溫度值; 比如區間30℃-31℃,根據公式1計算或者實際測試出30℃以及31℃的AD值。
  3. 將這些區間表示為2維數組(這個2維數組也可以通過實際測試形成);
  4. 取出將AD轉換並多次平均之后數值,編歷分段的區間,與這些區間的AD上、下限進行比較,判斷落在哪一個區間,
  5. 根據一次函數的公式進行區間內的插值修正:

測試溫度值=區間溫度下限+(區間溫度上限-區間溫度下限)/(區間AD上限-區間AD下限)*(AD測量值-區間AD下限)

最后奉上本人使用的分段線性化的程序:

高精度NTC測溫的硬件電路以及軟件設計

分段線性化程序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM