第四章 低電圧I2C液晶ディスプレイ


LCD表示


サンプルプログラムを表示しているところ。
カタカナ表示もできます。
購入したI2CのLCDには小さいピンヘッダが付属していますが、ブレッドボードに刺さりにくいので丸ピンIC連結ソケットを替りに用います。
画像は下です。
丸ピンIC連結ソケット
良く見ると、細い方と太い方があるのが分かります。
細い方をLCDの穴に入れて半田付けします。
半田付けした裏側
半田付けした表側。
一番左が一番ピンでリセットです。
この端子は普通Vddに繋ぐので、5番ピンに赤のコードで繋いであります。
H8のCPUボードと繋げます。
CN10-26(GND)------>GND
CN10-25(3.3V)----->Vdd
CN10-14(SDA)------>SDA(橙)
CN10-13(SCL)------>SCL(白)
SDAとSCLは2.2kΩでVddにプルアップします。

MzLib.libとヘッダファイル類をプロジェクト・フォルダに入れて下記のソースでコンパイルします。

LCD表示
#include "common.h"
#include "primary.h"
#include "interruptClass.h"

BYTE getSW();        //スイッチ読み込み
void startInit(char* str);

void main()
{
  startInit("\n*** LCD表示テスト ***\n");
  I2CLCD display;
  display.write("LCD グラフィックテスト");
  while(true);
}

void startInit(char* str)
{
  init();
  LED(1);  // 緑
  while(!getSW() );
  LED(0);
  printf(str);
}
 1 基本共通ヘッダ
 2 IO関係ヘッダ
 3 割り込みクラスのヘッダ
 4 I2Cは割り込みを用いている
 5 
 6 
 7 
 8 
 9 
10 
11 I2CLCDオブジェクトを作る。
12 半角カナが表示できる。
13 
14 
15 
16 
17 
18 システムの初期化
19 緑のLEDを点ける
20 プッシュスイッチが押されるまで待つ
21 LEDを消灯
22 パソコン側に表示させる
23 


実行結果



上級
  void write(unsigned char ch);         // 1文字表示
  void write(char* ch);                 // 文字列表示
  void writeInt(int x);                 // 整数の表示
  void write(int x, int column, char zeroPad); // 書式指定して整数の表示
  void home();                          // カーソルを先頭に持っていく
  void clear();                         // 画面クリア

表示できるフォント一覧
一番左の16個は下記の8個のグラフィックフォントになります。なお、前半の8個と後半の8個は同一です。

グラフィック表示



レベルメーターがデフォールトで使えます。
main以外は前のプログラムと同じです。

レベルメーターグラフィック表示
void main()
{
  startInit("\n*** LCDグラフィックテスト ***\n");
  I2CLCD display;
  display.setCG(0, (char*)0);
  display.clear();
  for(int i=0; i<8; i++) display.write((char)i);
  for(int i=7; i>=0; i--) display.write((char)i);
  while(true);
}
 1 
 2 
 3 
 4 I2CLCDオブジェクトを作る。
 5 グラフィックモードにする。
 6 画面クリア
 7 だんだん大きくする
 8 だんだん小さくする
 9 
10
インベーダーのキャラクターを動かしてみる。

ミニI2C液晶モジュール(8x2行)を使う

ちょっとした数字などならばミニI2C液晶モジュールで十分かもしれません。これにも対応しました。

写真右上の左から3番目と4番目、5番目と6番目の間に小さく茶色いのがあります。これが1μFのチップコンデンサです。さらに写真右下は裏からみた写真ですが、左から2番目のところにも1μFのチップコンデンサがついており、5番ピンに繋がっています。

ピン配置と半田付け


テストプログラム

ミニI2C液晶モジュール
void main()
{
  startInit("\n*** LCDmini表示テスト ***\n");
  I2CLCD display(16);
  display.write("LCD miniM.Mizuno");
  while(true);
}
 1 
 2 
 3 
 4 コンストラクタの引数に全表示文字数を入れる。
 5 この場合は8x2行で16を引数に入れている。
 6 デフォールトは32である。
 7 


実行結果



第五章に行く    ホームに戻る