最近做一个温控器,使用PT100作为温度传感器,发现采样值与温度并不是线性关系。
基本硬件信息:PT100电阻上串28.8K电阻,接上5V电压,再经放大器放大75倍后送到ADC,ADC参考电压5V。
对照PT100分度表,-60度时阻值为76.3282R,放大器输出0.99123V700度时阻值为345.1316R,放大器输出4.44069V现在做了一个简单算法50.jpg (85.31 KB, 下载次数: 0)下载附件2021-5-22 12:48 上传下周可以验证下这个算法行不行!!!在网上也没找到一个合适的算法,在做这个温控器时,我一直以为PT100阻值变化与温度是线性关系。
上面思路正确,做了一点修改,可以完美采样温度。
//PT100处理程序//(5V/(28.8K+PT100) * 75 )/ 5 * 1024;//输出0 - 7400(-40.0 - 700.0度)#define temp_ref 14564 //-40度u16 temp_pro(u16 data){ u8 i,j; u16 k; //分度值 u16 x; u16 temp;//温度值 u32 y; k = 681; i = 0; j = 0; if(data < 14564)//低于0-40度 { return 0;//直接返回零 } else { x = data - temp_ref; while(1) { if(x > k)//高于10度以上 { x -= k;//减去一个10度。
i++; j++; if(j > 7) { j = 0; k--; } k -= 2; }else break; } temp = i; temp *= 100; y = x; y *= 100; y = y/k; x = y; temp += x; return temp; }}内插法插值一下即可也想过,好在想到了上面的算法,就差验证下效果了。
这种东西基本很成熟了,没有必要做主要是接了个新案子,不得不做呀!这种常用的应该有开源的算法,找找看小白前来学习
大功率电感 |