時計なので本来なら電池駆動にしたかった。
でもArduinoUNOがベースではそれも叶わず、USB(5V)ドライブがせいぜい。ただ最近はUSB充電アダプタはどこにでもあるし、我が家でも結構溢れているので、それなりに便利に使っている。
回路は簡単なので、回路図は省略した。(作る時も書いてない(^_^;)
スケッチのsetupやコメントに書いてあるので、そこから推測して欲しい。
この頃は「シールド」と言う考え方が気に入って、シールドばかり作っていた。
RTCとしてDS1302モジュールを搭載したシールド。ただ、RTCを載せただけではスペースが無駄なので、ついでに温湿度センサも載せてみた。
Arduinoのデジタル第2コネクタの半ピッチずれたところに合わせるため、苦肉の策である、コネクタ継ぎ接ぎ基板が見える。
MsTimer2のタイマー割り込みを使って、5秒に1回割り込みを掛けている。ここで、RTCの読み込みとLCDへの表示を行っている。
メインのループでは温湿度の読み込みと、キーボードのスキャンを行っている。
(本当なら、書き換える表示部分だけを消すようにすると良いのだが、これが結構大変な事になるで、表示の前に全画面消去を行っている。それがまた遅いので、5秒に一度全部が真っ暗になる。あまりエレガントなシステムではない。そのうちにこの辺りにも手に入れてみたいとは思っている。)
設定キーが押されて、設定モードになると割り込みを停止して、時刻の表示を止め、設定画面を表示するようになっている。
具体的にはスケッチを参照して欲しい。
この時計の表示には掲題のライブラリを多用しています。Adafruit社はマイコン関連の商品を沢山開発していて、いつもお世話になっています。
残念ながら日本語のサイトはありませんが、分かり易い英語なので、丹念に読むと役立つ情報が沢山あります。
今回使用したFONTに関するサイトは、https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts