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

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (9) (10) (11) (12) (13) (14) (15) (16) (17) 次のページへ
2016年05月24日 公開。

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

5-8-1.内蔵フォント

AQM1248Aはキャラクタフォントを持たないグラフィックLCDモジュールですので、本来は10ページで説明したとおり、文字列を表示するには、表示したい文字列のビットマップを転送する必要があります。

しかしMGLCDライブラリを使う場合には、ライブラリが8×6ピクセルのフォントを内蔵していますので、表示したい文字列を指定するだけで、ライブラリが文字列をビットマップ化した上で、AQM1248Aに送信します。

使える文字は、英数字や標準的な半角記号(!,",#,$,%,&,=,@,*,+,-,\など)と半角カタカナです。(文字コード表参照)

5-8-2.print関数およびprintln関数

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

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

Serial.print("Hello");

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

MGLCD.print("Hello");

とします。

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

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

5-8-3.ClearScreen関数

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

MGLCD.ClearScreen();

5-8-4.Locate関数

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

Locate(x座標,y座標);

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

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

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

注:リスト39のスケッチは、AQM1248AがハードウェアSPI接続されている事を前提に作られています。

リスト39、Locate関数のデモスケッチCOPY
// ヘッダファイルのインクルード
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>

// ピン割り当てとSPIクロック周波数の宣言
#define CS_PIN 10
#define DI_PIN  9
#define MAX_FREQ (1000*1000L)

// オブジェクト変数の宣言
MGLCD_AQM1248A_SPI MGLCD(MGLCD_SpiPin2(CS_PIN, DI_PIN), MAX_FREQ);

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
}
広告

リスト39のスケッチを実行した時の画面を写真34と写真35に示します。

写真34、Locate関数のデモスケッチの画面(1)
↑ 画像をクリックすると拡大
写真34、Locate関数のデモスケッチの画面(1)
写真35、Locate関数のデモスケッチの画面(2)
↑ 画像をクリックすると拡大
写真35、Locate関数のデモスケッチの画面(2)

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

次のページでは、グラフィック表示関数について説明します。

目次へ  前のページへ (9) (10) (11) (12) (13) (14) (15) (16) (17) 次のページへ

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

関連ページ

関連製品

122X32モノクログラフィックLCDシールド 商品名 122X32モノクログラフィックLCDシールド
税抜き小売価格 3333円
販売店 スイッチサイエンス
サポートページ
GLCD学習シールドキット 商品名 GLCD学習シールドキット
税抜き小売価格 1410円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。