MGLCDライブラリをインストールすると、ファイル→スケッチの例→MGLCDメニューから、いくつかのデモスケッチが選べるようになります。
デモスケッチの名称と内容を以下に簡単に説明しておきます。
名称 | 内容 |
---|---|
demo | MGLCDライブラリの機能全体のデモ。これを見れば、MGLCDライブラリでどんなことができるかが、大体理解できる。 |
HelloWorld | 画面に"Hello world!"のメッセージと、起動後の時間が表示されるだけの簡単なデモ。 |
SerialLcd | このデモは、LCDモジュールがArduinoと直接つながっている場合にのみ使用できる。グラフィックLCDシールドは、ArduinoとLCDモジュールの間にLCD制御用マイコンが入っているので、このデモは使用できない。 |
SetContrast | このデモは、コントラストをシリアル通信で設定できる機能があるシリアル化LCDにのみ使用できる。グラフィックLCDモジュールは、コントラストをシリアル通信では設定できないので、このデモは使用できない。 |
SpeedTest | 描画スピードを、LCDモジュール間で比較するためのデモスケッチ。 |
firmware | グラフィックLCDシールドのファームウェアであり、デモスケッチではない。ファームウェアの書き込み方は、後述。 |
グラフィックLCDシールドで使えるデモスケッチは、demo、HelloWorld、SpeedTestの3種類です。
MGLCDライブラリに付属するデモスケッチは、グラフィックLCDシールド専用に作られたものではなく、一部を書き換えることで、MGLCDライブラリがサポートする色々なLCDモジュールでデモが行えるように作られています。MGLCDライブラリVer 0.23の場合、デモスケッチはS12232ZAを直接Arduinoで駆動する場合に、ソースコードの修正なしで動作するようになっています。グラフィックLCDライブラリでデモスケッチを使う場合は、若干の修正が必要です。以下に、修正の方法を説明します。
Ver 0.23の場合、demo.inoの先頭部分は以下の様になっています。
/* demo This is a demo sketch for MGLCD library. */ #include <mglcd.h> #include <SoftwareSerial.h> #include <avr/pgmspace.h> #include "kyoto.h" // Define device number #define DEV_SG12232 1 #define DEV_SG12864 2 #define DEV_S12232ZA 3 #define DEV_SERIAL 1001 #define DEV_SOFWARE_SERIAL 1002 // Select device //#define MGLCD_DEVICE DEV_SG12232 //#define MGLCD_DEVICE DEV_SG12864 #define MGLCD_DEVICE DEV_S12232ZA //#define MGLCD_DEVICE DEV_SERIAL //#define MGLCD_DEVICE DEV_SOFTWARE_SERIAL // Options #define CHARGE_PUMP_OSC_PIN 3
ここで、以下のマクロ定義は、S12232ZAというLCDモジュールをArduinoに直接つなぐことを表わしています。
#define MGLCD_DEVICE DEV_S12232ZA
よって、この行はダブルスラッシュで次の様にコメントにして、無効化してください。
//#define MGLCD_DEVICE DEV_S12232ZA
ハードウェアシリアルを使う場合はダブルスラッシュを取って、以下のマクロ定義を有効にしてください。
#define MGLCD_DEVICE DEV_SERIAL
また、以下のマクロ定義は、Arduinoの3番ピンから、LCDの負電源作成用のチャージポンプ回路のクロックを出力することを表わしています。グラフィックLCDシールドを使う場合は、Arduino側にチャージポンプ回路は必要ありませんので、次の用に、ダブルスラッシュでコメントにしてください。
//#define CHARGE_PUMP_OSC_PIN 3
以上の変更で、スケッチがグラフィックLCDシールド用に書き換えられました。念のために、書き換え後のdemo.inoの先頭部分を次に示します。
/* demo This is a demo sketch for MGLCD library. */ #include <mglcd.h> #include <SoftwareSerial.h> #include <avr/pgmspace.h> #include "kyoto.h" // Define device number #define DEV_SG12232 1 #define DEV_SG12864 2 #define DEV_S12232ZA 3 #define DEV_SERIAL 1001 #define DEV_SOFWARE_SERIAL 1002 // Select device //#define MGLCD_DEVICE DEV_SG12232 //#define MGLCD_DEVICE DEV_SG12864 //#define MGLCD_DEVICE DEV_S12232ZA #define MGLCD_DEVICE DEV_SERIAL //#define MGLCD_DEVICE DEV_SOFTWARE_SERIAL // Options //#define CHARGE_PUMP_OSC_PIN 3
この様にスケッチの先頭部分を書き換えた後、グラフィックLCDシールド上のSW5をEXT側に切り替えて、スケッチを書き込んでください。書き込みが終わったら、SW5をINT側に切り替えると、デモが始まり、次の様な画面になります。
なお、ハードウェアシリアルではなく、ソフトウェアシリアルでグラフィックLCDシールドを使いたい場合は、
#define MGLCD_DEVICE DEV_SERIAL
の行を有効化する代わりに、
#define MGLCD_DEVICE DEV_SOFTWARE_SERIAL
の行を有効化してください。これで、RXが10番ピン、TXが11番ピンのソフトウェアシリアルで動作するようになります。ソフトウェアシリアルの場合は、ジャンパ線でRXとTXの配線をして、SW5をEXT側に切り替えた後にお使いください。詳しい説明はこの連載2回目のソフトウェアシリアルを利用する場合のMGLCDライブラリの使い方の項目を読んでください。
なお、RXピンとTXピンの割り当てを他のピンにしたい場合は、
static SoftwareSerial mySerial(10,11);
という行が下の方にありますので、括弧の中の数字(10と11)を、お好きなピンの番号に書き換えてください。
次のページでは、グラフィックLCDシールドのハードウェアについて説明します。