0

ECE 人员:我有一个简单的电路,其中的 LED 指向光电晶体管。它们之间有一根管子,液滴会随机滴下。我正在用发射器上的 Arduino 读取电压,因为当 LED 被遮挡时它会下降。

非 ECE 人员:每次通过 Arduino 循环,我都在读取接近恒定的值。每隔一段时间,这个值可能会因一些未知数量的循环而改变。我想在每次发生这种情况时增加一个计数器并避免多次计数。

我已经尝试了一些我自己的方法(例如平均值持续一些值并检查不同的平均值),但它们似乎非常不稳定。我不是信号处理或任何方面的专家,但我想知道有什么好的方法/算法可以用于这种事情。任何帮助,将不胜感激。谢谢!

4

1 回答 1

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)。您将获得一个可以轻松编码的表达式。

我相信这两个关于集成的子解决方案可以解决您的问题。

于 2012-12-10T03:29:34.070 回答