Raspberry Pi PicoのI2Cのテストをします。
machineからI2Cモジュールをインポートします。
コンストラクタI2Cの仕様は、I2C(id, scl, sda, freq)です。
idだけを指定した時のデフォルト値は、
id sda scl freq
id sda scl freq
0 GPIO8 GPIO9 400000(400KHz)
1 GPIO6 GPIO7 400000(400KHz)
です。
なお、I2Cはid=0か1で次の12の組み合わせで利用することができます。
id sda scl
0 GPIO0 GPIO1
1 GPIO2 GPIO3
0 GPIO4 GPIO5
1 GPIO6 GPIO7 デフォルト
0 GPIO8 GPIO9 デフォルト
1 GPIO10 GPIO11
0 GPIO12 GPIO13
1 GPIO14 GPIO15
0 GPIO16 GPIO17
1 GPIO18 GPIO19
0 GPIO20 GPIO21
1 GPIO22 GPIO23
I2CバスにI2C LCD AQM0802Aを接続して、I2Cアドレスを調べてみます。
スクリプトです。id=0としましたので、AQM0802AのSDAはGP8にSCLはGP9に接続します。実行結果はshellに表示されます。
![](https://blogimg.goo.ne.jp/user_image/07/ee/bd82f56e3daa8d937b5773733b5ab0fb.png)
shellの上段は、I2C(1)の場合、下段はI2C(0)の場合です。
freqとSCLとSDAのピン番号が表示されます。デフォルト値ですね。
I2Cのクロック周波数は、最大400KHzになると思ったのですが、399361Hz(399.361KHz)と表示されました。この値が最大値のようです。
AQM0802AのI2Cスレーブアドレスは62=0x3eと表示されました。
次に、クロック周波数frqとscl,sdaを変えてみましょう。freq=100KHz(標準の周波数)、scl=GP17,sda=GP16の場合のスクリプトです。
![](https://blogimg.goo.ne.jp/user_image/07/2a/c6201b7ee2a5c8f636e03475c17d145a.png)
次は、I2C LCD AQM0802Aの表示テストをします。
※コメント投稿者のブログIDはブログ作成者のみに通知されます