LCD画面は便利で、私たちの生活のあらゆる場面で見受けられます。駅、パーキングメーター、自動販売機などでは、接続された機器の操作方法を示す短いメッセージが表示されています。LCD画面は、Raspberry Pi Picoプロジェクトやその他のRaspberry Piプロジェクトで情報を伝達する楽しい方法です。16×2の画面にテキスト、数字、文字を表示できる明るく大きな画面を備えています。16は画面に16個の文字が表示され、2は行数を表しています。LCD画面には20×2、20×4など、様々な構成がありますが、最も一般的なのは16×2です。
このチュートリアルでは、付属の I2C バックパックを使用して、LCD スクリーン (HD44780) を I2C インターフェイス経由で Raspberry Pi Pico に接続する方法を学習します。次に、Thonny エディターを使用して MicroPython ライブラリをインストールし、それを使用してディスプレイにテキストを書き込み、カーソルとバックライトを制御する方法を学習します。
LCDスクリーンはI2Cプロトコルを使用してRaspberry Pi Picoとインターフェースします。つまり、必要なのはこれだけです。
- MicroPython を実行するRaspberry Pi Pico。Raspberry Pi Pico の設定方法をご覧ください。
- メス-オスジャンパーワイヤー4本
- I2C HD44780 LCDスクリーン
I2C LCDスクリーンをRaspberry Pi Picoに接続する方法

1.画面のGND を Pico の任意の GND (黒線) に接続します。
2. VDD / VCCをPicoのVBUS(赤線)に接続します。注意:これは5Vピンです。
3. SDA を I2C0 SDA (GP0、物理ピン 1、オレンジ色のワイヤ) に接続します。
4. SCK / SCLをI2C0 SCL(GP1、物理ピン2、黄色のワイヤ)に接続します。
Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。
5. Raspberry Pi Pico をコンピューターに接続し、Thonny アプリケーションを開きます。
画像
1
の
3

6. 「STOP」をクリックして、 Pico が接続されていることを確認します。
7.このリンク を開き、ページからテキストをコピーします。
8. Thonnyで空のファイルを作成し、そこにテキストを貼り付けます。ファイルをRaspberry Pi Picoにlcd_api.pyとして保存します。
9.このリンク を開き、ページからテキストをコピーします。
10. Thonnyで空のファイルを作成し、そこにテキストを貼り付けます。ファイルをpico_i2c_lcd.pyとしてRaspberry Pi Picoに保存します。
Raspberry Pi Pico で I2C LCD スクリーンをプログラミングする
ライブラリがインストールされたら、ライブラリの機能をデモンストレーションするテスト スクリプトの作成を開始できます。
1. Thonny で新しい空のファイルを作成します。
2.事前に記述されたコードのライブラリを4つインポートします。最初の2つはMachineライブラリのもので、I2CとGPIOピンを使用できるようにします。次に、Timeライブラリのsleep関数をインポートして、コードを一時停止できるようにします。最後に、LCD画面を操作するためのI2Cライブラリをインポートします。
from machine import I2C, Pin
from time import sleep
from pico_i2c_lcd import I2cLcd3. I2Cプロトコルを介してLCD画面と通信するための オブジェクトi2cを作成します。ここではI2Cチャネル0を使用し、SDAをGP0に、SCLをGP1にマッピングします。
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)4.変数I2C_ADDRを作成します。 この変数には、バスをスキャンしたときに最初に見つかったI2Cアドレスが格納されます。接続されているI2Cデバイスは1つだけなので、スキャンで返される最初の[0]アドレスのみを確認する必要があります。
I2C_ADDR = i2c.scan()[0]5. ライブラリのI2C接続を設定するためのオブジェクトlcdを作成します。このオブジェクトは、 i2c オブジェクトで設定するI2Cピン、 I2C_ADDRで設定する画面アドレス、そして最後に2行16列の画面であることを指定します。
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)6. コードを継続的に実行するためのループを作成します。ループの最初の行では、ディスプレイの I2C アドレスが Thonny の Python Shell に出力されます。
while True: print(I2C_ADDR)7. 昔の端末インターフェースと同様に、 LCD ディスプレイのカーソルを点滅するように設定します。
lcd.blink_cursor_on()8. 画面に2行のテキストを出力します。最初の行では「I2C Address:」と、I2C_ADDRオブジェクトに格納されているアドレスが出力されます。次に改行文字「\n」を挿入し、「Tom's Hardware」(または任意の文字列)という行を出力します。テキストが読み上げられるまで2秒間待機します。
lcd.putstr("I2C Address:"+str(I2C_ADDR)+"\n") lcd.putstr("Tom's Hardware") sleep(2)9. 前のコードセクションを繰り返す前に画面をクリアしますが、今回はLCDディスプレイのI2Cアドレスを16進値で表示します。I2Cバックパックに使用されているPCF8574Tチップには0x20と0x27の2つのアドレスがあり、どのアドレスを使用しているかを把握しておくと便利です。特に複数のI2Cデバイスを使用している場合は、バス上で衝突が発生する可能性があるためです。
lcd.clear() lcd.putstr("I2C Address:"+str(hex(I2C_ADDR))+"\n") lcd.putstr("Tom's Hardware")
10. 点滅しているカーソルをオフにし、画面をクリアして、別のメッセージ「バックライト テスト」を画面に印刷する準備をします。
lcd.blink_cursor_off() lcd.clear() lcd.putstr("Backlight Test")
11. LEDバックライトを点滅させるには、 10回繰り返すforループを使用します。0.2秒間バックライトを点灯し、同じ時間消灯します。バックライトがオフの状態でも、「Backlight Test」というテキストは画面に表示されたままになります。
for i in range(10): lcd.backlight_on() sleep(0.2) lcd.backlight_off() sleep(0.2)
12. バックライトを再びオンにして、カーソルを非表示にします。点滅するカーソルは、伝えたい情報の見づらさを感じさせる場合があります。
lcd.backlight_on() lcd.hide_cursor()
13. LCD画面に0から19までの数字を表示するforループを作成します。値を削除して次の値に置き換えるまで、0.4秒の遅延があることに注意してください。テキストを上書きすると文字化けしてしまうので、テキストを削除する必要があります。
for i in range(20): lcd.putstr(str(i)) sleep(0.4) lcd.clear()
完全なコードリスト
from machine import I2C, Pin
from time import sleep
from pico_i2c_lcd import I2cLcd
i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000) I2C_ADDR = i2c.scan()[0]
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
while True: print(I2C_ADDR) lcd.blink_cursor_on() lcd.putstr("I2C Address:"+str(I2C_ADDR)+"\n") lcd.putstr("Tom's Hardware") sleep(2) lcd.clear() lcd.putstr("I2C Address:"+str(hex(I2C_ADDR))+"\n") lcd.putstr("Tom's Hardware") sleep(2) lcd.blink_cursor_off() lcd.clear() lcd.putstr("Backlight Test") for i in range(10): lcd.backlight_on() sleep(0.2) lcd.backlight_off() sleep(0.2) lcd.backlight_on() lcd.hide_cursor() for i in range(20): lcd.putstr(str(i)) sleep(0.4) lcd.clear()
コードを保存して実行します。Thonnyの他のPythonスクリプトと同様に、 「ファイル」>>「保存」をクリックし、ファイルをRaspberry Pi Picoに保存します。ファイル名は「i2c_lcd_test.py」にすることをお勧めします。準備ができたら、緑色の再生ボタンをクリックしてコードを開始し、画面上でテストが実行されるのを確認します。