机器人论坛
直播中

李昕一

7年用户 183经验值
私信 关注
[问答]

单片机软件怎么实现迟滞(滞回)比较算法

3个电压点3.2V,3.5V,3.8V.对应点亮红,黄,绿,.现在想采用滞回算法滤波,我现在的算法会在临界点有抖动,led会闪烁。绿灯在大于3.8亮,黄灯在3.5-3.8亮,红灯做3.2-3.5直接亮,要求上电在也要有灯亮,求大神指导思路

回帖(14)

孙婷婷

2018-10-31 11:12:28
多次采样,取平均值。如果变化太快,闪烁应该是正常的。
举报

李昕一

2018-10-31 11:21:19
引用: TOPCB 发表于 2018-10-31 17:30
多次采样,取平均值。如果变化太快,闪烁应该是正常的。

已经有需要AD滤波了,但为了让几率变得很小很小,还是需要这个迟滞比较的算法,
举报

徐娟

2018-10-31 11:40:54
用if语句判读不行吗?
举报

孙婷婷

2018-10-31 11:52:57
示波器测试一下电压的波形,看看实际采集的是否一致。
举报

崔明华

2018-10-31 12:01:21
判断加延时处理就可以了
举报

李昕一

2018-10-31 12:17:00
引用: guanrui1202 发表于 2018-10-31 17:59
用if语句判读不行吗?

用过,,if(a>3.6)绿灯,if(a<3.4)黄灯,中间的空白范围是保持状态,但我初始化加上中间范围的判断后存在缺陷,偶尔闪灯。
举报

李昕一

2018-10-31 12:28:00
引用: TOPCB 发表于 2018-10-31 18:11
示波器测试一下电压的波形,看看实际采集的是否一致。

采集到没啥问题。。主要是AD也多多少少会变,就算再滤波也会变
举报

李昕一

2018-10-31 12:44:49
引用: 60user108 发表于 2018-10-31 18:19
判断加延时处理就可以了

什么鬼,,延时我都没用到
举报

李舒桀

2018-10-31 12:53:36
if(m>n+5){n=m-5;}
else if(m
5为允许误差  m是AD采集值
举报

王鹏

2018-10-31 13:00:00
  我觉得 可以适当 在AD采样口价格RC滤波
举报

李昕一

2018-10-31 13:14:09
引用: wdc596933938 发表于 2018-10-31 19:11
if(m>n+5){n=m-5;}
else if(m<n-5){n=m+5;}

这个就出现中间那个N+5到N-5直接的范围没取到,如果一上电开机在这个范围的话就需要一个初始化判断,但这样程序就还是存在bug,在上电开机如果在判断点就是偶尔闪,,就算是滤波了也会出现这个问题。。
举报

李舒桀

2018-10-31 13:33:07
引用: 60user91 发表于 2018-10-31 19:32
这个就出现中间那个N+5到N-5直接的范围没取到,如果一上电开机在这个范围的话就需要一个初始化判断,但这样程序就还是存在bug,在上电开机如果在判断点就是偶尔闪,,就算是滤波了也会出现这个问题。。

加计数判断,大于N+5时计数加1;连续几次大于N+5时算作有效
举报

汪汪

2018-11-25 22:26:41
延时啊,这不数码管消隐
举报

卢君

2021-2-21 21:36:10
谢谢,学习了,很感谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分