スペクトラムレベルメータ(#7)

 とりあえずですが完成しました。

スペクトラムレベルメータ
 スペクトラムレベルメータ(完成)

 無事ソフトウェアも完動し、運用フェーズに入りました。
 結局地道にMSGEQ7でスペクトラムデータ生成→A/D変換→表示データ変換→H16K33で表示とするルーチンをライブラリを使わずべったりコーディングしました。
 初め表示が一切出ないトラブルに遭遇しましたがスタンバイモードのコマンド値がスタンバイと通常モードが逆になっていたというケアレスミスだったというお粗末な顛末(苦笑)もありましたが、無事動作し表示して違和感がないデータを見る事ができました。
 10bitでA/D変換しますので最高値は1023カウント(計算上は1024で取り扱い)。内部5VをリファレンスにしていてMSGEQ7の最大出力値が4Vなので0.8倍の819カウントを最高レベルの+6dBとしてテーブルを作成し、得られた値とVU値テーブルの突き合わせで表示レベルを決める単純な比較演算で表示レベルを決定しています。
 表示デバイスは8×8ですがMSGEQ7の得られるスペクトラムデータは7バンドで1列余ります。左チャネルは2番目の列からデータを表示させるようにして左右の表示のバランスを合わせました。
 5Vを10bitのA/D変換すると1LSBは4.9mVぐらいになり、前回オシロスコープで観察した際に無信号時のMSGEQ7の出力が見えるレベルで出力されていたので気にはなっていたのですが、データシートによると出力オフセットは600mVもあり実際に変換してみるとそこそこ値として取ってしまい(0.6V=約122カウント)、0Vを最小値とするテーブルでは無音でも最下位セグメントが常点灯されてしまいました。
 仕方がないので600mVから4000mVをレンジとしてテーブルを作成し直して組み込んでいます。厳密な測定を目的としておらず見た目の雰囲気で楽しめれば良いので、このあたりは必要があれば追い追い調整していく予定です。
 現状なかなか見た目でも楽しいので別の使用場所のためにもう一台製作するかもしれません。

【今回の一連記事へのリンク】
スペクトラムレベルメータ(#1)MPUメイン基板検討中
スペクトラムレベルメータ(#2)メイン基板製作
スペクトラムレベルメータ(#3)LEDドライバ基板製作
スペクトラムレベルメータ(#4)筐体組込み
スペクトラムレベルメータ(#5)LEDドライバ動作テスト
スペクトラムレベルメータ(#6)MSGEQ7動作テスト
スペクトラムレベルメータ(#7)この記事

【スケッチ】spectrum_meter.ino(右クリックで保存)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA