很多新手在剛接觸熱敏電阻的時候,不會測量。本文小編舉例告訴大家熱敏電阻的測量溫度,希望在這方面的干貨知識能帶領大家了解相信知識點,如果不懂操作,可以請教有經驗的人員進行指導。
熱敏電阻是一個電阻器件,因此根據歐姆定律,如果我們通過一個電流,它將產生電壓降。由于熱敏電阻是一種有源類型的傳感器,也就是說,它需要一個激勵信號用于其工作,所以溫度變化引起的電阻變化可以轉換為電壓變化。
這樣的簡單方法是使用熱敏電阻作為分壓電路的一部分。在電阻和熱敏電阻串聯電路上施加恒定電壓,并在熱敏電阻上測量輸出電壓。例如,如果我們使用10kΩ熱敏電阻和10kΩ的串聯電阻,那么在25℃的基準溫度下的輸出電壓將是電源電壓的一半。
當熱敏電阻的電阻由于溫度變化而變化時,熱敏電阻兩端的電源電壓部分也會發生變化。從而產生與輸出端子之間的總串聯電阻的一部分成比例的輸出電壓。其中熱敏電阻的電阻由溫度控制,所產生的輸出電壓與溫度成正比,所以熱敏電阻越熱,電壓越低。如果我們顛倒串聯電阻RS和熱敏電阻RTH的位置,則輸出電壓將反方向變化,即熱敏電阻變得越熱,輸出電壓就越高。
一、問題描述
首先對1.0版本溫度貼硬件做一個簡單描述:該方案的測溫方式是使用熱敏電阻NTC,采集其模擬電壓并轉換為相應的溫度值,原理圖如圖1所示,使用單運放TLV521搭建一個橋,起初,對多片焊接完整的溫度貼線路板進行溫度準確度測試,發現測得溫度與實際水溫偏差較大且不一致,正偏和負偏均存在,無規律可尋,由于本產品對測溫精度的要求為-0.1~+0.1°,所以該結果未能滿足要求,一開始想過對不同偏差的板子通過一條擬合曲線對溫度進行校準,但采集了多組數據后找到一條擬合曲線加進去后仍無法全部滿足要求且耗時較長,放棄了此方式校準,故進行了以下分析測試;
圖1
二、該問題造成的影響
正如問題描述中提到的,本產品對測溫精度的要求是-0.1~+0.1°,然而對30+片的溫度測試發現,有相當多的一部分未能滿足要求,這里說明一下,當時的具體測試數據未能保留下來,是個疏忽。
三、對該問題的分析過程
發現這個問題后,由于當時我經驗不足,請教了一些人,尋求到一些建議,從以下方面對該問題逐一分析:1、熱敏電阻精度一致性;2、CPU的ADC采集誤差;3、外圍電路元器件精度;
1、熱敏電阻精度一致性:因熱敏電阻本身存在一定的差異,所以率先驗證該因素是否為影響測溫準確度的主要因素,具體步驟為,在上述30+片溫度貼里取三片(附帶原熱敏電阻),①號溫度偏低,②號溫度接近水溫,③號溫度偏高,重新在一相對恒定水浴溫度內測得三片裸板的對應溫度并記錄下來,然后將三片裸板上的熱敏電阻一一取下,分別對應a、b、c,然后彼此之間兩兩交換,并測量后記錄結果,發現相比之下①號總是偏低,②號接近水溫,③號溫度偏高,三輪測試之后可以基本確定,同一批次的熱敏電阻導致該溫度誤差的可能性已經可以被排除;
2、CPU的ADC采集誤差:將三片裸板的TLV521取下,斷開其與CPU的連接,將ADIN接GND,讀取采集到的值轉化成電壓值,三片一致性較好,幾乎為0,故ADC的影響可以忽略;
3、外圍電路元器件精度:首先驗證橋上各個電阻阻值大小及精度對溫度準確度的影響,選取上述圖1中的一組1%精度電阻值后,先后換了兩組,測試數據發現溫度并無大的改善,也沒變得更差,基本排除電阻值對溫度準確度的影響;其次就是對TLV521的測試,可以從圖2中觀察到TLV521的電氣特性第一項Vos較大,當前硬件設計中模擬電壓約5mV對應0.1°,所以極有可能是因為這個特性指標造成溫度誤差較大,接下來的測試就是針對TLV521進行,第一步,我先把當前狀態下的三片裸板(①號溫度偏低,②號溫度接近水溫,③號溫度偏高)溫度貼再次測試一下恒溫水浴下的溫度并一一記錄數據,然后將三片板子上的TLV521兩兩互換,保證其他量不變,發現①號的TLV521無論換到哪塊板子上,測試出的溫度始終是低的,且與其在①號上時近似,然后將②號板子上的TLV521取下放在另外兩塊板子上,發現測得溫度與②號板子之前的數據近似,如此操作,對下一個驗證,結論仍是如此,到此基本可以確定,TLV521的影響是造成溫度準確度不夠的主要因素。
圖2
四、解決該問題的修改方案
針對以上分析的結果,已經基本確定是TLV521的Vos電壓導致,所以,綜合部門總管和嵌入式軟件工程師的討論,有兩種解決辦法:a、換一個性能更好的運放,如TLV333;b、可以用ADC采集熱敏電阻阻值在30K(對應37°)時的電壓值與標準電壓值作比較,并自動補償該差值寫入flash,之后的計算調用該值以達到校準的目的;顯然,從成本和當前情況來看,a方案是不可行的,所以采取了b方案,具體可行性分析還要經過驗證;接下來嵌入式軟件工程師針對當前現象以及討論的解決方案進行了固件改進,搭載硬件燒寫工具進行了再一次測試,前期選取的樣本仍是之前測試的三片板子,燒寫過最新修改的固件版本以后,可以讀取寫入的偏移量,初步計算后發現不同板子的偏移量值均處于-15.00~+15.00mV區間范圍內,然后放入恒溫水浴測試,結果發現,三片板子測得的數據一致性較之前有很大提高,且均處在37°±0.1°范圍內,該結果已初步驗證了上述解決方案的可行性,為了確保萬無一失,我又進行了多片抽樣驗證,最終的測試結果與前三片一致,故說明定位的問題及解決方案均正確,該問題算是基本解決,但為了產品升級的需要,且后來發現一個問題,熱敏電阻的一致性僅限于每一批次,即同一批次生產出來的熱敏電阻我們認為它的曲線一致性較好,但下一次批次就會有所偏差,或偏大或偏小,所以為了更好地校準熱敏電阻,嵌入式軟件APP端計算好的擬合曲線沒辦法對每一批次修改升級,后期嵌入式軟件又加入了對不同批次的熱敏電阻進行抽檢預測試,即通過抽檢確定該批次的一個誤差范圍,然后將該誤差通過嵌入式軟件中分配一塊區域存儲并后期計算時調用,這樣就解決了升級卻不會修改測溫精度的問題,希望這種工程案例能對你們有所啟發和幫助。
五、最終結果
以上描述是解決溫度貼1.0版本溫度不準確的一些重要步驟,當然還有一些中間進行的操作沒有具體說明,或者說是因個人能力不夠做了一些無用功,沒能夠快速準確地定位到是TLV521導致的,慶幸的是,在部門總管和眾人的幫助下,終于找到問題所在并成功解決,這算是我工作中的一個學習和進步。
附:
當然,上述陳述中是前期溫度貼1.0版本存在的一個較大的問題,后期我們有發現了一些額外的問題:a、不同溫度狀態下,測得溫度與實際水溫存在偏差,如25~35°時偏高超出0.1°,36~39°時偏低在0.1°內,39~45°高出實際水溫0.2~0.4°;b、正確使用方式下測得的溫度偏低于人體溫度,我們欲使其偏高于準確溫度0.1°,故后面又經過了一輪新的測試;c、人體測溫時升溫速度慢;
針對上述問題a、b的現象,后面增加了一些測試及驗證,因懷疑不同批次的熱敏電阻存在R-T曲線誤差,所以為了解決a、b問題,我們對R-T曲線做了取舍,將原來的擬合范圍由25~45°縮小至30~40°,能夠保證在30~40°范圍內準確度在±0.1°內,然后為了使其正偏,即高于實際水溫(0,0.1)°,而且能夠適應不同批次的熱敏電阻,嵌入式軟件工程師在flash中預留一定字節的空間來存儲校準系數,且經過首輪驗證和再次驗證,成功證實了該方案的可行性,只是有些繁瑣且必要的前期測試要做,如針對每一批次的熱敏電阻抽取一定的樣本,經過測試和驗證,確定出一條適用于該批次的溫度擬合曲線,將其系數寫入flash以得到符合既定要求的溫度數據。