请教各位,在做压力传感器数据处理的时候,用的电流型压力传感器,4ma~20ma对应压力0MPa~1.0MPa,数码管是3位一体共阴极,经过250欧姆电阻转换为1V~5V,显示时,百分位数字有时候会在两个数字之间来回跳动,数据处理如下:
压力传感器数据如下:
检定压力 实测输出
0 MPa 4.011ma
0.2MPa 7.205ma
0.4MPa 10.406ma
0.6MPa 13.609ma
0.8MPa 16.801ma
1.0MPa 20.008ma
void adc() //AD转换程序,用的是10位AD
{
if(ADTRG==0)
{
aa=ADCRH;
aa=(aa<<8)+ADCRL;
ADTRG=1; //再次启动AD转换
}
bb=aa;
}
void chuli()
{
if(bb<205) //这句话的含义是,当电流小于4ma时,减去4不会出现负数,从而导致
单片机死机
bb=205;
bb=(uint)(((((float)bb/1023)*5*1000)/245)*1000); //将bb的值转换为电流值,范围为4000~20000,其中的245为电阻值
table[0]=bb/10000; //将电流值保存到table[]数组中,通过串口发送给电脑
table[1]=bb%10000/1000;
table[2]=bb%1000/100;
table[3]=bb%100/10;
table[4]=bb%10;
table1[0]=(uint)(((float)(bb)-4000)/160+0.5)/100; //将上面的电流值转变为实际压力值,其中的0.5为四舍五入处理,并送数码管显示
table1[1]=(uint)(((float)(bb)-4000)/160+0.5)%100/10;
table1[2]=(uint)(((float)(bb)-4000)/160+0.5)%10;
}
实测压力检测数值还是比较准确,就是压力值的百分位有时候会在连续的两个数之间快速的闪烁,试了好几种方法都不行。
你是仿真,还是实物?什么压力测试IC,修改下,延长检测的间隔看看
一周热门 更多>