热敏电阻的温度与阻值对照表如下
精准的温度计算公式如下
一般条件下用的公式为:Rt = Rp *EXP(B*(1/(T0+temp)-1/(T0+Tp)))
Rt:温度为temp时的电阻
Rp:Tp时刻的电阻值,通常取NTC的电阻值与温度,在此选用的是3K,25°。
B:热敏电阻的系数,此热敏电阻的系数为3950
反推之后
若是使用51系列的单片机则要用到#include "math.h"库
但是这个库里只有log和log10函数,没有算ln的,则用一个公式转化一下ln(a)=(log10(a))/(log10(e))
电阻测量方法为采用一个电阻串入NTC,然后测量NTC的电阻值,最终换算出温度
#include "math.h"
void temp_data()
{
float temp_original;
float Rt=0; //此刻的电阻
float Rp=3000; //3k NTC
float Tp=25; //3k时的温度为25℃
float T0=273.15; //开尔文温度
float B=3950; //3k NTC系数
float vol_temp=0; //NTC的电压,可算出此刻NTC的电阻
float Exp=2.71828182846; //常数e
vol_temp=(float)GetADCResult(7)*(5.0/255);
Rt=vol_temp/((5.0-vol_temp)/3000); //算出的NTC阻值
temp_original=1/(1/(Tp+T0)+((log10(Rt/Rp))/(log10(Exp)))/B)-T0; //温度
}