概念
- NTC :负温度系数热敏电阻器,在温度越高时电阻值越低
- PTC :正温度系数热敏电阻器,在温度越高时电阻值越大
NTC的初始电阻大,因此对电流的阻碍作用就更大,可以有效地阻挡住尖峰电流,当电路趋于稳定时,NTC电阻就逐渐变小,从而保护电路。 PTC与NTC恰恰相反,在稳定的电路中,PTC相当于导线,当遇到一个临时的脉冲信号时,PTC阻值急剧增大,电路相当于开路;当脉冲信号离开,电流变小,PTC阻值变小,电路恢复正常。
总结:NTC处理掉异常,使电路能正常导通,主要应用于温度补偿、过流保护、过热保护、自控加热、马达启动、彩电消磁等;PTC识别异常,使电路截止,主要应用于温度补偿、过流保护、过热保护、自控加热、马达启动、彩电消磁等。
应用电路
应用原理
NTC电阻温度计算公式:Rt = Rp*EXP(B*(1/T1-1/T2))
- T1,T2 :单位都是开尔文温度
- Rt :是热敏电阻在T1温度下的阻值
- Rp : 是热敏电阻在T2常温下的标准阻值
- EXP:e的n次方
- Bx :热敏电阻的重要参数
- Ka :开尔文单位与摄氏单位的转换参数(273.15)
T2是已知的即:标准温度下的标准阻值(Rp)的开尔文温度值(273.15+25.0)
T1就是欲求的温度(开尔文标):T1 = 1/(ln(Rt/R)/B+1/T2)
实际温度还需要从T1的开尔文温度转成摄氏温度,即:temp = T1 - 273.15 + 0.5 (后面的0.5是误差矫正)
应用程序
#include “math.h”
const float Rp = 100000.0; // 100k,NTC自身的阻值(25°C)
const float T2 = (273.15 + 25.0); // T2
const float Bx = 3950.0; // B
const float Ka = 273.15;
int main(void)
{
uint16_t Vadc; // 获取的ADC值
float Vout; // ADC值转为实际电压值
float Rx; // NTC的阻值
float temp; // NTC阻值对应的温度值
Vadc = getADC(); // 获取ADC值
Vout = (float)Vadc/4095*3.3; // Vadc乘以分辨率值乘以ADC参考电压
Rx = (100000*Vout)/(3.3-vout); // 上拉电阻(R23 = 100K)
temp = (1/(log(Rx/Rp)/Bx+(1/T2)))-273.15+0.5
return 0;
}