#include math.h
#define B 3950.0  		//温度系数
#define TN 298.15		//额定温度(绝对温度加常温:273.15+25)
 #define RN 10		//额定阻值(绝对温度时的电阻值10k)
#define BaseVol 5	 	//ADC基准电压
float Get_ Tempture(uint adc)
{
float RV,RT,Tmp;
RV= BaseVol/ 256.0*(float)adc;			//ADC为8位ADC,xWNTCÆ:RV=ADCValu/1024*BaseVoltag
RT=RV*10/(BaseVol-RV);			//求出当前温度阻值(BaseVoltage-RV)/R16=RV/RT;
Tmp=1/(1/TN+ (log(RT/RN)/B))-273.15;	//%RT = RN exp*B(1/T-1/TN)%
return Tmp;
}
RV= BaseVol/256.0*(float)adc;

#include "math.h"
#define B 3950.0//温度系数
#define TN 298.15//额定温度(绝对温度加常温:273.15+25)
#define RN 10// 额定阻值(绝对温度时的电阻值10k)
#define BaseVol 5.04 //ADC基准电压
/****
*******监测函数
*****/
void Monitor_function(void)
{
	if(time_num % 10 == 0)											//500ms检测一次
	{
		temp = Adc0832_Get_Value(0);
		temp = Get_Tempture(temp)*10;
	}
}

/****
*******NTC热敏电阻计算函数
****/
float Get_Tempture(uint adc)
{
	float RV,RT,Tmp;
	RV=BaseVol/256.0*(float)adc;					//ADC为10位ADC,求出NTC电压:RV=ADCValu/1024*BaseVoltag
	RT=RV*10/(BaseVol-RV);								//求出当前温度阻值 (BaseVoltage-RV)/R16=RV/RT;
	Tmp=1/(1/TN+(log(RT/RN)/B))-273.15;		//%RT = RN exp*B(1/T-1/TN)%
	return Tmp;
}
玻封型热敏电阻 MF58 10K 50K 100K 5%精度 B值:3950
MF58 103J3950资料参考:http://pan.baidu.com/share/link?shareid=621089553&uk=2839012393
MF58 503J3950资料参考:http://pan.baidu.com/share/link?shareid=622129187&uk=2839012393
MF58 104J3950资料参考:http://pan.baidu.com/share/link?shareid=620132407&uk=2839012393

发表回复

后才能评论