文書の過去の版を表示しています。
009.LCDを接続する…さようならBBB
2026-08-26 5V駆動のLCDでもなんとかなった
書きかけ
概要
- メーカー不明のLCD、型名には1602A V2.0
- 多分使えるとは思う
- ただしこいつは5V駆動。単純にBBBへ接続できないかも
外観
ジャンク箱に放置されていたLCDをBBBにつないでみる。
1602というよく知られたパーツで、コントローラHD44780かその互換品で構成されている。
ただ一般的には5V駆動のパーツなのでBBBの3.3Vとは相性の問題があるかもしれない。
I2CのI/Fを搭載していないパーツなのでパラレル接続を実施する事になる。
仕様等々
大変メジャーなパーツ。以下のリンクは型番が少し違うけどまぁ似たようなもん。
秋月電子通商 LCDキャラクターディスプレイモジュール(16×2行バックライト付)
キーワード「 LCD 1602A 」でWeb検索すると接続に関する記事がいろいろ見つかるけど、ほぼラズパイかArduinoの記事で、これらは本体のPINへ直結できる模様。
事前にChatGPTさんに聞いてみると、5V稼働のパーツで信号線出力も5VだからそのままBBBのGPIOにつなぐとお釈迦になるよ、と警告を受ける。
提案としては1602Aを書き込みモードに固定してつかうなら、3.3Vでも行けると思うので試してみれば?との事。
配線
検索で出てきた記事を参考に配線図を書き出す。実際に配線してみたところ動いている。よかった。液晶のコントラスト変更は可変抵抗VRの調整で行う。
ソフトウエア
ChatGPTによれば先の表示は初期化が行われていない1602の表示の典型例だそうで、初期化コマンドを送って初期化する必要がある。
ただ、困った事にコマンドの送信タイミングなんかをやり取りする事(例えばBusyかどうかの確認)ができない。それは読み出しになり 1602A がその信号を返す時は 5V で信号を出すから。
インストラクション
この資料によると、R/WのPINがHigh(1)の時のコマンドは2つ。
- Busy Flag/Address Read
- CGRAM/DDRAM Data Read
Busy Flagを見て(D7の状態を見て)コマンドの発行タイミングを計れそうだと思ったのだけど、強制でR/WはLowにしているので(GND接続しているので)この2つは使えない。
さようならBBB
BBB、電源が入らなくなった……
多分5VがBBBのどこかのPINに入ってしまったんだと思う。

