3个电压点3.2V,3.5V,3.8V.对应点亮红,黄,绿,.现在想采用滞回算法滤波,我现在的算法会在临界点有抖动,led会闪烁。绿灯在大于3.8亮,黄灯在3.5-3.8亮,红灯做3.2-3.5直接亮,要求上电在也要有灯亮,求大神指导思路
已经有需要AD滤波了,但为了让几率变得很小很小,还是需要这个迟滞比较的算法,
用过,,if(a>3.6)绿灯,if(a<3.4)黄灯,中间的空白范围是保持状态,但我初始化加上中间范围的判断后存在缺陷,偶尔闪灯。
采集到没啥问题。。主要是AD也多多少少会变,就算再滤波也会变
什么鬼,,延时我都没用到
else if(m<n-5){n=m+5;}
5为允许误差 m是AD采集值
这个就出现中间那个N+5到N-5直接的范围没取到,如果一上电开机在这个范围的话就需要一个初始化判断,但这样程序就还是存在bug,在上电开机如果在判断点就是偶尔闪,,就算是滤波了也会出现这个问题。。
加计数判断,大于N+5时计数加1;连续几次大于N+5时算作有效