2023年5月6日土曜日

MAX7219 8x8ドットマトリックスLEDモジュールで時計とカレンダー

何気なしに購入した4連の8x8ドットマトリックスLEDモジュールなのだが、これといって使い道が思い浮かばなかったので、例によって時計にしてしまう事にした。
発想が貧困なので、他に実用性のある物が思い浮かばない。
今回も使用するマイコンはEPS8266だ。 D1 miniシリーズは小さい割にはDIPサイズでIOポートが並んでいて、電源がUSBから取れるし、プログラムの書き換えも同じUSBの口からできるので、手軽すぎてなかなか手放せない。
I2C一発だけで制御できるような工作物なら、もっと小さい基板やモジュールでもいけると思うのだけれど、結局電源周りの回路なんかを用意する必要が出てくるので、大きさ的には大差無いかなと。
なんといってもD1 miniシリーズは200円前半で購入できてしまうので、最悪壊れても財布へのダメージが小さいのが良い。

さて、昔からそうなのだが、私は日付に執着心が無いのか、今日が何月何日何曜日なのかをよく忘れてしまう。
いや、普通のサラリーマンなので曜日は雰囲気で分かるのだが、長期休みに突入したら曜日の感覚もかなり怪しくなる。
そこで日付と曜日を表示するだけのカレンダー専用機と、時計+カレンダーのごく標準的な表示の物を作る事にした。
手元にあるドットマトリックスLEDが8x8 4連の物で赤LEDが1つ、緑LEDが2つあったので、前者をカレンダー専用、後者を時計+カレンダーにする。

前回作ったLCD1602やLCD2004と違って、表示するフォントは全て自作する必要がある。というか、自作しないと自分の欲しいデザインのフォントが表示できない。
LEDのドット数の制限があるとはいえ、デザインセンス皆無な私にはフォントデザインはそれなりにハードルが高い為、いつも通りインターネット上に公開されているフォントをパクったり加工したりして利用する事にする。
フォントエディターに関しては、MD_MAX72XX Font Editorという、そのままな名前の素晴らしいサイトが存在するので、そちらを使わせて頂いた。
フォントやプログラムの参考にさせて頂いたのは、こちらのページ。 あとは日付用の小さいフォントや曜日のフォントは自作した。曜日の表記は日本人らしく漢字。1文字で済む上に、一目で何曜日か理解できるのが良い。
マトリックスLEDのキャラクター表示やスクロールに関しては、MD_MAX72xx.hや、MD_Parola.hといった、素晴らしいライブラリが存在してるので、ありがたく使わせて頂く。

まず作成したのは「時計+カレンダー」。時計をメインとしたかったので、カレンダー部分のフォントは小さめに。

折角のマトリックスLEDなのに文字が流れないのも寂しいと思ったので、30秒に1回程度の割合で、日付をスクロールさせて西暦年を表示させるようにした。ソースやフォントデータ、LEDユニットを収めるケースの3Dデータについては此方

次に作成したのは「カレンダー」。

フォントに関しては、先に作った時計部分で使用したフォントを使って大きく表示するようにした。これも日付表示だけだと寂しい気がしたので、1分毎に数秒だけ現在時刻を表示するようにしてみた。
カレンダーのソース、フォントデータ、ケースの3Dデータは此方

8x8マトリックスLEDが思っていたよりも小さかったので、作りながら視認性はどうかと心配していたが、LEDの明るさもあって想像以上に視認性は高い。

今は見慣れたという事もあって、大きすぎず小さすぎず丁度よい大きさかなぁと思っている。

参考にしたホームページ
がとらぼ
MD_MAX72XX Font Editor

 

 

 

0 件のコメント:

コメントを投稿