しなぷすのハード製作記

Arduino用122X32モノクログラフィックLCDシールド(Rev.A)の製作(6)

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ

12.デモスケッチについて

MGLCDライブラリをインストールすると、ファイル→スケッチの例→MGLCDメニューから、いくつかのデモスケッチが選べるようになります。

図6、MGLCDライブラリのデモスケッチ
図6、MGLCDライブラリのデモスケッチ

デモスケッチの名称と内容を以下に簡単に説明しておきます。

表3、デモスケッチの名称と内容
名称 内容
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種類です。

13.デモスケッチの使い方

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側に切り替えると、デモが始まり、次の様な画面になります。

写真21、デモの冒頭の画面
写真21、デモの冒頭の画面

なお、ハードウェアシリアルではなく、ソフトウェアシリアルでグラフィック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シールドのハードウェアについて説明します。

ツイート
シェア
このエントリーをはてなブックマークに追加
フォロー
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ

このページで使われている用語の解説

関連ページ

このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
サイトマッププライバシーポリシーお問い合わせ用語集
しなぷすのハード製作記