ArudinoでグラフィックLCDを動かす(SG12864ASLB-GB編)(5)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ

11.MGLCDライブラリの主な関数(テキスト表示編)

11-1.内蔵フォント

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

11-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マクロを使った文字列表示
広告

11-3.ClearScreen関数

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

MGLCD.ClearScreen();

11-4.Locate関数

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

Locate(x座標,y座標);

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

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

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

#include <mglcd.h>

static const TLcdPinAssignTable PinAssignTable={
  A0_DI  : A3, // A0 for SG12232, D/I for SG12864
  CS1_E1 : A0, // CS1
  CS2_E2 : A1, // CS2
  E      : A4,
  RW     : A2,
  DB0    : 8 ,
  DB1    : 9 ,
  DB2    : 10,
  DB3    : 11,
  DB4    : 4 ,
  DB5    : 5 ,
  DB6    : 6 ,
  DB7    : 7
}; // PinAssignTable;

static mglcd_SG12864 MGLCD(PinAssignTable);

void setup()
{
  // LCDの初期化
  while(MGLCD.Reset());

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

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

  // 'A'という文字を左方向に移動させる
  for(int i=20; i>0; i--) {
    MGLCD.Locate(i,0);
    MGLCD.print("A");
    delay(300);
    MGLCD.Locate(i,0);
    MGLCD.print(" ");        
  } // for i
}
写真16、Locate関数のデモスケッチ実行例(その1)
↑ 画像をクリックすると拡大
写真16、Locate関数のデモスケッチ実行例(その1)
写真17、Locate関数のデモスケッチ実行例(その2)
↑ 画像をクリックすると拡大
写真17、Locate関数のデモスケッチ実行例(その2)

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

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

目次へ  前のページへ (1) (2) (3) (4) (5) (6) (7) (8) 次のページへ

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

関連ページ

関連製品

Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。