0

ECE 関係者: フォトトランジスタを指す LED を備えた単純な回路があります。それらの間にチューブがあり、液体の滴がランダムに滴り落ちます。LEDが遮られると電圧が低下するため、エミッターでArduinoを使用して電圧を読み取っています。

非 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)のローパスフィルターを参照してください。簡単にコーディングできる式が得られます。

統合に関するこれらの2つのサブソリューションは、あなたの問題を解決すると信じています。

于 2012-12-10T03:29:34.070 に答える