Arduino駆動LEDキャンドルライト:自然な揺らぎで空間を演出するスマート照明
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| WS2812B RGB LED(SMD、5050サイズ) | 44 | 4個×11モジュール構成。個別制御可能 |
| Arduino Nano R3 | 1 | 制御用マイコン |
| フォトレジスター(CdSセル) | 1 | 周囲光センサー(自動点灯/消灯・調光用) |
| IKEA「MONTERA」ケーブルチャンネル | 2 | 配線隠蔽用(粘着テープ付きで取付簡単) |
| ピンヘッダー 40P 1列(2.54mmピッチ) | 7 | モジュール間接続用 |
| M20-1060300 ワイヤー・トゥ・ボード コネクタ(3極、2.54mm、リセプタクル) | 25 | モジュール1個につき2個(入力/出力)必要。予備込み |
| M20-1180046 コンタクト(ソケット、圧着、22AWG、錫メッキ) | 1パック(100個) | モジュール1個に6個必要。圧着工具推奨 |
必要な工具
- はんだごて、細径はんだ、フラックス、ピンセット、ルーペ(WS2812は小型で半田付け難易度高め)
- 圧着工具(M20コンタクト用。なければペンチで代用可能だが品質低下)
- カッター、ニッパー、ワイヤーストリッパー
プロジェクト概要
秋冬の薄暗いアトリウム(吹き抜け)空間を、本物のロウソクの炎のような自然な揺らぎで優しく照らす間接照明システムを自作しました。ガラス壁面の白い縦桟(ビーム)に光を投影させ、炎そのものを見せず「光の揺らぎ」だけを楽しむ設計です。WS2812BアドレサブルLEDを4個1組のモジュール×11基(計44個)を2列(左右の壁面)に配置し、Arduino Nanoで全LEDを個別制御。フォトレジスターで外光を検知し、薄暮時に徐々に点灯、夜間は最大輝度、夜明けに徐々に消灯する自動運転を実現。さらに「クリスマスモード」等のエフェクト切替機能も搭載しています。
設計・計画のポイント
LED選定とモジュール構成
個別制御可能なWS2812Bを採用。1個約9mm径で裏面に6パッド(5V×2、GND×2、Din、Dout)あり。実験の結果、4個/モジュールが揺らぎ表現と配線労力のバランス最適と判断。モジュール化により、現場での取り付け・交換・トラブルシュートが容易になります。(※再設計するなら最初から2×2モジュール品を購入すべきでした)
コントローラー配置と配線トポロジー
Arduino Nanoを水平ビーム上のコーナー柱裏(部屋の角)に配置し、左右の壁面へ別々のデータラインを伸ばす「2系統スター配線」を採用。これにより最大配線長を約4m(片側)に抑制し、信号品質を確保。Adafruit NeoPixel Überguideの推奨に従っています。
ケーブル隠蔽
IKEAのMONTERAケーブルチャンネル(粘着テープ付き)を水平ビーム底面に貼り付け、配線を完全隠蔽。LEDモジュールは強力両面テープでビーム裏面に固定。
LEDモジュール製作プロセス
2種類のモジュールバリエーション
データフロー方向(Din→Dout)を維持しつつ、左右対称配置するため、「右向きモジュール」と「左向きモジュール」の2種類を用意。はんだ付けパターンが鏡像関係になります。
はんだ付け手順とコツ
- ストリップから2×2個をカットし、5V側を赤、GND側を黒でマーキング(極性間違い防止)
- 各パッドに予備はんだ(微小ランドへの「はんだ盛り」)
- 近接パッド間(5V-5V、GND-GND)を短い裸線で直結
- Din/Dout跨ぎ配線は被覆線を使用(ショート防止)
- 「短いケーブルの被剥きテクニック」:片側半田→曲げて長さ決定→被覆をスライド→切断→被覆戻しでピッタリ露出(下図参照)
モジュール裏面フラット化と取り付け
配線で凸凹した裏面をフラットにするため、薄いプラスチック板を四角く切り、ホットグルーで貼り付け。その上から強力両面テープでビームに固定。左右モジュールの識別マーク(色テープ等)必須。
ケーブルハーネス製作
古い電話機延長コード(4芯)を流用。5V、GND、Dataの3芯使用。M20圧着コンタクトを専用工具なしで圧着(ペンチで可能だが慎重に)。ケーブルチャンネルに沿って配線し、各モジュールのコネクタに接続。
自動点灯/消灯・調光ロジック
フォトレジスター(+10kΩプルダウン)で周囲光量をADC読み取り。「昼間」「薄暮」「夜」の3段階を閾値で判定し、薄暮時は線形補間で滑らかにフェードイン/アウト。
閾値決定のためのキャリブレーション
4個のフォトレジスターを同一条件でArduino+LCDに接続し、日中から夜間にかけての最小・最大値を手動記録。結果、630未満で「夜」、800以上で「昼」と判定(使用抵抗・センサー個体・設置環境依存)。
Arduinoソースコード構成
メイン.inoは最小限にし、機能ごとにクラス分離したモジュラー設計。現在はキャンドルモードとクリスマスモードの2エフェクトを実装。エフェクト選択は現状コンパイル時定数(ハードコード)だが、将来的には赤外線リモコンやスマホアプリ(BLE/Wi-Fi)で切替予定。
リポジトリ
- 全ソースコード(GitHub): https://github.com/emmellsoft/AtriumLighting
回路図・設計ファイル
- Fritzingファイル:
2drkW5vm9e7vAdGPxOsm.fzz - 回路図画像:

製作の振り返りとヒント
- WS2812はんだ付け:温度調整可能なはんだごて(300-320℃)、細径はんだ(0.5mm)、フラックス必須。顕微鏡/ルーペ推奨。
- 電源ライン電圧降下:44個全点灯白色で約2.6A。5Vラインは太めの線(AWG20以上)で、両端から給電する等の対策が必要。
- データライン信号品質:長距離配線ではレベルシフター(74AHCT125等)や終端抵抗(100-470Ω)検討。今回は4m程度で直結でも安定動作。
- フォトレジスターキャリブレーション:設置環境ごとに実測必須。コード内の閾値は定数化し、起動時EEPROM読み出しやシリアルコマンドで調整可能にすると便利。
- モジュール化のメリット:現場作業時間短縮、不良モジュールのみ交換可能、将来的な拡張・再配置容易。
今後の展開
- ESP32移行でWi-Fi/BLE対応、スマホアプリからエフェクト選択・スケジュール設定・色温度調整
- マイク搭載で音楽同期(ビートに合わせて揺らぐ)モード追加
- Home Assistant / MQTT連携でスマートホーム統合
- 屋外防水版(IP65)でガーデン照明へ応用
製造プロセス
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- 古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
- ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
- Arduinoベースのヌンチャク操作6自由度ロボットアームキット
- Arduino Nanoで音声制御ロボットを自作
- スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
- PiBot:Arduino駆動の精密ピアノ演奏ロボット
- Arduino RGB LEDカラーミキサー:初心者向けDIYプロジェクト
- DIY ArduinoラジオニクスEMR治療デバイスの構築
- 屋外対応DMX制御RGB LED投光器 – 低コスト・高性能・自作PCB
- Arduino UNOで作る静電容量式タッチLEDスイッチ - 簡単DIY