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); } }
簡単な内容ですが今回の記事はここまでです。