什么是热敏电阻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热敏电阻:
电阻随温度升高而降低.
广泛用于温度测量.
可用作电路中的浪涌电流限制器.
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的电压, 所以
U(R2/(R1+R2))=ADC/1024*U
这里 1024 是我使用的微控制器的ADC的10位分辨率, 那是, 1024
这里我们知道U=3.3v, 图中就是VCC, R1的值为10k, R2为NTC, 所以暂时不知道它的价值. U可以偏移.
最终公式为: 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
无效获取温度()
{
短期;
短碳纳米管;
ADC= adc_get_value(ADC_CH_0); // 获取ADC值
打印函数(“———–模数转换器:%dnn”,模数转换器);
NTC_R=ADC*R1/(1024-模数转换器);
碳纳米管= 0;
温度= -30;
做{
如果(临时标签[碳纳米管] < NTC_R){ // 表值小于计算电阻值, 退出以获取温度
休息;
}
++温度;
}尽管(++碳纳米管 < 大小(临时标签)/4); // 循环表的大小, 那是, 次数
打印函数(“NTC_R:%温度:%dnn”,NTC_R,温度);
}