MSGEQ7オーディオビジュアライザー付きRGB LEDバックライト(TV・デスク用)
部品と材料
| Arduino Nano R3 | ×1 | |
| Digilent WS2812 アドレサブルLEDストリップ | ×1 | |
| MSGEQ7 | 7バンド グラフィックイコライザー オーディオスペクトラムアナライザー | ×1 |
| Digilent 5V 2.5A スイッチング電源 | ×1 |
必要な工具と機械
| ハンダごて(汎用) |
アプリとオンラインサービス
| Arduino IDE |
このプロジェクトについて
これは私のオリジナル Instructables からの移植です(こちらをクリック)。
TVやデスクの背面用 RGB LEDバックライト の作り方を紹介します。
回路は非常にシンプルです。WS2812 LEDストリップ は Arduino Nano などと非常に簡単にインターフェースできます。
注意: オーディオビジュアライザー機能が不要な場合、MSGEQ7オーディオアナライザー回路は省略可能です。
使用部品の詳細リストと購入先:
- Arduino Nano/Uno (Amazon / AliExpress)
- WS2812 RGB LEDストリップ (Amazon / AliExpress) ※IPは防護等級(防水等)、数字は1メートルあたりのLED数(電源選定に重要)
- 5V電源 (Amazon) ※LED数による。各LED約20mA消費。本チュートリアルのストリップは45個(30個/m)なので 45×20mA ≈ 0.9A。ArduinoとMSGEQ7分も考慮し、3A出力のものを推奨
- 3.5mm オーディオジャック (Amazon / AliExpress)
- ポテンショメータ 10kΩ (Amazon / AliExpress)
- タクトスイッチ (Amazon / AliExpress)
- 抵抗 (10kΩ×1、220Ω×1、MSGEQ7用:100kΩ×2)
- コンデンサ (1000μF電解×1、10nF×2、MSGEQ7用:0.1μF×2、33pF×1) (Amazon / AliExpress)
- シンプルな ダイオード (Amazon / AliExpress)
- DCジャック (Amazon / AliExpress)
ステップ1:回路図の作成
メイン回路:
WS2812ストリップとArduinoの接続は、Adafruit_NeoPixelライブラリを使えば非常に簡単です。
LEDストリップは3ピン:VCC、DATA、GND。VCCを5V、GNDをGND、中央の DATAピン を ArduinoのD6(LED_DATA) に接続。ストリップ上の各LEDに搭載されたWS2812チップがデータを受け取り、次のLEDへパススルーするため、最初のLEDに一度データを送るだけで全LEDを制御できます。
モード切替用タクトスイッチと輝度調整用ポテンショメータのロジックは次ステップで説明します。
正確な回路図は、ダウンロード可能なFritzingファイルのスクリーンショットをご覧ください。
重要: Arduinoの5Vピンを電源に接続する際は、必ずダイオードを介して 接続してください。そうしないとUSBケーブルを挿してプログラム書き込みをした際にArduinoが破損する恐れがあります。10nFと1000μFのコンデンサも安全対策(電源変動防止)として入れています。
MSGEQ7回路:
MSGEQ7をArduinoに接続する最も一般的な回路です。ここで 3.5mmオーディオジャック が必要です。ほとんどのオーディオジャックの中央ピンがGND、左右のピンがステレオチャンネルで、それぞれ10nFコンデンサを介してMSGEQ7のSignal Inピンに接続します。感度調整用にSignal Inピンにポテンショメータを追加することも可能ですが、必須ではありません。
MSGEQ7 と Arduino の接続: Analog Outピン → A1 (MSGEQ_OUT)、 Strobeピン → D2 (STROBE)、 Resetピン → D5 (RESET)。
rgb_controller.fzz
ステップ2:コード
GitHub に 完全なスケッチ を公開: RGBStripe_Control_WS2812
コードのポイント:
コード内で、LED数(ご自身の環境に合わせてNUM_LEDSを変更)、ArduinoのLED_DATA接続ピン、カラーデータ伝送のコーディングタイプと速度を指定して Adafruit_NeoPixel オブジェクトを生成します。
setup() で setBrightness(0-255) でデフォルト輝度を設定し、begin() でストリップを開始。setPixel(LED, Color) で各ピクセル/LEDを個別にRGB色指定し、設定完了後に strip.show() でストリップを更新。これがアニメーションプログラミングの基本ロジックです。
アニメーション/モード制御のために タクトスイッチ を追加。一方をVCC、もう一方を Arduino D3ピン と10kΩ抵抗でGNDに接続。setup() でこのピンに 割り込みをアタッチ し、ボタン押下時に changeMode() を呼び出すようにします。changeMode() では単純に 次のモードへ切り替え、現在のアニメーションを中断させます。すると loop() が再実行され、新しいアニメーション/モードが再生されます。
用意されているアニメーション:虹色フェード、赤、緑、青、白、ミュージックアナライザーモード
さらに 10kΩポテンショメータでストリップの輝度を制御 できるようにしました。checkBrightness() メソッドで、ピンA2(ポテンショメータ中央ピン)の出力を読み取り、ストリップの輝度を更新します。
musicAnalyzer() モード(MSGEQ7使用)について:
このモードでは、MSGEQ7のSignal Inに接続された オーディオ信号を可視化 します。MSGEQ7は単一のオーディオバンド(8バンド、低域から高域へ)を示すアナログ信号を出力します。musicAnalyzer() メソッドは、MSGEQ7をリセットしてからアナログ値をバッファリングすることで 現在のオーディオバンドの値を取得 します。Strobeピンに立上りエッジを与えることで出力バンドを切り替えます。全8バンドをバッファリング後、すべてのLEDピクセル値を1つ後ろにシフトし、LED 0の新しい値を計算** します。色構成は: 低域(ベース)→ 赤、中域 → 緑、高域 → 青。新しい値を読み込む前にシフトすることで、滑らかなタイムベースのアニメーションになります。
ステップ3:PC側のオーディオ設定
音楽/オーディオをMSGEQ7に入力しつつ、スピーカーでも再生するには、Realtek HDのステレオミックス機能を使うか、サウンドカード/マザーボードのリアスピーカー出力にMSGEQ7のオーディオ入力を接続します。
Windows 10でステレオミックスを有効化するには、タスクバーのスピーカーアイコンを右クリック → 「サウンド」 → 「録音」タブでステレオミックスを右クリック → 「有効」。表示されない場合は右クリック → 「無効なデバイスの表示」を選択。ステレオミックスのプロパティで「このデバイスを聴く」にチェックし、メインスピーカーの音声をコピーするように設定。
リアスピーカー出力を使う場合、メインスピーカーのプロパティ → 「拡張」タブ → 「環境」から「部屋」を選択。
これでスピーカーとMSGEQ7の並行オーディオ出力が可能になります。
ステップ4:補足
回路がシンプルで小型のため、USBコネクタ、オーディオジャック、DCジャック、ポテンショメータ、タクトスイッチ用の穴を開けた小さな箱に全回路を収納できます。オス/メスピンヘッダとジャンパーワイヤーでWS2812ストリップの3線を接続すれば完成です。
コード
Arduinoスケッチ ダウンロード
https://github.com/PhilKes/RGBStripe_Control_WS2812
回路図
ArduinoとWS2812ストリップのブレッドボード接続図(ポテンショメータによる輝度制御付き)
fvwp3zyjs5c4z851_12HuWgZiDT.fzz
スタンドアロンMSGEQ7回路図(オーディオビジュアライザーモードのみで使用)
Signal Inを3.5mmオーディオジャックのL/Rチャンネルに、その他の制御ピンをもう一方の回路図通りに接続
製造プロセス
- 自作LUMAZOID:Arduino音楽ビジュアライザーDIYガイド
- Arduinoオーディオ周波数検出器 – 高感度サウンドモジュールで最大音量ピークの周波数を測定
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- Arduino UNOとDFPlayer Miniで音声を再生する方法 - ステップバイステップガイド
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- Arduino RGB LEDカラーミキサー:初心者向けDIYプロジェクト
- DIY ArduinoラジオニクスEMR治療デバイスの構築
- 屋外対応DMX制御RGB LED投光器 – 低コスト・高性能・自作PCB
- DIY LEDルーレットゲーム – Arduino Nanoで作る1人用アーケードゲーム
- Arduino駆動スマート自動駐車場システムの製作
- パルス光センサー:LED光パルスを増幅して可聴音に変換