128×64モノクログラフィックLCDシールドサポートページ(6)

このページをスマートフォンなどでご覧になる場合は、画面を横長にする方が読みやすくなる事があります。
目次へ  前のページへ (1) (2) (3) (4) (5) (6) 次のページへ
128×64モノクログラフィックLCDシールド 商品名 128×64モノクログラフィックLCDシールド
税抜き小売価格 3600円
販売店 スイッチサイエンス
2016年07月29日 暫定公開。
2016年08月18日 正式公開。

6-8.MGLCDライブラリの主な関数(GH12864-20の固有機能編)

128×64モノクログラフィックLCDシールドに使用しているGH12864-20というグラフィックLCDモジュールのハードウェアに固有の機能に関する関数について説明します。MGLCDライブラリのほとんどの関数は、対応する全てのLCDモジュールで利用できますが、ここで紹介する関数は、GH12864-20を使用する時のみに使えます。

6-8-1.コントラスト調整機能に関する関数

6-8-1-1.SetLcdBiasRatio関数

SetLcdBiasRatio関数は、コントラストの粗調整を行うのに使います。SetLcdBiasRatio関数の構文は次の通りです。

SetLcdBiasRatio(調整値);

調整値は0~3の範囲の値を指定します。値が大きいほど表示が濃くなります。

注:白黒反転タイプの液晶モジュールを使っているので、濃い表示は白い表示を意味します。

Reset関数実行直後は、調整値は3になっています。

コントラストの調整は、後述のSetVbiasPotentiometer関数だけで十分可能なので、SetLcdBiasRatio関数は必ずしも使う必要がないでしょう。

6-8-1-2.SetVbiasPotentiometer関数

SetVbiasPotentiometer関数は、コントラストの微調整を行うのに使います。SetVbiasPotentiometer関数の構文は次の通りです。

SetVbiasPotentiometer(調整値);

調整値は0~255の範囲の値を指定します。値が大きいほど表示が濃く(白っぽく)なります。

Reset関数実行直後は、調整値は150になっています。

6-8-1-3.コントラスト調整のサンプルスケッチ

コントラスト調整のサンプルスケッチをリスト6に示します。このスケッチを実行すると、画面が5秒おきに、写真33~写真35の様に変わります。

リスト6、コントラスト調整のサンプルスケッチCOPY
// ヘッダファイルのインクルード
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>

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

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

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

  // 半角カナ表示の有効化
  if(strlen("ア")!=1) MGLCD.SetCodeMode(MGLCD_CODE_UTF8);

  // コントラストの粗調整
  MGLCD.SetLcdBiasRatio(3);
}

void loop() {
  // 薄めの表示
  MGLCD.SetVbiasPotentiometer(100); // コントラストの微調整
  MGLCD.ClearScreen();
  MGLCD.print("ウスメ");
  delay(5000);

  // 標準的な表示 
  MGLCD.SetVbiasPotentiometer(150); // コントラストの微調整
  MGLCD.ClearScreen();
  MGLCD.print("ヒョウジュン");
  delay(5000);

  // 濃いめの表示 
  MGLCD.SetVbiasPotentiometer(190); // コントラストの微調整
  MGLCD.ClearScreen();
  MGLCD.print("コイメ");
  delay(5000);
}
写真33、リスト6の実行結果(1)
↑ 画像をクリックすると拡大
写真33、リスト6の実行結果(1)
SetVbiasPotentiometer関数の設定値は100。
写真34、リスト6の実行結果(2)
↑ 画像をクリックすると拡大
写真34、リスト6の実行結果(2)
SetVbiasPotentiometer関数の設定値は150。
写真35、リスト6の実行結果(3)
↑ 画像をクリックすると拡大
写真35、リスト6の実行結果(3)
SetVbiasPotentiometer関数の設定値は190。

6-8-2. 画面の白黒反転に関する関数

6-8-2-1.InvertDisplay関数

GH12864-20は、黒地に白(正確には青地に白)の表示の、白黒反転タイプのLCDモジュールですが、ハードウェアの機能により、表示をさらに白黒反転させて、白地に黒(正確には白地に青)の表示にする事もできます。その反転機能の有効、無効を切り替える関数が、InvertDisplay関数です。

InvertDisplay関数の構文は次の通りです。

InvertDisplay(反転の有無);

反転の有無MGLCD_NON_INVERTを指定すると、白黒は反転せず、Line関数SetPixel関数などにおいて、色が0の場合は黒(青)、色が1の場合は白になります。

反転の有無MGLCD_INVERTを指定すると、白黒が反転し、Line関数SetPixel関数などにおいて、色が0の場合は白、色が1の場合は黒(青)になります。

画面の白黒反転に関するコマンドとしては、SetInvertMode関数もありますが、こちらは、GH12864-20のハードウェアの機能を使うのではなく、ソフトウェア的に白黒を反転します。

InvertDisplay関数SetInvertMode関数の動作の違いについては、InvertDisplay関数の解説をご覧ください。

6-8-2-2.InvertDisplay関数のサンプルスケッチ

リスト7のスケッチを実行すると、1秒周期で、繰り返し画面全体が白黒反転(フラッシュ)します。実行時の画面を写真36と写真37に示します。

リスト7、InvertDisplay関数のサンプルスケッチCOPY
// ヘッダファイルのインクルード
#include <MGLCD.h>
#include <MGLCD_SPI.h>
#include <SPI.h>

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

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

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

  // 半角カナ表示の有効化
  if(strlen("ア")!=1) MGLCD.SetCodeMode(MGLCD_CODE_UTF8);

  // メッセージの描画
  MGLCD.println("ガメン ゼンタイ ガ");
  MGLCD.println("1ビョウ シュウキ デ");
  MGLCD.println("シロクロ ハンテン シマス。");
}

void loop() {
  delay(500);
  MGLCD.InvertDisplay(MGLCD_INVERT); // 白黒反転する
  delay(500);
  MGLCD.InvertDisplay(MGLCD_NON_INVERT); // 白黒反転を解除
}
写真36、リスト7の実行結果(1)
↑ 画像をクリックすると拡大
写真36、リスト7の実行結果(1)
通常の表示の状態。
写真37、リスト7の実行結果(2)
↑ 画像をクリックすると拡大
写真37、リスト7の実行結果(2)
白黒反転表示の状態。反転するのは画素(ピクセル)がある部分のみで、画面の周辺部は反転しない。

7. 問い合せ先

128×64モノクログラフィックLCDシールドは、販売をスイッチサイエンスに委託しております。

もし、輸送上のトラブルが発生した場合は、委託販売業者にご連絡願います。

技術的な問題などが発生した場合は、こちらのフォームからメールをいただきますよう、お願いします。その際、製品名の欄に128×64モノクログラフィックLCDシールドと入力してください。

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

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

関連ページ

関連製品

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