本帖最后由 hanskying666 于 2014-12-7 22:08 编辑
最近把温度计的算法部分进行了编写,首先计算:
热敏电阻测温部分:
采集温度如前面部分介绍采用NTC和高精度电阻串联的方法,经AD采集电压转换为温度,由本系统要求静态功耗为10uA左右,供电电压为光电池电压,取中间值3V。因此采用的NTC热敏电阻和高精度电阻的阻值和至少为:
R=U/I=3V/10 uA=300K。
但是由于温度采集占时间较少,因此可适当放宽要求,以达到较高的精度和灵敏度。
所以本系统采用的NTC阻值为10K, 高精度电阻阻值为62K。
温度检测思路:
由NTC和普通电阻组成的测温电路得到电压值,经MSP430FR5969内部AD转换,查温度-电阻线性变化表得到被测点温度,对于被测点温度的检测采用多次测量,软件滤波,二分查表的方法,提高测量精度。
废话少说,直接上二分法查表的算法:
//=================================================================
// 函数功能 :温度查找转换
// 入口参数 :ADC采集的电压值
// 出口参数 :3位温度值
uint TempSearch(uint Data)
{
uint temp;
uchar i;
for(i=1;i<101;i++)
{
if(Data<=Temp_Table)
{
temp=(i-1)*10+(Data-Temp_Table[i-1])*10/(Temp_Table-Temp_Table[i-1]);
return temp;
}
}
return 0;
}
算法比较简单,在这就不再赘述。
争取尽快将整机系统搭建完毕。。。PS:由于目前的蓝牙芯片功耗,前面查找了很多蓝牙模块,也进行了相关测试,同时也测试了利尔达的CC25xx系列蓝牙模块,功耗普遍很难在10uA以下,听说TI目前有一块蓝牙芯片还未发布,貌似是集成了M3核,听TI的FAE说整体功耗在10uA以下,而且是保持连接状态!如果以后有机会拿到这款芯片,可以考虑加载到本系统中,因此该偷电的温度计,暂时不加蓝牙模块。