profile-photo

Tカラー液晶クロック

2.4'のTFTカラーLCDが手に入ったので、時計を作ってみた。


時計なので本来なら電池駆動にしたかった。
でもArduinoUNOがベースではそれも叶わず、USB(5V)ドライブがせいぜい。ただ最近はUSB充電アダプタはどこにでもあるし、我が家でも結構溢れているので、それなりに便利に使っている。
回路は簡単なので、回路図は省略した。(作る時も書いてない(^_^;)
スケッチのsetupやコメントに書いてあるので、そこから推測して欲しい。

 

001

2.4'のTFT液晶が表示器。
時計ならば、せめて時刻設定位の機能はなくてはならないと、思ってキーボードを付けた。

002

この頃は「シールド」と言う考え方が気に入って、シールドばかり作っていた。
RTCとしてDS1302モジュールを搭載したシールド。ただ、RTCを載せただけではスペースが無駄なので、ついでに温湿度センサも載せてみた。
Arduinoのデジタル第2コネクタの半ピッチずれたところに合わせるため、苦肉の策である、コネクタ継ぎ接ぎ基板が見える。

003

シールドの背面。
イラックス線のワイヤリングばかり!

004

完成した本機。
大きめの文字で表示すると、標準のフォントではカクカクして見栄えが悪い。
そのため、フリーのフォント(FreeSerifBold12pt7b)を導入したため、これだけでUNO(ATMEGA328)のプログラム領域を70%以上使ってしまった。
TFT表示関係はAdafruitsのライブラリのお世話になった。

タイマー割り込み

MsTimer2のタイマー割り込みを使って、5秒に1回割り込みを掛けている。ここで、RTCの読み込みとLCDへの表示を行っている。
メインのループでは温湿度の読み込みと、キーボードのスキャンを行っている。
(本当なら、書き換える表示部分だけを消すようにすると良いのだが、これが結構大変な事になるで、表示の前に全画面消去を行っている。それがまた遅いので、5秒に一度全部が真っ暗になる。あまりエレガントなシステムではない。そのうちにこの辺りにも手に入れてみたいとは思っている。)
設定キーが押されて、設定モードになると割り込みを停止して、時刻の表示を止め、設定画面を表示するようになっている。
具体的にはスケッチを参照して欲しい。

Adafruit GFX Graphic

この時計の表示には掲題のライブラリを多用しています。Adafruit社はマイコン関連の商品を沢山開発していて、いつもお世話になっています。
残念ながら日本語のサイトはありませんが、分かり易い英語なので、丹念に読むと役立つ情報が沢山あります。
今回使用したFONTに関するサイトは、https://learn.adafruit.com/adafruit-gfx-graphics-library/using-fonts


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。