LCDディスプレーを使う「表示可能文字を探る」
以前の記事「LCDディスプレーを使う」にてとりあえずサンプル文字「Hello, World! Arduino!」を表示させる方法を説明しましたが、今回はこのLCDで表示可能な文字を調べてみます。
使用するLCDディスプレーは前回と同じもので、
- ドットマトリクスサイズ:5x8ドット(文字は5×7ドット表示)
- 表示文字数:2行x16文字
- 表示可能文字:半角英数字・半角記号
- バックライト:白色(オンオフ可能)
表示可能文字一覧
LCD内部には各文字コードに対応したビットパターンが格納されてます、文字コードはASCIIコードなので256個(8bit)のパターンが対応可能です。
表示可能文字は個々のLCDの仕様で異なり、最大値が256個に対して実際に何個のパターンがLCD内部のICに格納されているかで決まります。
本LCDの搭載ICは[SPLC780D]という名称のチップでして以下の表のパターンが登録されます。
PDFファイルはこちら → SPLC780D_font
上記リスト中、
- 赤枠エリア ⇒ 外字登録エリア(デフォルトはブランク)
- ブランクエリア ⇒ ビットパターン未定義(ブランク)
全文字表示プログラム
256個のパターンを表示させるプログラムを作成してみました。表示エリアが16文字x2行の32文字だけなので順次スクロールしてます。
文字コードを0X00~0XFFまでスキャンしているだけの単純なプログラムです。
スケッチファイル名:LCD_I2C_PCF8574_All_Characters
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
LiquidCrystal_PCF8574 lcd(0x3f); // set the LCD address to 0x3f
void setup() {
Wire.begin();
Wire.beginTransmission(0x3f);
lcd.begin(16, 2); // initialize the lcd
}
void loop() {
lcd.setBacklight(255);
lcd.clear();
for (int j = 0; j < 7; j++) {
lcd.setCursor(0, 0);
int dispData1 = 0x20 + (0x20 * j);
for (int i = 0; i < 16; i++) {
lcd.write(dispData1);
dispData1 = dispData1 + 1;
delay(500);
}
lcd.setCursor(0, 1);
int dispData2 =0x30 + (0x20 * j);
for (int i = 0; i < 16; i++) {
lcd.write(dispData2);
dispData2 = dispData2 + 1;
delay(500);
}
delay(2000);
}
}
簡単な内容ですが今回の記事はここまでです。



![気圧センサー[BMP180]を使う~②LCDに表示~ 気圧センサー[BMP180]を使う~②LCDに表示~](https://umek.topaz.ne.jp/mameduino/wp-content/uploads/2018/12/DSCN3157_R-150x150.jpg)

