用光电晶体管检测液滴的方法

时间:2012-12-09 18:56:00

标签: arduino signal-processing circuit

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

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

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

1 个答案:

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

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