2013年5月29日水曜日

Arduinoでヘッドフォンアンプ的なものを駆動


とりあえず上の写真が落ち着いた実験回路(?)です。
何かと言うと、電流駆動ヘッドフォンアンプです。イヤホン繋がってますが。
電源はArduinoで発振信号を作り、プッシュプル増幅でコッククロフト・ウォルトン回路(一段数)を正負で1つずつ駆動させて生成しています。

以下詳細…。



今回は手持ちで最も安物のLM324N(4回路入り汎用オペアンプ、単価25円)を使いました。あとバイポーラトランジスタ(増幅回路)は2SC1815GRと2SA1015GRを一つずつ。その他、スイッチングダイオードを4つ、インダクター2つ、コンデンサ(MLCC)6個ぐらい、抵抗などです。

電源部のフローは次の流れです。

  1. ArduinoにUSB(5V)給電 ← PCからでも充電器等でもOK
  2. ArduinoのGND-5Vピンからプッシュプル回路へ
  3. ArduinoのD9を発振させてプッシュプル回路のベースへ
  4. プッシュプル回路から2つのコッククロフト・ウォルトン昇圧回路へ
  5. 昇圧した正負電源をLC回路へ
  6. LC回路でフィルタされた電源をオペアンプへ(完)
アンプ部のフローは次の流れです。
  1. オーディオ機器(写真ではスマホ)のライン出力からボリュームへ
  2. ボリュームからカップリングコンデンサへ
  3. そのままオペアンプの非反転入力へ
  4. オペアンプのアウトプットをヘッドフォン(写真ではイヤホン)のL/Rへ
  5. ヘッドフォンのGNDをオペアンプの反転入力へ
  6. 反転入力から3Ω前後の抵抗を通して電源のGNDへ
こんな感じです。

Arduinoの発振プログラムは、とりあえず全力(高周波数)で発振させたかったので、レジスタ弄ってます。理論上は16[MHz]/5[clock]=3.2[MHz]で半位相進み、1.6MHzの発振となると思われます。
プログラムは次の通り。Leonardo用なので、Uno等他のを使ってる人は、_BV関数の引数を必要に応じて変えて下さい。(Unoの場合は多分「1」です。)

void setup()
{
  DDRB |= _BV(5);
}
void loop()
{
  PORTB ^= _BV(5);
}

電源部の回路とシミュレーション(LTspice)はこんな感じ。(微妙に変えたかも)


電流駆動ヘッドフォンアンプってことで、アンプ部に関してもいろいろ書きたいのですが、長くなりそうってことで、後回しにしたいと思います。ちなみに写真の状態になる前は次の写真みたいになってて、かなり酷い状態…(汗)


ちなみに音は結構良い感じですが、万が一出力(イヤホン)が外れたりしそうになると、少々危ないので、真似するなとは言いませんが、一応気をつけてください。

本日は以上!

0 件のコメント:

コメントを投稿