TIPS(2)~I2Cインターフェースの使い方

 

小ネタをひとつ。

使うセンサー類は極力I2Cにする、と書きましたが、複数個を同時に使うときに気をつけないといけない点が、(1) 電源電圧、(2) プルアップ、(3) アドレス、の3つです。

(1) 電源電圧

センサーの動作電圧はいろんなバリエーションがありますが、複数のセンサーを使うことを考えると、電源には5Vと3.3Vを準備するのが普通です。因みにGroveベースシールドは5Vと3.3Vの切替スイッチを持っており1つの基板上の電圧はどちらかに統一することになります。量産を意識して専用基板を起こす際には1.8Vも視野に入れますが、1.8Vでしか動かないセンサーを使うのでない限り、プロトタイプではそこまで考えなくていいでしょう。

(2) プルアップ

I2CはGND以外にclock線とdata線の2本のバスで芋づる式に複数のデバイスをつなぐことができますが、どこかでこの2本をプルアップしておかないといけません。Groveベースシールド上にプルアップ抵抗を載せるパッドはあるのですが、購入時には実装されていません。

また、センサー類には、基板上でプルアップしてあるもの、基板にプルアップ抵抗用のパッドが用意されているもの、などがあり要チェックです。

センサー類をとっかえひっかえしているうちはGroveベースシールドに抵抗は実装しないで、センサー基板上に載っている抵抗をそのまま利用するか、センサー全てに抵抗がない場合は空いているGroveコネクタにプルアップ抵抗を刺すようにした方がベターでしょう。

複数センサーに抵抗が載っている場合は要注意で、一つに絞ったほうがいいと思います(ハンダごてを使って外す、ということ)。

(3) アドレス

センサー毎にアドレスが異なっていないといけません。デバイスのデータシートやサンプルスケッチに記載があるのでチェックしておきましょう。

===

以上を前提に、センサーを間違って刺さない工夫をします。基板に親切に、電圧、プルアップありなし、アドレス、が書かれているものもありますが、そうでないものも多いので、私はセンサー類に書くようにしています。(下写真参照)
IMG_2354_I2C

 

左からBME280(温度・湿度・大気圧センサー)、照度センサー、RTCです。前者2つは3.3V、RTCは5Vなので1つのGroveベースシールド内に混在できません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です