Arduino Pro MiniとDS1302 RTCで作る高精度7セグメント時計
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| SparkFun Arduino Pro Mini 328 - 5V/16MHz | 1 | |
| DS1302 RTCモジュール | 1 | ICソケットと水晶を外して基板実装 |
| CR1220電池とホルダー | 1 | RTCバックアップ用 |
| コンデンサ 0.1μF 1206 SMD | 1 | |
| コンデンサ 10μF 1206 SMD セラミック | 1 | |
| タクトスイッチ(上面操作・12mm) | 4 | ボタンキャップ付き推奨 |
| 3A ミニDC-DCステップダウンコンバーター | 1 | 電源用 |
| 0.28インチ コモンカソード 4桁7セグメントLED | 36 | 6桁×6列=36個 |
| MAX7219 DIP IC | 18 | 1チップで2個の4桁表示を制御 |
| ブザー | 1 | アラーム音用 |
| マシンヘッダー(オス・メス) | 1セット | 40ピン×8ストリップずつ |
| DC電源ジャック(5.5×2.1mm) | 1 | パネルマウントタイプ |
必要な工具
- 半田ごて
- 3Dプリンター(ケース用)
使用ソフトウェア
- Arduino IDE
このプロジェクトについて
Hackaday.ioでFrugha氏が作った美しい7セグメントLEDアレイ時計を見て、自分も作りたくなりました。しかしオリジナルは0.56インチ表示器を使っており、かなり大型です。そこで0.28インチ表示器を採用し、サイズを約1/4にコンパクト化しました。
ソフトウェアは一から書き直し、アラーム機能と時刻・日付・アラーム設定用の設定画面を追加しました。
動画
(元記事に動画リンクあり)
設定画面

4つのボタンで操作します。一番上のSELECTボタンで設定画面に入り、現在選択中の項目が点滅します。SELECTを押すごとに「時刻」「日付」「アラーム」「曲調」「輝度」「日付形式」「時計」の順で切り替わります。
2番目のENTERボタンで選択項目の設定モードに入り、複数の設定がある場合はENTERで項目を切り替えます(点滅中の項目が対象)。点滅中に上下のUP/DOWNボタンで値を変更します。
日付表示画面

通常表示時にENTERを押すと、日付画面が5秒間表示されます。

設定画面の「日付形式」で「DD-MM(日-月)」か「MM-DD(月-日)」、およびフォント(標準/スクエア)を選べます。
設計上の工夫
基板設計を簡略化するため、オリジナルの1桁表示器ではなく4桁表示器を採用。0.28インチは小さいため、MAX7219チップを別基板(マザーボード)に配置し、マシンヘッダーで柱状モジュールと接続する構造にしました。
Eagle設計ファイルを同梱しています。業者発注も自作(トナー転写法など)も可能です。
柱状モジュール(カラムボード)

6枚の柱状モジュールを作ります。各モジュールには6個の4桁表示器(計24桁)を実装。マシンヘッダー(オス)を半田付けする際は、中央から外側に向かって作業し、マッチ棒などでソケットを浮かせてピンを半田付けすると楽です。細いコテ先と0.5mm半田を使用推奨。

完成後、表示器の枠をマットブラックで塗ると、隙間の白いエッジが目立たなくなります。またマジックで各モジュールに番号を振っておくと、マザーボードへの挿し間違いを防げます。
MAX7219マザーボード

PCBレイアウトをシンプルにするため、MAX7219のセグメント/ディジット配線を表示器のピン配列に合わせず、ソフトウェア側でマッピングを吸収しています。
メスソケットを半田付けする際は、先に柱状モジュールのオスピンにソケットを嵌めてから基板に半田付けすると、ピン位置が完璧に合います。外す際も番号通りに戻せばOKです。
MPUボード(マイコンボード)

マイコンボードにはArduino Pro Mini、RTC、電源回路、ボタン類を実装。4つのボタンと2つのSMDコンデンサは基板裏面に、その他は表面に実装します。低背化のため、Pro MiniのFTDIピンヘッダーは基板に直接半田付けし、DTRとVCCから2本の配線で基板パッドに降ろしています。
ケースの製作
前面・背面のSTLファイルを同梱。レイヤー高さ0.2mm、ブリムありでプリント。前面のみサポート材あり(ビルドプレート接触のみ)。

MAX7219マザーボード+柱モジュールを前面からスライド挿入。緩い場合はマスキングテープで調整。

MPUボードはホットボンドで背面ケースに固定。
ソフトウェア
MD_MAX72XXライブラリをArduino IDEのライブラリマネージャからインストールしてください。
動作確認用にHardware_Test_V1.inoを用意しました。全セグメント点灯で配線ミス・断線をチェックできます。問題なければClock_V4.inoを書き込んでください。
コードファイル
Clock_V4.ino- メインスケッチDigits.h- フォントデータ(大・小・スクエア数字、ASCII)Tunes.h- アラーム曲データButton.h / Button.cpp- ボタン制御ライブラリHardware_Test_V1.zip- ハードウェアテスト用スケッチ
回路図・基板データ



Eagle形式の基板データ:eagle_files_KPhUOj6Ezv.zip
製造プロセス
- Arduino POVクロック:残像効果で浮かび上がるLED時計を自作する
- DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
- Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- Arduino Nanoで作る8×8 LEDマトリックスのフリップクロック - 自作リアルタイムクロック
- Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
- eDOT:高精度Arduino時計・気象ステーション(IRリモコン・自動輝度調整内蔵)
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載
- Arduinoリアルタイム気象時計 - OLEDに時刻/日付/温度を表示
- Arduino UNO/MEGA対応 ニキシー管クロックシールド NCS314 – IN-14/IN-12互換
- DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計