非ECE人员:我每次通过Arduino循环读取接近恒定的值。每隔一段时间,这个值可能会因某些未知数量的循环而发生变化。我想在每次发生这种情况时增加一个计数器并避免多次计数。
我已经尝试了一些我自己的方法(例如,平均值持续一些数值并检查不同的平均值)但它们似乎相当不稳定。我不是信号处理方面的专家或任何东西,但我想知道一些好的方法/算法对于这种事情是什么。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:0)
这是一个简短的功能,用于更新到目前为止检测到的滴数。
int UpdateCount (int current, int old, int count) // current is current value of phototransisor, old is the old value
if ((current==1)&(old==0)){
return count count+1
}
}
此功能接收光电晶体管的“滤波”电流和旧值,并根据值更新计数。
要实现低通滤波器,请参阅wiki上的低通滤波器(http://en.wikipedia.org/wiki/Low-pass_filter)。您将获得一个可以轻松编码的表达式。
我相信这两个集成解决方案可以解决您的问题。