商品名 | 128×64モノクログラフィックLCDシールド | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス |
2016年07月29日 | 暫定公開。 |
2016年08月18日 | 正式公開。 |
128×64モノクログラフィックLCDシールドに使用しているGH12864-20というグラフィックLCDモジュールのハードウェアに固有の機能に関する関数について説明します。MGLCDライブラリのほとんどの関数は、対応する全てのLCDモジュールで利用できますが、ここで紹介する関数は、GH12864-20を使用する時のみに使えます。
SetLcdBiasRatio関数は、コントラストの粗調整を行うのに使います。SetLcdBiasRatio関数の構文は次の通りです。
調整値は0~3の範囲の値を指定します。値が大きいほど表示が濃くなります。
注:白黒反転タイプの液晶モジュールを使っているので、濃い表示は白い表示を意味します。
Reset関数実行直後は、調整値は3になっています。
コントラストの調整は、後述のSetVbiasPotentiometer関数だけで十分可能なので、SetLcdBiasRatio関数は必ずしも使う必要がないでしょう。
SetVbiasPotentiometer関数は、コントラストの微調整を行うのに使います。SetVbiasPotentiometer関数の構文は次の通りです。
調整値は0~255の範囲の値を指定します。値が大きいほど表示が濃く(白っぽく)なります。
Reset関数実行直後は、調整値は150になっています。
コントラスト調整のサンプルスケッチをリスト6に示します。このスケッチを実行すると、画面が5秒おきに、写真33~写真35の様に変わります。
// ヘッダファイルのインクルード
#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);
}
GH12864-20は、黒地に白(正確には青地に白)の表示の、白黒反転タイプのLCDモジュールですが、ハードウェアの機能により、表示をさらに白黒反転させて、白地に黒(正確には白地に青)の表示にする事もできます。その反転機能の有効、無効を切り替える関数が、InvertDisplay関数です。
InvertDisplay関数の構文は次の通りです。
反転の有無にMGLCD_NON_INVERTを指定すると、白黒は反転せず、Line関数やSetPixel関数などにおいて、色が0の場合は黒(青)、色が1の場合は白になります。
反転の有無にMGLCD_INVERTを指定すると、白黒が反転し、Line関数やSetPixel関数などにおいて、色が0の場合は白、色が1の場合は黒(青)になります。
画面の白黒反転に関するコマンドとしては、SetInvertMode関数もありますが、こちらは、GH12864-20のハードウェアの機能を使うのではなく、ソフトウェア的に白黒を反転します。
InvertDisplay関数とSetInvertMode関数の動作の違いについては、InvertDisplay関数の解説をご覧ください。
リスト7のスケッチを実行すると、1秒周期で、繰り返し画面全体が白黒反転(フラッシュ)します。実行時の画面を写真36と写真37に示します。
// ヘッダファイルのインクルード
#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); // 白黒反転を解除
}
128×64モノクログラフィックLCDシールドは、販売をスイッチサイエンスに委託しております。
もし、輸送上のトラブルが発生した場合は、委託販売業者にご連絡願います。
技術的な問題などが発生した場合は、こちらのフォームからメールをいただきますよう、お願いします。その際、製品名の欄に128×64モノクログラフィックLCDシールドと入力してください。
商品名 | 122X32モノクログラフィックLCDシールド | |
税抜き小売価格 | 3333円 | |
販売店 | スイッチサイエンス | |
サポートページ | 122X32モノクログラフィックLCDシールドサポートページ |
商品名 | GLCD学習シールドキット | |
税抜き小売価格 | 1410円 | |
販売店 | スイッチサイエンス | |
サポートページ | GLCD学習シールドキットサポートページ |