MCU(プログラムを動かすマイコン)リーフと組み合わせて、文字や数値をLCD(液晶ディスプレイ)に表示し、2個のスイッチから操作を入力できます。センサリーフを追加すれば、測定値を手元の画面で確認する用途にも使えます。
LCDユニットはI2CでMCUリーフと接続されます。2個のスイッチは、それぞれMCUのデジタル入力ピンとI2C ExpanderのP1ピンに接続されています。低消費電力化のため、I2C Expanderでロードスイッチを制御し、LCDへの給電をオフにすることもできます。
表示は1行8文字、2行です。Hello, World!(13文字)は1行には収まりません。初めて使う場合は、AP01B + AI04A + AZ01Cで文字を表示するから、組み立て・ライブラリ導入・書き込みを順に確認してください。
| Item | Description |
|---|---|
| Dimension | W30.8×D30.5×H5.3mm |
| Item | Description |
|---|---|
| Part number | AQM0802A-RN-GBW |
| Display format | 8x2 Character |
| Viewing area (WxH) | 27x10.5mm |
| Dot size (WxH) | 0.45x0.5mm |
| Dot pitch (WxH) | 0.5x0.55mm |
| Character size (WxH) | 2.45x4.35mm |
| Character pitch (WxH) | 2.95x4.9mm |
| Viewing direction | 6:00 O’Clock |
| Driving method | 1/16Duty,1/5Bias |
| Controller IC | ST7032I-0D(Sitronix) or compatible |
| Display mode | STN (Gray)/Positive/Reflective |
| Interfaces | I2C (Address: 0x3E) |
I2C I/O Expander
Section titled “I2C I/O Expander”| Item | Description |
|---|---|
| Part number | PCA9557RGVR |
| Interface | I2C (Address: 0x1A or 0x1E) |
ピン配置のデータは、こちらを参照してください。
LCDへの給電と初期化
Section titled “LCDへの給電と初期化”LCDを使うには、I2C I/O Expanderで給電を有効にしてからLCDを初期化します。lcd.begin()だけでは、リーフ側の電源スイッチは操作されません。
| 接続先 | 7ビットI2Cアドレス | 用途 |
|---|---|---|
| I2C I/O Expander(PCA9557) | 0x1A または 0x1E | LCDへの給電とスイッチ入力 |
| LCDコントローラ(ST7032) | 0x3E | 表示の設定と文字の送信 |
AVR用LCDサンプルは、エキスパンダのアドレスを0x1Aとして次の処理を行います。
Wire.begin()でI2Cを開始します。i2c_write_byte(0x1A, 0x03, 0xFE)でP0を出力に設定します。i2c_write_byte(0x1A, 0x01, 0x01)でLCDへの給電を有効にします。lcd.begin(8, 2)、lcd.setContrast(30)、lcd.clear()の順に呼び出し、文字を表示します。
i2c_write_byte()はサンプル内で定義した関数です。スケッチ全体はリンク先を使用してください。エキスパンダが0x1Eで応答する構成では、サンプルのI2C_EXPANDER_ADDRをそのアドレスに合わせます。
I2Cで応答するのに表示されないとき
Section titled “I2Cで応答するのに表示されないとき”I2Cスキャンでアドレスが見つかったことや、送信が成功したことだけでは、LCDの表示に必要な電源・初期化・コントラストが揃っているとは判断できません。まず、上記の給電処理と、指定ライブラリを使ったサンプルを確認してください。サンプルは途中でLCD電源を3秒間切るため、その間は表示が消えます。
ST7032をライブラリなしで直接制御する場合は、データシートの初期化手順に従い、電源安定後の待機、命令表の切り替え、コントラスト・電源・フォロワーの設定、命令間の待機時間を含めて実装してください。掲載ライブラリではbegin()内でフォロワーを有効にして200 ms待機し、その後のsetContrast()でコントラストとブースターを設定します(ライブラリの実装)。個々のコマンドだけを抜き出すと、必要な設定や待機を落とすことがあります。
スイッチについて
Section titled “スイッチについて”| Item | Description |
|---|---|
| Switch1 | Connected to pin 2 |
| Switch2 | Connected to I2C Expander P1 pin |
サンプルアプリ
Section titled “サンプルアプリ”AVR MCU Examples
Section titled “AVR MCU Examples”ESP32 MCU Examples
Section titled “ESP32 MCU Examples”掲載サンプルは、tomozh氏のarduino_ST7032(ST7032.h)を使用します。GitHubからZIPをダウンロードし、Arduino IDEのスケッチ → ライブラリをインクルード → ZIP形式のライブラリをインストールで導入してください。詳しい導入手順を参照してください。
LCD_ST7032やST7032_asukiaaaは別の実装です。名前だけで選ばず、掲載サンプルと同じライブラリを使用してください。
ドキュメント
Section titled “ドキュメント”- 2019年8月:初版





