带你飞啊啊 发表于 2016-8-25 20:39:30

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

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

发表于 2016-8-26 11:02:19

多次采样,取平均值。如果变化太快,闪烁应该是正常的。

带你飞啊啊 发表于 2016-8-26 11:39:54

安 发表于 2016-8-26 11:02
多次采样,取平均值。如果变化太快,闪烁应该是正常的。

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

pythonworld 发表于 2016-8-26 12:55:40

用if语句判读不行吗?

发表于 2016-8-26 14:01:19

示波器测试一下电压的波形,看看实际采集的是否一致。

yklstudent-1794 发表于 2016-8-26 16:36:34

判断加延时处理就可以了

带你飞啊啊 发表于 2016-8-27 09:38:58

pythonworld 发表于 2016-8-26 12:55
用if语句判读不行吗?

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

带你飞啊啊 发表于 2016-8-27 09:39:31

安 发表于 2016-8-26 14:01
示波器测试一下电压的波形,看看实际采集的是否一致。

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

带你飞啊啊 发表于 2016-8-27 09:40:00

yklstudent-1794 发表于 2016-8-26 16:36
判断加延时处理就可以了

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

qrslyf 发表于 2016-8-27 16:45:36

if(m>n+5){n=m-5;}
else if(m<n-5){n=m+5;}

5为允许误差m是AD采集值
页: [1] 2
查看完整版本: 单片机软件怎么实现迟滞(滞回)比较算法的