そのマイクにスペックシートを投稿できますか?内部FETのない裸のユニットがない限り、エレクトレットマイクで5000のゲインが必要な理由はありません。その場合は、プリアンプの外観を大きく変える必要があります。
さらに、使用した回路はエレクトレットマイクのプリアンプとして使用するのにそれほど役立ちません。
私はお勧めします:
R5 / R4はゲインを設定し、回路の入力インピーダンスにねじ込むことなく調整できます。R3は2k-> 10k ishから選択できます。10kは歪み性能を改善する傾向があります。これをあまりにも低く調整する場合は、R1とR2の値を再考して入力インピーダンスを修正する必要があります。
また、ノイズがマイクロフォンに混入するため、電源を適切に分離することも非常に重要です。
他の答えが言及したように、ADCを読むと「ゼロ」ポイントは〜512になり、何をしても少し変動します。
目標がレベルに応じてライトを点滅させることである場合、とにかくarduinoで瞬時に測定値を取得してはいけません。代わりに、アナログドメインでピークまたは平均レベルの検出を行い、サンプリングレートに応じて平均化期間を設定します。
編集:ピーク検出器でこれを行うことの詳細
ここでの問題は、arduinoのサンプリングレートが比較的制限されていることです。最大値は約10khzになると思います。つまり、最大5khzのオーディオ信号しか解決できません。これは、arduinoがADCを実行する以外はほとんど実行しないためです。実際の作業を行う必要がある場合(およびレベルを上げるためにいくつかを行う場合)、サンプリングレートは低くなります。
未処理の信号の離散サンプルを取得することを忘れないでください。ADCにフルレンジの正弦波を供給しているからといって、ADCから0の読み取り値が得られないわけではなく、波のさまざまなポイントでサンプルを取得できます。実際の音楽では、結果の信号は非常に複雑になり、サンプルが至る所にあります。
ここで、測定しようとしているのが入力信号のレベルだけであり、実際に信号のデジタル表現を取得する必要がない場合、このプリアンプの後に簡単なピーク検出器を使用して測定できます。
これにより、オーディオ信号がピークレベルを表す電圧に変わります。この電圧をADCで測定すると、測定値が取得された時点の信号レベルを表す即時値が得られます。サウンドは複雑で常に変化する波形であるため、多少の揺れがありますが、これはソフトウェアで簡単に処理できるはずです。
ホールドなしのピーク検出器は、実際には出力にフィルターを備えた単なる整流器です。この場合、低レベルの信号を処理し、精度を維持する必要があるため、平均整流回路で行われることよりも少し多く行う必要があります。この回路ファミリは「精密整流器」と呼ばれます。
これを行う方法は約10億通りありますが、この回路を使用すると、単一の電源を使用する場合に最適に機能するようです。これは、すでに説明したプリアンプ回路の後に入力され、入力がAC結合されているかどうかにかかわらず、使用可能なピークを超えない限り、負の入力電圧で実際に正常に動作しますオペアンプからのピーク電圧。
OP1は(ほぼ)理想的なダイオードとして動作し、整流時のダイオード両端の電圧降下の通常の問題を回避します。ほとんどの小信号ダイオードはD1で動作しますが、順方向電圧降下が小さいと精度が向上しますが、使用には問題ないでしょう。
C1とR4は、出力をスムーズにするローパスフィルターとして機能します。これらの値を使用して、パフォーマンスを目的の処理(およびサンプリングレート)に一致させることができます。
プリアンプで使用しているのと同じオペアンプモデルをおそらく使用できますが、この回路にはレールツーレールおよび高スルーレートが理想的です。安定性の問題がある場合は、R1、R2、およびR3を100kオームに増やします。