找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2588|回复: 10
收起左侧

求C语言判定一个会有小幅波动的值的处理方式

[复制链接]
ID:586438 发表于 2019-9-9 09:55 | 显示全部楼层 |阅读模式
本帖最后由 如痴百感生 于 2019-9-9 16:49 编辑

图中的判定值c>20是单片机内部AD采集值计算出来的温度,当到达那个20时  会有上下小幅波动的情况,引脚电平也会跟着上下跳动
求如何在这程序中解决这问题其中C值是AD采集计算出来的,当达到20时  这个值会在19.8到20.2之间跳动   LED也就闪烁  我想解决这种情况 1.PNG
回复

使用道具 举报

ID:609414 发表于 2019-9-9 11:15 | 显示全部楼层
可以在if(c>20)的函数里面加个标志位,表示已经检测到大于20的值,下次再执行到此处时,如果检测值在(20-波动值)以下才认为值下降,否则认为值还是超过20,这样可以去掉小幅波动的值的影响,希望可以帮到你
回复

使用道具 举报

ID:586438 发表于 2019-9-9 11:29 | 显示全部楼层
jsbjzy 发表于 2019-9-9 11:15
可以在if(c>20)的函数里面加个标志位,表示已经检测到大于20的值,下次再执行到此处时,如果检测值在(2 ...

具体怎么处理的能帮我写一下吗   非常感谢
回复

使用道具 举报

ID:586438 发表于 2019-9-9 11:40 | 显示全部楼层
jsbjzy 发表于 2019-9-9 11:15
可以在if(c>20)的函数里面加个标志位,表示已经检测到大于20的值,下次再执行到此处时,如果检测值在(2 ...

你好  是这样吗
if(c>20&&c==20.2)
回复

使用道具 举报

ID:151348 发表于 2019-9-9 15:13 | 显示全部楼层
temp是什么变量,你截取的程序片段里面看不出是什么。要是只是用c只是变量判断的话,把你图片里面选中的蓝色if判断部分改成
if(c>20)
LED=0;//LED亮起
if(c<20) LED=1;//LED熄灭
回复

使用道具 举报

ID:586438 发表于 2019-9-9 16:35 | 显示全部楼层
imxuheng 发表于 2019-9-9 15:13
temp是什么变量,你截取的程序片段里面看不出是什么。要是只是用c只是变量判断的话,把你图片里面选中的蓝 ...

采集计算的值可能会波动  例如采集  计算的值是20 这个值可能会在19.8和20.2之间跳动 那么这个LED就闪烁了   我希望  到这个值就稳定的LED=0;不跳动
回复

使用道具 举报

ID:93224 发表于 2019-9-10 09:57 | 显示全部楼层
判断两边最高点两边的阈值,然后找出最高点
回复

使用道具 举报

ID:565305 发表于 2019-9-10 11:21 | 显示全部楼层
楼主提及的问题就像 万用电表 测量显示值一样

打个简化的比方:当误差(均方差或者平均值误差之类)低于阈值时,以缓存队列平均值做显示。当高于阈值时,以当前值显示。(相当于误差小,就忽略误差,以平均值显示)

处理手法很多样。简化的做法就先把数据缓存为先进先出队列,求求平均数,看看队列每笔和平均数误差再决定以何种方式显示呗。搜索一下均方差、权重 之类的相关了解一下
回复

使用道具 举报

ID:586438 发表于 2019-9-11 15:37 | 显示全部楼层
egypt 发表于 2019-9-10 11:21
楼主提及的问题就像 万用电表 测量显示值一样

打个简化的比方:当误差(均方差或者平均值误差之类)低于 ...

你好  能具体描叙一下吗  不是很懂,或者有没有相关类似的例子可参考一下   非常感谢
回复

使用道具 举报

ID:586438 发表于 2019-9-11 15:41 | 显示全部楼层
lele5211314 发表于 2019-9-10 09:57
判断两边最高点两边的阈值,然后找出最高点

我采集的是温度   它是会不断变化的 ,在变化的时候,判定其中一个数值,这个数值会上下波动  因为判定的结果是拉低引脚控制继电器,它波动就会让继电器嗒嗒嗒
回复

使用道具 举报

ID:405193 发表于 2019-9-11 19:09 | 显示全部楼层
if((C>19.8)&&(C<20.2)) 这样是否可以,注意定义C的类型。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表