MIRSMG5 管理台帳へ戻る

名称 超音波センサのI2Cアドレスの確認・変更手順
番号 MIRSMG5D-SYST-0011
版数 最終更新日 作成 承認 改訂記事
A01 2017.04.18 牛丸真司 牛丸真司 初版
A02 2021.05.25 牛丸真司 牛丸真司 管理台帳フォーマットへの変更
A03 2025.12.11 牛丸真司 牛丸真司 7bit/8bitアドレスの対応表の追加

超音波センサのI2Cアドレスの確認・変更手順

複数の超音波センサを使用する場合は、センサのそれぞれのアドレスを他と異なる I2C アドレスに付け替える必要がある。 超音波センサ Devantech SRF02 の初期の I2Cアドレスは 0xE0 (7bit仕様では 0x70 )となっているが、以下にその変更手順を示す。

  1. RaspberryPi のユニバーサル基板にに著音波センサを取り付ける。 (同じアドレスのものがI2Cバス上に存在してはいけないので、初期設定のものを複数同時に取り付けてはいけない。)

  2. i2cdetect コマンドでアドレスを確認する。

    pi@raspberrypi:~ $ i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
    70: 70 -- -- -- -- -- -- --                         
    


    Arduino で扱う I2Cアドレスは 7bit なので、8bitアドレスの最下位ビットが1つ落ちて、 i2cdetect の出力では 0xE0は 0x70 として表示される。 (i2cdetct コマンドは 7bit 仕様になっている。)

  3. i2cset コマンドでアドレスを変更する。

    【例】0xE0 (0x70)のアドレスを 0xE2 (0x71)に変更する場合

      i2cset -y 1 0x70 0x00 0xA0
      i2cset -y 1 0x70 0x00 0xAA
      i2cset -y 1 0x70 0x00 0xA5
      i2cset -y 1 0x70 0x00 0xE2
    

  4. I2C 7bitアドレスと i2cset の変更時の8bitアドレスとの対応

    I2Cの7bitアドレスと、上記のアドレス変更時の最期に指定する8bitアドレス(上記の例では 0xE2)との対応を以下の表に示す。
    7bitアドレス8bitアドレス
    0x700xE0
    0x710xE2
    0x720xE4
    0x730xE6
    0x740xE8

参考URL