LCD1602Aや2004AをI2C接続で使いこなす【ハード編】
AmazonでLCD1602AとLCD2004Aを購入しました。I2C接続用のシリアルIFモジュールと組み合わせて使うと便利です。
ネットで検索すると色々ヒットしたのですが、スクロール機能や文字数の情報が少ないのでまとめておきます。
ラズパイ関連の目次へ戻る(工事中)
今回購入したもの。
LCD1602とLCD2004
両方ともキャラクターディスプレイです。HD44780互換コントローラー搭載で使い勝手がいいです。
LCD1602が16桁×2行
LCD2004が20桁×4行
表示できます。
I2CシリアルIFモジュール
LCDに取り付けるようになっており、I2Cアドレスが異なる2種類のモジュールがあります。Amazonで買うとどちらが来るのか分かりません。
基板に乗っているICで区別がつきます。アドレスはA0~A2のソルダジャンパをショートするかオープンにするかで設定します。
PCF8574T :I2Cアドレスは0x27 0x20~27に変更可能
PCF8574AT :I2Cアドレスは0x3f 0x38~3fに変更可能
●アドレスの対応
IC | A0 | A1 | A2 | I2Cアドレス |
---|---|---|---|---|
PCF8574T | 0 | 0 | 0 | 0x20 |
1 | 0 | 0 | 0x21 | |
0 | 1 | 0 | 0x22 | |
1 | 1 | 0 | 0x23 | |
0 | 0 | 1 | 0x24 | |
1 | 0 | 1 | 0x25 | |
0 | 1 | 1 | 0x26 | |
1 | 1 | 1 | 0x27 | |
PCF8574AT | 0 | 0 | 0 | 0x38 |
1 | 0 | 0 | 0x39 | |
0 | 1 | 0 | 0x3a | |
1 | 1 | 0 | 0x3b | |
0 | 0 | 1 | 0x3c | |
1 | 0 | 1 | 0x3d | |
0 | 1 | 1 | 0x3e | |
1 | 1 | 1 | 0x3f |
上記のようにI2Cアドレスを変更すれば最大8~16台のLCDを同時に接続することができます。
★ただし、Amazonで購入すると指定はできないので最大8台と思ったいた方がいいでしょう。
取付
シリアルIFモジュールをLCDの裏側に半田付けします。
ラズパイとの接続
Amazonで購入できる格安のものは5V駆動です。そのまま接続すると壊れる可能性があるので信号の電圧レベルを変換する必要があります。(5Vでも動くことは動きますが、、、)
秋月電子で購入できるI2Cバス用双方向電圧レベル変換モジュール(PCA9306)を使用した配線は下記のようになります。
★3.3V駆動のLCD1602Aもあります。
少し値段が上がりますが3.3VのLCD1602もあります。レベル変換モジュールの値段を考えるとこちらでもいいかもしれません。I2CシリアルIFモジュールは3.3Vでも5Vでも一緒です。
電源を入れる
電源を入れる前に配線を確認しましょう。
特にVCCとGNDを間違えると部品を壊す可能性があるので注意してください。
正しく接続されているとバックライトが点灯し、奇数行に
■■■■■■■■■■■■■■■■
と表示されます。
コントラストの調整
■■■■■…と表示されなかった場合もしかしたらコントラストが低すぎるのかもしれません。シリアルIFモジュールに半固定抵抗が付いているので調整してみましょう。
バックライトの調整
バックライトの調整はシリアルIFモジュール上のジャンパーピンを抜き、100kΩ(104)の可変抵抗を接続すると行うことができます。
今回の記事で利用したもの
今回の記事で利用したものは電圧レベル変換モジュール以外Amazonで購入しました。Primeだと値段が高いのでEasyWordMallというAmazonマーケットプレイスを利用しました。
Prime以外で購入すると中国から発送なので届くのは1~3週間程度かかります。その点は注意してください。
LCD
シリアルIFモジュール
可変抵抗、ワイヤー、ブレッドボード
可変抵抗セット
ジャンパーワイヤー(オス-メス)
ミニブレッドボード
電圧レベル双方向変換モジュール
I2Cバス用双方向電圧レベル変換モジュール(PCA9306)-秋月電子
Amazonの場合はKKHMF 5個 4チャンネル IIC I2C ロジック レベル 変換 双方向モジュール 5V Arduinoに対応が該当します。4ch変換できます。
ハードの準備は完了
ここまででハードウェアの準備は完了です。
後はソフト編で解説します。
70歳の爺ですが、ラズベリーパイ4で遊んでいます。
LCDを使い温度制御したいのですがそのソフトを勉強していますGPIOを使い、
参考になるソフトは無いものですか ??
宜しくお願いします。 鈴木
鈴木様
コメントありがとうございます。
ラズパイはできることも多いですが、やりたいことが具体的書かれていて正解はこれです!というものは中々見つかりません。自分で目的を達成するために何が必要なのか色々な情報を集めて組み合わせていく必要があります。
温度制御を行いたいものはなんでしょうか?(一言で温度制御と言ってもエアコンで室温制御、水槽の温度制御などたくさんあります。)
例えば室温の場合、調べて組み合わせるのは下記のようなものがあります。
・LCDの使い方(この記事)
・赤外線受信モジュールでリモコンの解析
・赤外線LEDでエアコンをコントロールする。
ラズパイで電子部品を使って何かをしたい場合、初心者の方にはこちらの書籍をおススメしています。
電子部品ごとの制御を学べる! Raspberry Pi 電子工作 実践講座 改訂第2版
https://amzn.to/3fVjkKW
●手軽にエアコンで室温を制御したい場合SwitchBotという製品もあります。
SwitchBot温湿度計とSwitchBotHubminiを組み合わせれば実現できます。
https://raspberrypi.mongonta.com/switchbot-review-1/
書籍を読んでもわからないことがあればお手伝いできることもあると思うので、またコメントやメールをください。
よろしくお願いいたします。
工業高校生です。
とても参考になりました。