标题: 电信号4-20MA怎么显示对应到-500000到1000000,自己写的程序不知道哪里有问题? [打印本页]

作者: bbxyliyang    时间: 2021-8-27 20:58
标题: 电信号4-20MA怎么显示对应到-500000到1000000,自己写的程序不知道哪里有问题?
getdata=adc0832(0);
temp=((long)getdata*1.0*50000/255/25)-400;//采集的电流信号
if(temp<=530)//负数
{
        temp=500000-temp*1500000/1600;
        fuhao=1;
}
else//正数
{
        temp=temp*1500000/1600-500000;
        fuhao=0;




作者: bbxyliyang    时间: 2021-8-29 11:36
有大神可以帮忙解答下,谢谢
作者: lkc8210    时间: 2021-8-29 11:44
bbxyliyang 发表于 2021-8-29 11:36
有大神可以帮忙解答下,谢谢

代码不全
硬件外设是怎样又不知道
显示预期是什么,结果是什么又不说
怎么帮?
作者: bbxyliyang    时间: 2021-8-29 16:02
lkc8210 发表于 2021-8-29 11:44
代码不全
硬件外设是怎样又不知道
显示预期是什么,结果是什么又不说

采集的电流信号4-20MA,转换成显示-500000-1000000,temp就是采集的电流值,怎么对应成-500000-1000000显示出来。
作者: lkc8210    时间: 2021-8-29 16:17
bbxyliyang 发表于 2021-8-29 16:02
采集的电流信号4-20MA,转换成显示-500000-1000000,temp就是采集的电流值,怎么对应成-500000-1000000显 ...

adc0832(0);出来的值范围又是多少?
作者: xuyaqi    时间: 2021-8-29 16:41
bbxyliyang 发表于 2021-8-29 16:02
采集的电流信号4-20MA,转换成显示-500000-1000000,temp就是采集的电流值,怎么对应成-500000-1000000显 ...

显示值=93750*temp-875000,temp就是采集的电流值。
作者: Y_G_G    时间: 2021-8-29 18:03
楼上已经有人给你答案了
是什么方面的数据,有没有必要-500000到1000000这么大范围?
一个8位ADC最大的数据就是255,它对应到-500000到1000000
暂时认为你这个数据是合理的
那么4mA的时候对应的就是-500000,而20mA对应的是1000000,你还要它们是对应的,好就并不是放大多少倍的问题了,
-500000=m*(4mA)+b
1000000=m*(20mA)+b
最后,得出的公式是:93750*temp-875000
作者: bbxyliyang    时间: 2021-8-29 21:33
Y_G_G 发表于 2021-8-29 18:03
楼上已经有人给你答案了
是什么方面的数据,有没有必要-500000到1000000这么大范围?
一个8位ADC最大的数据 ...

谢谢耐心指导,太感谢了
作者: bbxyliyang    时间: 2021-8-29 21:33
lkc8210 发表于 2021-8-29 16:17
adc0832(0);出来的值范围又是多少?

这个范围是0-255
作者: bbxyliyang    时间: 2021-8-29 21:34
xuyaqi 发表于 2021-8-29 16:41
显示值=93750*temp-875000,temp就是采集的电流值。

太感谢了,您的指导。谢谢
作者: wufa1986    时间: 2021-8-30 08:56
初中数学题,不是直接放大
作者: bbxyliyang    时间: 2021-8-30 13:50
已完贴,感谢大家的指导,在此表示感谢。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1