I2C接続

English page

各種のセンサーなどを、I2Cで接続することは非常に多いです。
電源(VCC/GND)と、データ(SDA)、クロック(SCL)の4本の線を接続するだけで良く、比較的簡単に使えるというメリットがあります。
このページでは、I2C接続の方法を解説します。

I2C接続に使うピン

マイコンによって、I2C接続に使うピン(SDA/SCL)が固定されている場合と、ピンの割り当てを自由に設定できる場合があります。

ピンが固定されているマイコン

以下のマイコンでは、SDA/SCLのピンが固定になります。

マイコンSDAのピンSCLのピンピンの位置
ESP32(無印)GPIO21GPIO22こちらの図のGPIO21/22を参照
Raspberry PiGPIO2GPIO3こちらの図のGPIO2/3を参照
Raspberry Pi Pico(Wではないもの)GP4GP5こちらの図のGP4/5を参照

SDA/SCLのピンが固定のマイコンで、I2C接続のモジュール等を使う場合は、初期化の際にピン番号の指定がないブロックを使います。
例えば、温度/気圧センサーのBMP280の場合、以下のブロックを使います。

初期化

ピンの割り当てを自由に行えるマイコン

以下のマイコンでは、SDA/SCLに割り当てるピンを自由に変えることができます。

  • ESP32-S3
  • ESP32-C3
  • ESP32-C5
  • ESP32-C6
  • Raspberry Pi Pico W
  • Raspberry Pi Pico 2W

これらのマイコンで、I2C接続のモジュール等を使う場合は、初期化の際にピン番号を指定するブロックを使います。
例えば、温度/気圧センサーのBMP280の場合、以下のブロックを使います。

SCL/SDAのピン番号を指定して初期化