単球のLEDの表示もPWMを利用するなどいろいろ楽しめるものですが、少し慣れてくるとにぎやかな、あるいは表現力の高い表示装置が欲しくなってきます。そのような時に皆さんが強い興味を示す表示装置の一つが、ドットマトリックスLEDでしょう。
ここではOPT-DML-2Sを対象として、ArduinoでのドットマトリックスLEDの基本的な操作法を紹介します。REDUINO-VALKYRIEやREDUINO-GHOSTでは、このような魅力的な表示装置を面倒なワイヤワークを行うことなくワンタッチで利用できます。
OPT-DML-2Sは、8×8ドットのマトリックス(配列)を構成したLEDで、各ドットは赤と緑の2色LEDで構成されており、これらの2色の表示/非表示の組み合わせで、黒、赤、緑、橙の4色を表示できます。また、文字LCDの4ビットモードで利用する信号線で制御することができ、Arduinoで簡単かつ省ピン構成で制御することが出来ます。
REDUINOシリーズでは、redDML:ドットマトリックスLED表示ライブラリを利用することで、ドットマトリックスLEDを簡単に利用することができます。ドットマトリックスLED表示装置をすぐに活用したい方は、redDMLをダウンロードしてArduino IDEのライブラリに追加してご活用ください。
通常は、上記のredDMLライブラリを利用すれば良いのですが、内部的な処理を含めて知りたい方のために、以下に、ドットマトリックスLEDを利用するための基本的な操作ルーチン群を紹介します。
まず、ドットマトリックスLEDの操作ルーチンで使用する変数と定数を定義します。定義する主な変数は以下の様になります。
ドットマトリックスLEDの初期化ルーチンDML_initを示します。初期化ルーチンの処理内容は以下の通りです。
この初期化ルーチンの呼び出し方式では、ドットマトリックスLEDを操作するために割り当てたI/Oピンを自由に指定できるため、引数を変更するだけで、I/Oピンのどのような割当にも対応できます。
ドットマトリックスLEDへの出力ルーチンとして基本的な2種類を用意しました。
これらの出力ルーチンは、ドットマトリックスLEDの各点に対応するメモリ上のデータを操作するだけで、実際にドットマトリックスLEDを操作して点灯したり消灯したり操作は含んでいません。
メモリ上で操作された点ごとのデータをドットマトリックスLEDの表示に反映させる操作は、以下のDML_updateが担当しています。
DML_updateは、ダイナミック表示方式の中核的な操作を担っており、スケッチの中では、DML_updateを定期的かつ短い周期で呼び出し続ける必要があります。
ここまでで、ドットマトリックスLEDを操作する基本的なルーチン群は、出来上がりです。
それでは、ドットマトリックスLEDプログラムを利用したスケッチを記述してみましょう。
スケッチの初期化処理を記述するsetup()では、ドットマトリックスLED表示ルーチンを初期化するDML_initの呼び出しを行います。ここではVALKYRIEでの利用を想定して引数を記載しています。コメントでGHOSTでの引数も記載しておきます。
スケッチの繰り返し処理を記載するloop()には、ドットマトリックスLEDの表示更新を行うDML_updateの呼び出しを記載し、継続的かつできるだけ定期的に呼び出される様にします。