コードを書く前に I2C の使い方の復習です。
通信を行う片側をマスター、もう一方をスレー・・・おっと
いまはコントローラとターゲットという呼び方が推奨されているようです。
今回はラズパイ pico をコントローラ、LCD をターゲットとします。
ターゲットにはアドレスが振られており
1602互換 LCD では 0x27 や 0x3F の事が多いようです。
I2C のアドレスは7bit (最大 128種)のようなので
どうしてもアドレスがわからない場合は
反応が出るまで全アドレスを試してみるかな?
I2C 通信手順 ( pico → LCDへのデータ送信)
① pico が Start condition、LCD のアドレス、R/W 信号を送る
今回は pico → LCD なので R/W は W (write)
② LCDからアクノリッジを受け取る
アクノリッジは1bit で正常なら0、異常なら1
③ 8bit のデータを送る
④ LCDからアクノリッジを受け取る
⑤ 必要な回数、③と④の繰り返し
⑥ 最後に Stop condition を送って終了
pico が受信する場合 (R/W が R の場合)は、pico がデータを受け取った後に
pico がアクノリッジを送信します
I2C 通信の基本をコードを書いてみましょう
・・・と思いましたが
ターゲットが無いとコードが正しいかわかりません
次回は、I2C 接続した LCD の使い方です


コメント