2017-01-17 19 views
0

私は、私のarduinoのアナログ入力に接続されたマイクを持っています。このマイクは抵抗を介して+ 5Vに接続されています。arduino信号パターンのマッチング

私がしたいことは、マイクの「タップ」を検出して、ユーザーがドラマーのようなシーケンスを再生することです。 arduinoは、これが良いシーケンス(タップ間の継続時間)であるかどうかを認識しなければなりません。しかし、シーケンスをより速くするユーザーができます。

どこから始めたらいいですか?私は速度が異なるので、FFTは良いことだとは思わない。

ありがとう

+0

"タップ"はかなり特徴的な信号、高振幅、シャープなエッジです - arduinoがアナログ入力を十分に速く読み取るならば私はそれがそうだと思う)、多分入力をいくつかの事前定義された(ハードコードされた)閾値と比較して、 FFTや複雑な処理を必要とせずにその後、期間の論理を行います。 – xealits

+0

'if(digitalRead(pin)== hi)'を 'if(analogRead(pin)> 600)に置き換えて、ハードウェアをどのように変換するかを把握するためのボタンを押して、 ' – dandavis

答えて

0

FFTを忘れてしまった。
Arduino Unoにはこのアルゴリズムのためのメモリが不足しています...そして、それを適合させることができたとしても、あなたのアプリケーションには何も記憶が残っていません...代わりにアナログ積分器を使用してください。
あなたのマイクロフォンとarduino入力の間のフィードバックにコンデンサと抵抗器を備えたopampが1つあります。

ユーザーがタップすると、出力が高くなり、もう一度ローになるまでにかなりの時間がかかります。上がってから再び上がるまでの時間(ミリ秒)を測定することができます...

高ピークを検出し、カウンタを初期化し、信号がローになるのを待ってから、再びそれを待つ単純なステートマシンカウンターを停止することができます...これを行う方法がたくさんあります...創造的です

私はあなたに基づいて自分自身を調整する必要があるかもしれないものの種類ですので、私はあなたに番号を与えることはありませんビート、あなたのマイクのインピーダンス、あなたのarduinoの反応時間...

+0

ありがとう、しかし、opampが本当に必要だと思いますか? – Bob5421

+0

私は確かめるためにオシロスコープの読書が必要です... –

関連する問題