![]()
昔作った青色LEDデジタル時計、ずっと使い続けてきましたが、時刻合わせが面倒なのとLEDの輝度が低下してきたので、ESP32をアドオンしてNTP時計にするのと、LEDを交換するバージョンアップをしました。
最初から作るならESP32だけで作ったほうが楽で安価だと思います。
ショート動画(15秒)
電源を入れると自動的に時刻合わせする様子。
![]()
ESP32回路図(拡大図)
ESP32は3.3V、PIC側は5VなのでFETで組んだレベル変換回路を入れています。秋月のレベル変換モジュールを参照。
![]()
PICデジタル時計回路図(拡大図)
昔の青色LED時計の回路図からの変更箇所を赤くしてあります。
空きピンがなかったので、停電監視機能に使っていたピンを使いました。停電してもNTPで時刻合わせができるので不要と判断。
プログラム
無保証です。著作権は留保しますが、改変などご自由にどうぞ。
- ESP32側スケッチ(ソースプログラム)
- 10行目、11行目でWiFiのアクセスポイント情報を指定します
- 110行目からの静的アドレスとDNS指定は通常は不要だと思われる。我が家のWiFiルータは指定しないとダメだった。
- PIC側デジタル時計アセンブラソース、HEXファイル
時刻データをESP32からPICに送るシリアル転送は 1ms/bit の超低速です。ESP32側はdelay関数で1ms毎に1bit送出します。PIC側は320us毎のタイマ割り込み3回で約1ms毎のタイミングを取って受信します。
ESP32基板
ESP32を載せたモジュールのテスト中。3端子レギュレータ、レベル変換回路は裏面に載ってます。
ESP32基板とPIC基板
ESP32モジュールの取り付け位置をミスっています。ここにはLEDと基板を繋ぐコネクタがくるのでダメでした。
![]()
青色LED打ち替え
長年使い続けていたら青色LEDの輝度が低下して、かつムラがでてきていたので新しいLEDに交換しました。
アマゾンで600円/100個と安いですが明るいです。アマゾンの評価で点灯しなかったり、輝度にムラがあるようなことが書かれていたので、全数点灯させてチェックしました。問題なかったです。
![]()
全景
青色LEDデジタル時計と繋いだ様子の全景。
![]()
ESP32プログラム中
取り付け位置を変更後、ESP32にプログラムを書き込んでいる様子。
![]()
完成
電源を入れた直後は00:00表示ですが、しばらくするとESP32がNTPサーバから時刻を取ってきてPICに送り込み、時刻が合います。
毎日00:00にNTPサーバにアクセスして時刻合わせします。
詳細は以下のブログ記事参照。
- 昔のデジタル時計をNTP時計にする(その4;完成) (2022年5月22日)
- 昔のデジタル時計をNTP時計にする(その3;ESP32モジュール基板作成) (2022年5月21日)
- 昔のデジタル時計をNTP時計にする(その2;LED打ち替え) (2022年5月18日)
- 昔のデジタル時計をNTP時計にする(その1) (2022年5月15日)
打ち替えた青色LEDは以下です(昔に比べて安く、かつ高輝度になりました)。
以上