用EXCEL计算NTC、BS、电压等AD参数

前言

之前计算NTC的AD值算得很麻烦,因为51内核的单片机不支持除法运算,更别说浮点运算了。

EXCEL自动算出参数就显得很方便了。

有纰漏请指出,转载请说明。

学习交流请发邮件 [email protected]

理论基础

用EXCEL计算NTC、BS、电压等AD参数_第1张图片

参考这篇文章NTC热敏电阻温度采集与adc转换_adc温度转换-CSDN博客

用EXCEL计算NTC、BS、电压等AD参数_第2张图片

用EXCEL计算NTC、BS、电压等AD参数_第3张图片

用EXCEL计算NTC、BS、电压等AD参数_第4张图片

根据NTC的AD值算温度

//编译环境 https://c.runoob.com/compile/11/

#include 
#define NUM_TEMP_BUFF 136
//NTC3435从-30到105,136个数据的计算值。
unsigned short tempBuff[NUM_TEMP_BUFF] = {
	3959,3951,3942,3934,3925,3915,3906,3895,3885,3873,	//-30~-21
	3862,3850,3837,3824,3811,3797,3782,3767,3751,3735,	//-20~-11
	3718,3701,3683,3665,3646,3626,3606,3585,3564,3542,	//-10~-1
	3520,3497,3473,3449,3424,3398,3372,3346,3319,3291,	//0~9
	3263,3234,3205,3175,3145,3115,3083,3052,3020,2988,	//10~19
	2955,2922,2888,2855,2821,2786,2752,2717,2682,2647,	//20~29
	2612,2576,2541,2505,2469,2434,2398,2362,2326,2291,	//30~39
	2255,2220,2185,2149,2114,2080,2045,2010,1976,1942,	//40~49
	1909,1875,1842,1809,1777,1745,1713,1682,1651,1620,	//50~59
	1590,1560,1530,1501,1472,1444,1416,1389,1362,1335,	//60~69
	1309,1283,1258,1233,1208,1184,1161,1137,1115,1092,	//70~79
	1070,1049,1028,1007,986,966,947,928,909,890,		//80~89
	872,855,837,820,804,787,771,756,741,726,			//90~99
	711,697,683,669,655,642,							//100~105
};
unsigned short tempData = 2000;
short returnTemp = 0;
//返回值,-88为大于105度,-99为小于-30度
short CaclTemp(unsigned short tempData1)
{
	short i = 0;
	while (1)
	{
		if (tempData1>tempBuff[0]) {
			return -88;
		} else if (tempData1= tempData1) {
			i++;			
		} else {
			return i-31;
		}			
	}
}

int main()
{
   	returnTemp = CaclTemp(tempData);
	printf("%d",returnTemp);
   	return 0;
}

你可能感兴趣的:(硬件,BMS,单片机)