しなぷすのハード製作記

ArduinoでグラフィックLCDを動かす(S12232ZA編)(3)

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

6.MGLCDライブラリの使い方(テキスト表示編)

6-1.内蔵フォント

S12232ZAは、キャラクタフォントを持たないグラフィックLCDモジュールですが、MGLCDライブラリがキャラクタフォントを持っているので、キャラクタLCDモジュールと同じ感覚で使えます。使える文字は、英数字や標準的な半角記号(!,",#,$,%,&,=,@,*,+,-,\など)と半角カタカナです。(文字コード表を参照)

6-2.print関数およびprintln関数

MGLCDライブラリで画面に文字を表示する場合は、print関数およびprintln関数を使います。使い方は、Serial変数を使ってシリアルポートに文字を送信するのと同じです。

例えば、シリアルポートに"Hello"と送信するには、次のようにします。

Serial.print("Hello");

LCDの画面に"Hello"と表示するには、SerialをMGLCDに変えて、

MGLCD.print("Hello");

とすればOKです。

シリアル出力に使える構文は全て使えるので、次の様なことができます。

MGLCD.println("Hello"); // 改行つきの文字列表示
MGLCD.print(123); // 整数の表示
MGLCD.print(123,HEX); // 16進数表示(7B)
MGLCD.print(1.23456,2); // 小数点2桁の表示(1.23)
MGLCD.print(F("ABC")); // Fマクロを使った文字列表示 

6-3.ClearScreen関数

画面を消去するには、ClearScreen関数を使って次のようにします。

MGLCD.ClearScreen();

6-4.Locate関数

文字の表示位置を制御するにはLocate関数を使います。Locate関数の構文は次の通りです。

Locate(x座標,y座標);

S12232ZAは横122ピクセル、縦32ピクセルのグラフィックLCDモジュールですが、8X6ドットフォントを用いると、横方向に20文字、縦方向に4行表示できます。Locate関数では、左上の文字位置を原点(0,0)とし、右下の文字位置を(19,3)として座標を扱います。

Locate関数にprint関数やprintln関数が続いて呼び出された場合、直前のLocate関数で指定された座標に文字列を表示します。

この機能を使えば、例えば次の様なデモスケッチができます。スケッチを走らせると、"DEMO START"と2秒表示した後、'A'と言う文字が左右に往復運動します。

#include <mglcd.h>

TLcdPinAssignTable PinAssignTable={
    A0_DI  : A3, // A0
    CS1_E1 : A0, // E1
    CS2_E2 : A1, // E2
    E      : MGLCD_UNUSED_PIN,
    RW     : A2,
    DB0    : 8 ,
    DB1    : 9 ,
    DB2    : 10,
    DB3    : 11,
    DB4    : 4 ,
    DB5    : 5 ,
    DB6    : 6,
    DB7    : 7
}; // PinAssignTable;

mglcd_S12232ZA MGLCD(PinAssignTable);

void setup()
{
  MGLCD.Reset();

  // 負電圧を発生するチャージポンプ回路を有効にする
  pinMode(3,OUTPUT); 
  analogWrite(3,127);

  // スタートメッセージ
  MGLCD.print("DEMO START");
  delay(2000);
  MGLCD.ClearScreen();
}

void loop ()
{
  // 'A'という文字を右方向に移動させる
  for(int i=0; i<19; i++) {
    MGLCD.Locate(i,0);
    MGLCD.print("A");
    delay(300);
    MGLCD.Locate(i,0);
    MGLCD.print(" ");        
  } // for i

  // 'A'という文字を左方向に移動させる
  for(int i=19; i>0; i--) {
    MGLCD.Locate(i,0);
    MGLCD.print("A");
    delay(300);
    MGLCD.Locate(i,0);
    MGLCD.print(" ");        
  } // for i
}

他にも色々と、テキスト表示のための関数があるのですが、それらは後にリファレンスマニュアルとしてまとめます。

次のページでは、グラフィック表示の説明をします。

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

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

関連ページ

関連製品

S12232ZA 商品名 S12232ZA
税抜き小売価格 400円
販売店 スイッチサイエンス
サポートページ
GLCD学習シールドキット 商品名 GLCD学習シールドキット
税抜き小売価格 1410円
販売店 スイッチサイエンス 妙楽堂 三月兎
サポートページ
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。
サイトマッププライバシーポリシーお問い合わせ用語集
しなぷすのハード製作記