今回はI2C通信を使ってキャラクタLCDへの文字表示に挑戦。
キャラクタLCDはこれ
配線(Qube 正面コネクタ)
LCD | QubeIO | QubeIO | LCD |
---|---|---|---|
SDA | IO 7 SDA | 3V3 | +V |
- | IO15 | IO21 | - |
- | IO20 | IO 8 | - |
GND | GND | IO 6 SCL | SCL |
そしてLCD「2.54mmピッチに変換する基板」裏面2か所のスイッチパターンをはんだブリッジをして有効にします。
まずはi2c バススキャン をしてみます。
応答があったアドレスがシリアルターミナルに表示されます。
LCDモジュールのアドレスは秋月の取説から0x7cです。
→2進表記だと:0111 1100
応答があったのは62(10進表記、16進表記だと0x3E)。
→2進表記だと:0011 1110
I2Cの7ビットアドレス指定だと最下位はR/W指定ビットなので
たぶん秋月の取説の0x7Cはアドレス7ビットとR/W指定を最下位に含んだ表記なのでしょう。
正常に応答があると判断しました。
I2C_SCAN_DIVICE.py
from machine import I2C
from fpioa_manager import *
i2c = I2C(I2C.I2C3,mode=I2C.MODE_MASTER, freq=100000, scl=6, sda=7)
#id: I2C ID, [0 to 2] (I2C.I2C0 to I2C.I2C2) [3 to 5] (I2C.I2C3 to I2C.I2C5, I2C_SOFT) is the number of soft analog I2C.
devices = i2c.scan()
print(devices)
i2c.deinit()