什麼是熱敏電阻NTC和PTC? 對於那些從未接觸過NTC的人, PTC或剛剛暴露於NTC和PTC, 他們不知道NTC和PTC是什麼. 當然, 了解NTC和PTC的概念相對簡單, 但是,當您搜索信息並查看許多令人困惑的專業術語, 以及一些硬件, 你可能有點笨拙, 畢竟, 您從未接觸過他們,您的思想充滿了問號. 對於渴望啟動項目的初學者或軟件工程師, 最好盡快獲得初步理解, 學習基本原理, 並使用代碼運行正確的數據. 畢竟, 學習是漸進的, 而且您不能一口氣深入探討它的原則.
1. 什麼是熱敏電阻NTC和PTC?
NTC和PTC都是熱敏電阻, 這是可以隨溫度改變電阻的特殊電阻器. 它們也可以說是一種感測器.
NTC和PTC都是熱敏電阻的類型, 是溫度敏感的電阻, NTC代表的地方 “負溫度係數” 意味著其電阻隨著溫度升高而降低, 而PTC代表 “正溫度係數” 意味著它的電阻隨著溫度升高而增加; 本質上, NTC熱敏電阻通常用於溫度傳感, 而PTC熱敏電阻由於自我排列的過度功能而經常用於電路保護.
不同之處在於,NTC是負溫度係數熱敏電阻, PTC是一個正溫係數熱敏電阻.
正溫係數熱敏電阻 (正溫度係數): 電阻值隨溫度升高而增加;
負溫度係數熱敏電阻 (NTC): 電阻值隨溫度升高而降低;
二. NTC和PTC的應用
1. NTC的應用:
用於溫度檢測, 通常溫度測量型NTC
用於抑制激增, 通常電源型NTCNTC熱敏電阻:
電阻隨溫度升高而降低.
廣泛用於溫度測量.
可以用作電路中的Inrush電流限制器.
2. PTC的應用包括:
在保護電路中, 例如過度的保護, 過度流動的保護
在啟動電路中
電阻隨著溫度的升高而增加.
通常被用作自我排列的保險絲,以保護電路免受過電流的情況.
在某些應用中可以充當自我調節的加熱元件.
三、. B值
B值: 物質常數, 用於指示NTC電阻值隨溫度變化在工作溫度範圍內的電阻值的幅度, 這與材料的組成和燒結過程有關. b值通常是數值 (3435K, 3950K).
B值越大, 電阻值隨溫度升高降低的速度, b值越小, 恰恰相反.
本文不使用B值, 但只是為了理解. 溫度也可以通過溫度係數B值計算方法來計算, 也可以稱為開爾文溫度算法.
4. R25
R25: NTC身體的電阻值25℃.
5. 原理分析
以NTC為例, 一般示意圖如下:
原理分析:
ADC功能用於收集電壓.
R1和R2是系列電路. 根據串聯電阻的電壓劃分公式, 我們有:
R = R1+R2;
來自i = u/r = u/(R1+R2), 然後:
u1 = ir1 = u(R1/(R1+R2))
u2 = ir2 = u(R2/(R1+R2))
我們使用u2 = ir2 = u(R2/(R1+R2)) 就是這樣.
ADC收集的數據轉換為電壓, 這是U2的電壓, 所以
你(R2/(R1+R2))= adc/1024*u
這裡 1024 是microcontroller的ADC的10位分辨率, 那是, 1024
在這裡我們知道u = 3.3V, 這是圖中的VCC, R1的值為10K, R2是NTC, 因此,它的價值暫時尚不清楚. 你可以被抵消.
最終公式是: R2 = ADC*R1/1024-ADC
那是, R2 = ADC*10000/1024-ADC
獲得R2的電阻值後, 我們可以通過將溫度與電阻表進行比較來獲取溫度. 抵抗比較表通常由商人購買後提供.
下一個, 讓我們去代碼. 這裡, 我們使用NTC表查找方法轉換溫度. 您可以通過添加ADC值來使用此代碼.
const unsigned int temp_tab[]={
119520,113300,107450,101930,96730,91830,87210,82850,78730,74850,//-30 到 -21,
71180,67710,64430,61330,58400,55620,53000,50510,48160,45930,//-20 到 -11,
43810,41810,39910,38110,36400,34770,33230,31770,30380, 29050,//-10 到 -1,
27800,26600,25460,24380,23350,22370,21440,20550,19700,18900,18130,//0-10,
17390,16690,16020,15390,14780,14200,13640,13110,12610,12120,//11-20,
11660,11220,10790,10390,10000,9630,9270,8930,8610,8300, //21-30, 8000,7710,7430,7170,6920,6670,6440,6220,6000,5800,//31-40, 5600,5410,5230,5050,4880,4720,4570,4420,4270,4130,//49-50, 4000,3870,3750,3630,3510,3400,3300,3190,3090,3000,//51-60, 2910,2820,2730,2650,2570,24 90,2420,2350,2280,2210,//61-70, 2150,2090,2030,1970,1910,1860,1800,1750,1700,1660,//71-80, 1610,1570,1520,1480,1440,1400,1370,1330,1290,1260,//81-90 1230,1190,1160,1130,1100,1070,1050,1020,990,//91-99, };
短ADC; // 獲取NTC的ADC值
短NTC_R; // NTC電阻值
#定義R1 10000
void get_temp()
{
短溫度;
短CNT;
ADC = ADC_GET_VALUE(ADC_CH__0); // 獲取ADC值
列印函數(“———–類比數位轉換器:%d n n”,類比數位轉換器);
ntc_r = adc*r1/(1024-類比數位轉換器);
cnt = 0;
溫度= -30;
做{
如果(temp_tab[碳奈米管] < NTC_R){ // 表值小於計算的電阻值, 出口以獲得溫度
休息;
}
++溫度;
}儘管(++碳奈米管 < 大小(temp_tab)/4); // 循環表的大小, 那是, 次數
列印函數(“NTC_R:%D溫度:%d n n”,NTC_R,溫度);
}