SC1602/HD44780キャラクター液晶とI2C変換モジュールの使い方

代表的なキャラクター液晶であるSC1602/HD44780と、パラレルバスをI2Cに変換するモジュールの使い方についてのメモ

変換モジュール
Amazonでは「1602LCDシリアルインターフェイスモジュール」等の名前で売られている。
PCF8574 (Remote 8-bit I/O expander for I2C-bus)が載っており、HD44780互換キャラクター液晶のパラレルバスをI2Cに変換する。

No.
1VSS
2VDD
3VO
4RS
5R/W
6E
7DB0
8DB1
9DB2
10DB3
11DB4
12DB5
13DB6
14DB7
15LED+
16LED-
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);
//I2Cのアドレスはボード上のA0、A1、A2の0/1によって0x20~0x27の8通りがある

void setup()
{
  lcd.init();// initialize the lcd 

  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hello, world!");
  lcd.setCursor(0, 1);
  lcd.print("Arduino!");
  delay(5000);
}

void loop()
{
  // LCDが持っているすべての文字パターン(20H-FFH)を表示する
  short c=0;                // 文字コード用の変数定義
  int   i=0;                // 表示カラム位置用の変数定義
  
  for (c=0x20;c<=0xff;++c)    // 有効な文字コード(20H-FFH)を順次表示するループ 
  {
     lcd.setCursor(i%16,1); // 表示位置を2行目のiカラムにセット
     lcd.write(c);          // 1文字表示
     delay(100);            // 100ミリ秒表示する
     ++i;                   // 表示カラム位置を更新 
  }
}

TOSHIBA TLC-2491-10N
モジュールのピンNo.1~14までのピンアサインが一致するため、端をそろえてブレッドボードに刺す(写真の向きでは左端)とすぐに使える。
Pin No. Pin Out Level Description
1 VSS 0V Power Supply Ground
2 VDD 5V Power Supply Voltage
3 VO — Power Supply Voltage For LCD
4 RS H/L Register Select
5 R/W H/L Read / Write
6 E H,H→L Enable Signal
7 DB0 H/L Data Bit 0
8 DB1 H/L Data Bit 1
9 DB2 H/L Data Bit 2
10 DB3 H/L Data Bit 3
11 DB4 H/L Data Bit 4
12 DB5 H/L Data Bit 5
13 DB6 H/L Data Bit 6
14 DB7 H/L Data Bit 7

SD1602HULB-XA-G-R(SD1602H1 REV.0)
モジュールのピンNo.1~14までのピンアサインが一致するが、バックライトのNo.15と16が変則的な位置にあるため、ジャンパ線を用いる必要がある。
Pin No. Pin Out Level Description
1 VSS 0V Power Supply Ground
2 VDD 5V Power Supply Voltage
3 VO — Power Supply Voltage For LCD
4 RS H/L Register Select
5 R/W H/L Read / Write
6 E H,H→L Enable Signal
7 DB0 H/L Data Bit 0
8 DB1 H/L Data Bit 1
9 DB2 H/L Data Bit 2
10 DB3 H/L Data Bit 3
11 DB4 H/L Data Bit 4
12 DB5 H/L Data Bit 5
13 DB6 H/L Data Bit 6
14 DB7 H/L Data Bit 7
15 A 3.2V LED Power Supply (+)
16 K 0V LED Power Supply (-)

DigiTron SC802A REV1.1
8×2のピンアサインのため、すべてジャンパ線で接続する必要がある。
No. Symbol Function
1 VSS Ground (0V)
2 VDD Supply Voltage for Logic (+5.0V )
3 VO Contrast Adjustment
4 RS Data/Instruction Select
5 R/W Read/Write Select
6 E Enable Signal
7 DB0 H/L Data Bit 0
8 DB1 H/L Data Bit 1
9 DB2 H/L Data Bit 2
10 DB3 H/L Data Bit 3
11 DB4 H/L Data Bit 4
12 DB5 H/L Data Bit 5
13 DB6 H/L Data Bit 6
14 DB7 H/L Data Bit 7
15 LED_A LED Power Supply + (5.0V)
16 LED_K LED Power Supply – (0V)

参考サイト:
Arduino Library List
https://www.arduinolibraries.info/libraries/liquid-crystal-i2-c
SC1602 LCDモジュール (HD44780コンパチブル) の使い方
http://219.117.208.26/~saka/ham/LCD2/
[I2C] 1602 LCD ディスプレイ (HD44780 + PCF8574A)
https://ht-deko.com/arduino/lcd_i2c.html
1602LCDをI2C変換アダプタを使ってArduinoで表示する。
https://qiita.com/clses/items/b4940804eb0a663fdc41
【Arduino】LCDにi2cでカタカナを表示させる方法
https://moyoi-memo.hatenablog.com/entry/2020/03/12/101409
ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(1)
https://www.denshi.club/make/2016/02/arduinolcd1.html
1602 キャラクタ LCDモジュール をI2C接続で ESP32 で動かす
https://qiita.com/nanbuwks/items/47a71e9baa77ee0941e4