駄目社員はむの日記

USO800 certified.

Raspberry Pi Zero で、世事に聡くなる (2)

キャラクタ液晶→Humble Pi→Raspberry Piのワイヤリング

キャラクタ液晶はいわゆる「HD44780互換」というありがちなものなので、きっと先達がPythonライブラリを作ってくれるだろうから、そっちは後回しにして、まずハードを繋ごう。

Humble PiはGPIOを番号順に並べてくれているのでとてもありがたい。

LCD 16pin 26pin Pi Zero ヘッダー コメント
VSS 1 6 GND
VDD 2 2 +5V 10kΩ半固定抵抗入力
Vo 3 - NC 10kΩ 半固定抵抗センター
Rs 4 11 GPIO17
R/W 5 - NC LCD 1pinにジャンパー、半固定抵抗GND
Enable 6 12 GPIO18
DB0 7 - NC
DB1 8 - NC
DB2 9 - NC
DB3 10 - NC
DB4 11 22 GPIO25
DB5 12 18 GPIO24
DB6 13 16 GPIO23
DB7 14 15 GPIO22


こんな感じ。間違っていても保証しません。
ドーターボード側で並んでいるヘッダにハンダ付けしやすいようにつないだだけなので、GPIOは適当に選んでください。
I2C接続であれば配線はもっとスマートだが、格安100円液晶だし、信号線はじゅうぶんZeroから出ているので、まあよし!

続いて、Pythonのライブラリをインストール。

キャラクタ液晶は、定石通り、Pythonで触るのがいいだろう。
キャラクタ液晶の制御ライブラリはAdafruitからも出ているらしいが、HD44780互換フルサポートで、パラレル(GPIO)とI2C両方に対応したRPLCDを選択。

素振り。

実は紆余曲折あったのだが、それはそれとして、

import RPi.GPIO as GPIO
import time
from RPLCD import CharLCD

lcd = CharLCD(pin_rs = 17, pin_rw = None, pin_e = 18, pins_data = [25,24,23,22], numbering_mode = GPIO.BCM, cols=8, rows=2, dotsize=8)
lcd.clear()
lcd.write_string("dame shain")

てな具合で書けば、まずはテキストが表示されることが分かった。

lcd = CharLCD(pin_rs = 17, pin_rw = None, pin_e = 18, pins_data = [25,24,23,22], numbering_mode = GPIO.BCM, cols=8, rows=2, dotsize=8)

は、GPIO.BCM(GPIO番号で記述する方法)と、GPIO.BOARD(ヘッダの番号で記述)のどちらでもいいみたい。
16文字x1行の液晶は、中身が8文字x2行なので、そのように記載。
(つづく)