【初心者向け】Raspberry Pi PicoでLCD1602に文字を表示する方法!

  • URLをコピーしました!

皆さんこんにちは。yossyです。

ラズピコで電子工作をしていると、ディスプレイに文字を表示したいと思うことがあると思います。
ラズピコでディスプレイに文字を表示する方法として、LCD1602というディスプレイを使う方法があります。

この記事では、Raspberry Pi PicoでLCD1602に文字を表示する方法を解説します。

目次

LCD1602 ディスプレイとは?

まずは、LCD1602について解説していきます。

基本仕様

  • 表示可能文字: 英数字、記号
  • 表示形式: 16文字×2行
  • インターフェース: パラレル接続またはI2C接続(アダプター使用時)

LCD1602は、16列2行のキャラクター(文字)表示が可能な液晶ディスプレイモジュールです。
1602は、16列と2行のことを表していたのです。

Amazonで購入することができるので、まだ持っていない人は下のボタンから購入できます!

アダプターと通信方式

このディスプレイは、アダプターを使うことでI2C接続で使用することができます。
I2Cとは、マイコンとパーツとの間での通信の方法です。

アダプターは標準でついていることが多いです。
下の画像の上がアダプタあり、下がアダプタなしです。

アダプターがない場合は購入することができるので、購入して自分ではんだ付けしましょう。
アダプターは下のボタンから購入できます。

使い方

それでは、LCD1602ディスプレイをRaspberry Pi Picoで使う方法について解説していきます。

このディスプレイを使うためには、まずラズピコにライブラリをインストールする必要があるので、インストールの方法を先に解説します。

ライブラリをインストール

まずライブラリをインストールするために、ライブラリのページにアクセスしましょう。

lcd_api.py(https://raw.githubusercontent.com/dhylands/python_lcd/master/lcd/lcd_api.py)

pico_i2c_lcd.py(https://raw.githubusercontent.com/T-622/RPI-PICO-I2C-LCD/main/pico_i2c_lcd.py)

この2つのコードをコピーして、Thonnyで新規ファイルを作成して貼り付けます。
貼り付けたらラズピコにそれぞれ名前をつけて保存しましょう。

プログラム

from machine import Pin, I2C
import utime
from pico_i2c_lcd import I2cLcd

i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=400000)  # i2cの初期化
lcd = I2cLcd(i2c, 0x27, 2, 16)  #lcdオブジェクトを作成


while True:
    lcd.putstr("Hello world!\n" + "Let's enjoy!")  #\nを使うことで改行できる
    utime.sleep(3)
    
    lcd.move_to(0,0)  #カーソルを0行目の0文字目に戻す
    lcd.putstr("abcdefghijklmn\nopqrstuvwxyz")
    utime.sleep(3)
    
    lcd.clear()  #画面の文字を消す
    utime.sleep(3)
    
    lcd.backlight_off()  #バックライトを消す
    utime.sleep(3)
    lcd.backlight_on()  #バックライトをつける
    utime.sleep(3)

ポイントごとに解説します。

from machine import Pin, I2C
import utime
from pico_i2c_lcd import I2cLcd

まずは、使用するライブラリを読み込みます。
I2Cを使うのでi2cライブラリを読み込みます。また、先ほどのインストールしたpico_i2c_lcd.pyからI2cLcdライブラリを読み込みます。

lcd_api.pyは、pico_i2c_lcdの中で読み込まれているので、読み込む必要はありません。

i2c = I2C(0, scl=Pin(17), sda=Pin(16), freq=400000)  # i2cの初期化
lcd = I2cLcd(i2c, 0x27, 2, 16)  #lcdオブジェクトを作成

次に、i2cとlcdの初期化をします。

lcdのオブジェクトを作成するときに、lcdのi2cアドレス(一般的に0x27)と何行何文字かを渡しています。

    lcd.putstr("Hello world!\n" + "Let's enjoy!")  #\nを使うことで改行できる
    utime.sleep(3)
    
    lcd.move_to(0,0)  #カーソルを0行目の0文字目に戻す
    lcd.putstr("abcdefghijklmn\nopqrstuvwxyz")
    utime.sleep(3)
    
    lcd.clear()  #画面の文字を消す
    utime.sleep(3)
    
    lcd.backlight_off()  #バックライトを消す
    utime.sleep(3)
    lcd.backlight_on()  #バックライトをつける
    utime.sleep(3)

このコードが、文字を表示している部分です

まずは1行目のputstr関数
文字列を渡すとLCDに表示してくれます。

次にmove_to関数
LCD1602はカーソルの概念があり、putstrで文字を表示するとその分カーソルがズレます。
そのカーソルを移動するのがmove_to関数です。
今回は0行0文字目に戻すために使用しました。

clear関数は、LCDに表示されている文字を消す関数です。
ついでにカーソルも0,0に戻してくれます。

backlight_on,off関数はその名前の通りバックライトをオン・オフする関数です。

配線

配線は次のように行います。

LCD1602(のアダプター)のピンラズピコのピン
VCCVBUS(5V)
GNDGND
SDA16番ピン(SDA)
SCL17番ピン(SCL)

LCD1602は5Vで動くので、3.3VピンではなくUSB電源接続時5Vが供給されるVBUSピンに繋いでいます。

動作の様子

LCDディスプレイを接続して実行すると、Hello world!などが表示されたり、画面のバックライトが消えたりします。

画面の表示がおかしい場合はアダプターに明るさ調節ネジがあるので、それをドライバーで調節してみてください。

まとめ

今回はLCD1602ディスプレイをRaspberry Pi Picoで使う方法について解説しました。

ディスプレイに文字を表示できたら、センサーの値やメッセージを表示することができるので便利です。

もしよかったらみなさんも使ってみてください。

まだLCD1602ディスプレイを持っていない人は、下のボタンから購入できます。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次