ECE人员:我有一个简单的电路,有一个发光二极管指向一个光电晶体管。在它们之间有一个管子,液滴会在随机的时间滴入其中。我正在用Arduino在发射器上读取电压,因为当LED被遮挡时,它会下降。
非欧洲央行人员:每次通过Arduino循环,我都会读取接近常量的值。每隔一段时间,这个值可能会因为一些未知数量的循环而改变。我想在每次发生这种情况时增加一个计数器,并避免多次计数。
我已经尝试了自己的一些方法(例如,平均值持续一定数量的值,并检查不同的平均值),但它们似乎相当不稳定。我不是信号处理或其他方面的专家,但我想知道对这类事情有什么好的方法/算法。任何帮助都将不胜感激。谢谢!
发布于 2012-12-10 11:29:34
这是一个简短的函数,用于更新到目前为止检测到的液滴计数。
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
}
}此函数接收“过滤”的光电晶体管的当前值和旧值,并根据这些值更新计数。
要实现低通滤波器,请参阅维基上的低通滤波器(http://en.wikipedia.org/wiki/Low-pass_filter)。你会得到一个表达式,你可以很容易地编码。
我相信这两个关于集成的子解决方案可以解决您的问题。
https://stackoverflow.com/questions/13790615
复制相似问题