uchan note

プログラミングや電子工作の話題を書きます

Arduino に iPod の出力を繋ぐためのプリアンプ回路を実験してみる

少し前に プリアンプ回路を設計した ので、それを実装して実験してみた。

そもそもやりたかったのは、Arduino でデジタルエフェクタを作ることである。 そのために、交流である音声信号を、 1.65V を中心にして、なるべく 0V から 3.3V まで大きく振れる信号に変換したい。

動作実験

実装したプリアンプ回路の動作実験をした結果を紹介する。 回路に正弦波や音声信号を入力して、出力信号を観察した。

正弦波入力とプリアンプ出力

実装した回路に 1kHz の正弦波を入力して動作を観察してみた。

正弦波は "Tone Generator" などと呼ばれる iPhone アプリを使うと手軽に生成できる。 私は Audio Tone Genarator Lite を使った。

f:id:uchan_nos:20151223125856j:plain:w300

  • 上側:プリアンプ回路の出力信号(1V/div)
  • 下側:プリアンプ回路の入力信号(100mV/div、1kHz 正弦波)

下側のチャンネルは 1 メモリ 100mV 設定(100mV/div)なので、振幅は約 140mV である。 対して、上側のチャンネルは 1 メモリ 1V 設定(1V/div)なので、振幅は約 2.8V である。 きちんと増幅してくれているようで一安心だ。増幅率は約 20 倍。

プリアンプ回路の増幅率は可変抵抗で調整できるように作っている。 試しに増幅率をもっと上げてみると次のようになった。

f:id:uchan_nos:20151223131114j:plain:w300

プリアンプ回路で使っているオペアンプの電源が 3.3V なので、最大でも 3.3V の振幅までしか増幅ができない。 増幅率を上げすぎると、このように波形の上下が途切れてしまう。 Arduino で精度よくアナログ波形を読み取るには、ぎりぎり途切れないくらいの増幅率に設定するのがよい。

ちなみに、今回使った LMC6484AIN というオペアンプが "rail to rail" と呼ばれる特徴を持つ品種であるおかげで、電源電圧ぎりぎりまで増幅ができている。 rail to rail でないオペアンプでは電源電圧より低い電圧しか出力できないため、注意が必要だ。

音声信号入力とプリアンプ出力

今度は正弦波の代わりに iPod から実際の楽曲を入力し、増幅の様子を見てみる。

f:id:uchan_nos:20151223134615j:plain:w300

  • 上側:プリアンプ回路の出力信号(200mV/div)
  • 下側:プリアンプ回路の入力信号(10mV/div、iPod 音声信号)

下側のチャンネルは 1 メモリ 10mV 設定(10mV/div)なので、最大振幅は約 40mV である。 対して、上側のチャンネルは 1 メモリ 200mV 設定(200mV/div)なので、振幅は約 0.8V である。 画像では増幅されていることが分かりにくいが、きちんと 20 倍に増幅できている。

正弦波入力と DAC 出力

Arduino で AD 変換した結果をそのまま DA 変換するプログラムを作り、波形を見てみることにした。 Adruino Due は AD/DA ともに専用の回路を持っており、どちらも 12 ビットの精度で変換ができるので、 Arduino への入力信号と同じ波形が出力されると期待できる。

f:id:uchan_nos:20151223140240j:plain:w300

  • 上側:ArduinoDAC 出力信号(1V/div)
  • 下側:プリアンプ回路の入力信号(100mV/div、1kHz 正弦波)

下側のチャンネルは 1 メモリ 100mV 設定(100mV/div)なので、振幅は約 140mV である。 対して、上側のチャンネルは 1 メモリ 1V 設定(1V/div)なので、振幅は約 1.9V である。

増幅率は約 20 倍に設定してあるのでプリアンプ回路の出力は振幅 2.8V である。 なのに、DAC 出力が 1.9V になってしまうのはなぜだろうか。

Arduino Due の CPU である SAM3X8E の仕様書 を読むと答えが書いてあった。 DAC の出力電圧は電源電圧の 1/6 から 5/6 の範囲しか出ないらしい。

DAC 出力の振幅が入力の 2/3 になるということだから、2.8 × 2/3 ≒ 1.9 となり、観測結果は正しいようだ。

実装

ブレッドボード上に回路を実装した様子はこんな感じになった。

f:id:uchan_nos:20151223145850j:plain:w300

オリジナルサイズで表示

左側がプリアンプ回路、右側が Arduino Due の基板である。 プリアンプ回路の中央にある IC が、メインの部品となるオペアンプだ。

実装上の注意や、設計から一部変更した点などはまた今度書く予定。