3D RGB アルドゥクロック:Bluetooth対応LED時計(RTC内蔵)
必要な部品
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | メインマイコン |
| HC-05 Bluetoothモジュール | 1 | スマホアプリと通信 |
| Adafruit NeoPixelリング(WS2812B 5050 RGB LED) | 1 | 7セグメント風表示用×7個(計49LED) |
| Digilent Pmod RTCC(DS3231搭載) | 1 | 高精度リアルタイムクロック |
| スピーカー(0.25W, 8Ω) | 1 | アラーム音再生用 |
必要な工具
- はんだごて
- 3Dプリンタ(筐体パーツ出力用)
プロジェクト概要
前作「アニメーションRGBウォールクロック」に続く新作時計プロジェクトです。Arduino Nanoと個別制御可能なアドレサブルLED(WS2812B)、3Dプリント筐体で構成される「3D RGB ARDUCLOCK」を紹介します。ポータブル時計としても、ギフトとしても最適です。
操作方法
専用スマホアプリ(APK提供)でBluetooth経由で全機能を制御。シンプルなUIで直感操作可能。
主な機能
- 時刻表示(12/24時間制)
- 温度表示(RTC内蔵センサ利用)
- 日付表示
- 時刻設定(アプリから一発同期)
- 日付設定(アプリから一発同期)
- アラーム設定(鳴動音は「ゲーム・オブ・スローンズ」テーマ曲)
- 全桁色一括変更
- 桁グループ別色変更(時十の位、時一の位、分十の位等)
- 秒コロン点滅色変更
- 多彩なアニメーション効果(レインボー、シアターチェイス等)
ハードウェア構成
LED配置
7セグメントディスプレイ風に、各桁を7個のNeoPixelリング(7LED×7セグメント=49LED)で構成。各セグメントを個別ピン(D4〜D10)で制御し、高速表示を実現。
RTCモジュール
Digilent Pmod RTCC(DS3231搭載)をI2C接続(SDA/SCL)。温度補正水晶発振子内蔵で高精度(±2ppm/年)。
Bluetooth通信
HC-05をUART接続(Rx/Tx)。アプリからコマンド文字列を受信しパースして各機能を実行。
ソフトウェアアーキテクチャ
主要データ構造
// 7セグメントパターン(0-9, C, ', H, L, T, E, blank, N, P)
byte sevendisplay[19][7] = {
{1,1,1,1,1,1,0}, // 0
{0,0,1,1,0,0,0}, // 1
{0,1,1,0,1,1,1}, // 2
{0,1,1,1,1,0,1}, // 3
{1,0,1,1,0,0,1}, // 4
{1,1,0,1,1,0,1}, // 5
{1,1,0,1,1,1,1}, // 6
{0,1,1,1,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,1,0,1}, // 9
{1,1,0,0,1,1,0}, // C (10)
{1,1,1,0,0,0,1}, // ' (11)
{1,0,1,1,0,1,1}, // H (12)
{1,0,0,0,1,1,0}, // L (13)
{1,1,0,0,0,1,0}, // T (14)
{1,1,0,0,1,1,1}, // E (15)
{0,0,0,0,0,0,0}, // blank (16)
{1,1,1,1,0,1,0}, // N (17)
{1,1,1,0,0,1,1} // P (18)
};
// アニメーションパターン(1LEDずつ順次点灯)
byte animation[7][7] = {
{1,0,0,0,0,0,0}, {0,1,0,0,0,0,0}, {0,0,1,0,0,0,0},
{0,0,0,1,0,0,0}, {0,0,0,0,1,0,0}, {0,0,0,0,0,1,0},
{0,0,0,0,0,0,1}
};
// カラーパレット(10色)
byte color[10][3] = {
{0,0,255}, {0,225,0}, {0,255,255}, {255,0,0}, {255,0,255},
{255,255,0}, {255,255,255}, {100,150,250}, {255,50,30}, {100,0,200}
};
Bluetoothコマンドプロトコル
アプリから「コマンド.パラメータ1.パラメータ2.」形式で送信(ピリオド区切り)。
| コマンド | パラメータ | 動作 |
|---|---|---|
| tarih | 日.月.年 | 日付設定 |
| saat | 時.分 | 時刻設定 |
| alarm | 時.分 | アラーム設定・有効化 |
| d1 | なし | 第1桁グループ色変更(サイクル) |
| d2 | なし | 第2桁グループ色変更 |
| d3 | なし | 第3桁グループ色変更 |
| d4 | なし | 秒コロン色変更 |
| all | なし | 全桁色一括変更 |
| clock | なし | 時計表示モード |
| date | なし | 日付表示モード |
| temp | なし | 温度表示モード |
| animation | なし | アニメーション再生 |
アラーム動作
設定時刻になると全LEDを消灯し、ブザーで「ゲーム・オブ・スローンズ」テーマを再生しながらLEDを音符に同期点滅。スピーカーピンD13、アラーム有効ピンD12で制御。
表示更新ルーチン(yaz())
6桁分のセグメントパターンを現在のカラー設定に従って一括書き込み。各桁グループ(dg1〜dg4)で独立した色指定が可能。
アニメーション効果
- colorWipe: 単色で順次埋め尽くし
- rainbow: 虹色サイクル
- rainbowCycle: 全LEDに均等分布した虹色サイクル
- theaterChase: シアターチェイス(3つおきに点灯・移動)
- theaterChaseRainbow: 虹色シアターチェイス
3Dプリントパーツ・完全ガイド
筐体STLファイル、回路図、Arduinoスケッチ、Android APKの全てが以下で公開されています。
詳細・ダウンロード: https://goo.gl/mQVxdW
回路図

製作のポイント
- NeoPixelリング7個を7セグメント配置に配線する際、配線長を揃えて信号品質を確保
- DS3231のバックアップ電池(コイン電池)を忘れず装着
- HC-05は電源3.3V/5V両対応だが、Arduino Nanoは5Vロジックなのでレベルシフタ推奨(直接接続も動作実績あり)
- スピーカーはトランジスタドライブ推奨(直結でも小音量なら動作)
- 3Dプリントパーツはサポート材不要の設計。PLA/PETG推奨
製造プロセス
- Arduino UNOとMAX7219で作るUFOアタックゲーム – レトロなドットマトリクスシューティング
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- 水と光で作る疑似炎エフェクト──Arduino Uno+NeoPixel Stick
- 川の健康を見守る:Arduinoベース水質監視システム「MyRiver」
- Arduinoでアイアンマンを自作:部品・センサー・手順ガイド
- Arduinoとジョイスティックでインタラクティブゲーム – LEDフィードバック付き
- ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
- Arduino駆動3Dプリントロボットアームの製作:ステップバイステップガイド
- ポータブル距離検出器:Arduino Nano自作キット(HC-SR04、18650電源、3Dプリントケース付き)
- DIY Arduino加湿器コントローラー:リレーを用いた安全な高電圧制御
- Arduino駆動の住宅用エアフローメーター: 構築と監視