ハードウェア
「マトリックスLEDで遊ぶ」のハードに、スクロールクロックを載せてみた。そのまま実用にするには無理があるかと思っていたが、結構いける。3日に一度位、タクトスイッチを押して時刻を合わせれば大丈夫。
電源はパソコンのUSBから供給しているが、パソコンをシャットダウンしてもUSBの電源は活きているので動き続ける。普段の時刻合わせ(少し進んだ分を戻す操作)は正確な時計(携帯の時計など)を見ながら、毎正時の2秒前にタクトスイッチを1回押すだけ。
- マトリックスLEDは8x8なので、数字1桁を3x5ドットで表示。桁間のスペースを入れると同時には最大で2桁しか表示できない。
- クロックが内蔵発振なのでそれほど高い精度の時計にするのは無理。
- 入力がタクトスイッチ1個しかないので、時刻合わせの操作に一工夫。
![]()
![]()
ソフトウェア
時刻の精度は、論理的には1日(24時間)で約50秒の誤差(時間が進む)がでるプログラムになった(ソース参照)。しかし、実際に動かしてみたら20秒程度で内蔵クロックが4MHzより若干遅い模様。
内蔵クロックは誤差±1%の仕様だが、実際には結構精度が高いことが判った。キャリブレーションを行えば、日差数秒にはできそう。しかし、本格的な時計にするには水晶発振子や高精度な発振モジュールを使った方がよい。
タクトスイッチ1個での時刻合わせは、以下の操作で実現した。時刻設定時は、時と分をそれぞれ表示するのでスクロールはしない。
- タクトスイッチを1回押すと時刻設定モード(左下隅のLEDが点灯)
- 押す/離すを続けると「時」が1時間単位でインクリメント
- 約1秒間、操作をしない(スイッチを離している)と「分」設定モードに移行(右下隅のLEDが点灯)
- 押す/離すを続けると「分」が5分単位でインクリメント
- 約1秒間、操作をしない(スイッチを離している)と、時刻設定モードから抜けスクロール開始
プログラムのソースです。無保証です。
動作の様子
以上