Awazaru's Blog

筆者の覚え書きです。内容は電子工作とかその他いろいろ。

スペクトルアナライザ[製作編]

前回の記事からだいぶ放置してしまいました。
あけましておめでとうございます。
 
オーディオスペクトルアナライザが完成しましたのでまとめます。

f:id:yudai524:20160121094725p:image

表示部は8×8のLEDマトリクスを使いました。
理由として、
・コンパクトに収めたかった
・バーLEDはありきたりだと思った
などがあります。
 
基板を二枚使いLED表示部と制御部に分けました。
LED表示部にも制御用ICがつけられています。

f:id:yudai524:20160120224929j:image

制御部では
・Atmega328P
・MSGEQ7(バンドバスフィルタIC)*2
・シフトレジスタSN74HC595N
・シンクドライバTD62083APG*1
・ソースドライバTD62784AP*2
 
を使っています
 

f:id:yudai524:20160120225803j:image

片チャンネル分の回路図兼配線図です。
実際はこれにシフトレジスタ,MSGEQ7,ソースドライバ,マトリクスLEDが追加されます。
手書きなのはCADで書くのが面倒だったからです。
 
MSGEQ7は7ch分のバンドパスフィルタを搭載したICで一定の信号を与えてやると入力されているオーディオ信号の周波数スペクトルをDC値で出力します。

f:id:yudai524:20160121094809p:image

f:id:yudai524:20160121094812p:image

これらの図はMSGEQ7のデータシートより引用したものです。
上の図はフィルタが対応する周波数を表し、下の図がICより出力を得るためのある一定の信号のタイミングチャートを表します。
AVRマイコンにはdelay関数が用意されていますのでそれを用いるとごく簡単に制御することができます。
ICから出力されるDC信号をLEDのレベル表示に反映させるのはマイコンで行います。
AD変換,(シフトレジスタを扱うための)spi通信機能を利用しました。
LEDに表示する際にレベルスケールを決める必要があります。多くの人は対数スケールを使用していますので私も例に習って対数スケールを使いました。
 
レベル変換部では見栄えをよくするために手動である程度値の調整を行っているため,このスペアナは測定器としての実用性はありません。
ですが、目で見て楽しむ娯楽アイテムとしては十分な機能を持っていると思います。
 
ICの特性上なのか、私の回路が悪いのかスペアナがちゃんと機能するためにはある程度の振幅の信号(2Vpp弱)を入れてやらないといけません。これは普通にポータブルプレーヤから出力される信号としてはかなり大きくて直接イヤホンで聞くと爆音になります。
つまりiPodから直接分岐させてイヤホンで聞きながらスペアナ駆動、というのは現実的ではありません。何かしら音量調整をする必要があるでしょう。