こんにちは、「MAKO」と言います。
今回の記事は、Raspberry Pi Pico にLCDディスプレイ(LCD1602) を接続し、MicroPythonを用いて文字列を表示する記事を書いてみたいと思います。
今回使用するLCDディスプレイは、16桁2行表示のもので、接続インターフェイスはI2C、接続ピンはVCC、GND、SDA、SCLの4ピンとなっております。
私の手元にあるのは学習用のキットに入っていたもので、こちらになります。
LCD1602のインターフェイス自体はパラレル8ピンとなっているのですが、I2Cバスの2本の信号線を使用して、8つのI/Oポートを拡張するICであるPCF8574ATの搭載されたボードがLCD1602の8品に接続されているために4ピンでの制御が可能となっています。
それでは、Raspberry Pi PicoとLCD1602を接続した回路図のイメージは以下の通りです。
SDAはGPIO18(I2C1 SDA)、SCLはGPIO19(I2C 1SC)につなぎました。
まず実施すべきことは、LCD1602のI2Cアドレスを調べることです。
I2Cアドレスにコマンドを発行することでLCD1602の操作を行います。
それではMicroPythonを用いてプログラムを書いてみましょう。
from machine import Pin, I2C
# I2C ピンを定義(自身のセットアップに合わせて変更してください)
i2c_sda_pin = 18
i2c_scl_pin = 19
# I2C を初期化
i2c = I2C(1, sda=Pin(i2c_sda_pin), scl=Pin(i2c_scl_pin), freq=400000)
# 接続されている I2C デバイスのアドレスをスキャン
def scan_i2c_devices():
devices = i2c.scan()
return devices
# I2C デバイスのアドレスを表示
print("Scanning I2C devices...")
device_addresses = scan_i2c_devices()
for address in device_addresses:
print(f"Found device at address: 0x{address:02X}")
このプログラムをThonny上で実行してみた結果が以下です。
I2Cアドレスは 0x3F であることがわかりました。
【その2】へ続きます。