超音波センサの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
    

参考URL


「システム」へ戻る