ESP-WROOM-02にアナログの音声信号を供給するための回路をブレッドボード上に作りましたが、下記の問題がありましたので対応しました。
①ノイズがのる
②大きい音を入れるとESP-WROOM-02が再起動してしまう
以下、上記問題の対策について詳しく書きます。
①ノイズ対策
前から気になっていたのですが、音声信号を直接ヘッドホンで聞いて見ると、ブーンというノイズが乗っていました。PCから離すとノイズが消えるのですが、現状はESP-WROOM-02の乗ったブレッドボードをデバッグするため、PCに接続して使っているので、PCから離すことができず、何とかしたいと考えていました。
色々サイトを見てみたところ、ブレッドボードはノイズが乗りやすいらしいです。そのノイズ源の一つとして、ブレッドボード上の配線に使っているジャンパー線がアンテナとなり、周囲のノイズを拾ってしまうようです。試しに、ヘッドホンで聴きながらいくつかのジャンパー線を触って見ると、触ることでノイズが減るものがあることがわかりました。試しに、そのジャンパー線をできるだけ短くして、ブレッドボード上で最短距離を結ぶように配線しなおしたところ、ノイズが減りました。
②大きい信号が入らないようにする
ESP-WROOM-02にはTOUTというピンがあり、ここにアナログ信号を入力するとsystem_adc_read関数で入力された電圧の大きさを取得できる(10bit精度)のですが、これが1Vまで、と決まっているようです。おそらくですが、大きい音を拾った時にリセットがかかるのは、この上限を超えるような電圧(アンプの電源は5Vなので、5Vは超えていないと思いますが)がかかったためだと思われます。そこで、このサイトで解説されていたリミッタ回路(ダイオードを2つ使うタイプ)をつけて、入力電圧の範囲を-0.5V〜1.0Vに制限してみたところ、大きい音を入れてもリセットがかかることがなくなりました。やはり、大きい信号を入れるとリセットがかかってしまうようですね。