【組み込みマイコン基礎】I²C通信とは?原理・配線・データシートの読み方まで解説
今回は組み込みマイコン開発の基礎として、I²C(アイ・スクエアド・シー)通信について紹介します。
マイコンの代表的な通信方式には、以下の3つがあります。
- I²C
- SPI
- UART
いずれも1本の通信線で1ビットずつデータを送るため、シリアル通信と呼ばれます。
最近では I³C や Quad SPI などの発展版も登場していますが、
まずは基本となる3方式を押さえておきましょう。
I²Cの配線方法

I²C通信では、マイコンから以下の4本の線を外部に出します。
- SCL(クロック線) データ転送のタイミングを決める基準信号
- SDA(データ線) 0/1 の制御でデータを送受信する
- VCC(電源)
- GND(グラウンド)
この4本を各センサーモジュールに接続するだけで通信が可能です。 配線がシンプルなのはI²Cの大きなメリットですね。
I²C通信の確立(アドレス指定とACK)

I²Cでは、通信を始める際にマイコンが次のようにセンサーモジュールへ呼びかけます。
「スレーブアドレス 0x11 のモジュールはいますか?」
センサーモジュールはそれぞれ固有のスレーブアドレスを持っており、該当するモジュールが応答します。
■ スレーブアドレスの送信
- マイコンは 7ビットのアドレスを送信
- 続けて 読み込み/書き込み(R/W)ビット を送信
- その後、モジュールから ACK(アクノリッジ) が返ってくる
■ ACKとは?
- 0(LOW):応答あり
- 1(HIGH):応答なし
ACKが返ってくることで、通信が確立されたことが確認できます。
データシートを使った実例:SHT30センサー

例として、温湿度センサー SHT30 のデータシートを見てみます。
■ 測定データの取り込みコマンド
SHT30では、測定開始のために次の2バイトを送信します。
- 0xE0
- 0x00
この2バイトを送ると、センサー内部で測定が開始されます。
■ 測定データの読み出し
- 再度アドレスを送信(今度は読み出しモード)
- センサーが測定データを1バイトずつ返す
- マイコン側でデータを計算し、温度・湿度に換算
- LCDなどに表示
I²Cではこのように、 通信確立 → コマンド送信 → データ要求 → データ受信 という流れで処理が進みます。
I²Cの長所と短所
■ 長所
- 配線が4本だけで済む(特にSCLとSDAの2本で通信可能)
- 複数のデバイスを同じバスに接続できる
■ 短所
- スレーブアドレスの衝突問題 同じアドレスのセンサーは同時に使えない
- 毎バイトごとにACK確認が必要 通信手順がやや冗長
- クロックが遅い 一般的に最大 1 Mbps 程度
便利な反面、制約も多い通信方式と言えます。
まとめ
- I²Cは 電源+通信線の4本だけで使えるシンプルな通信方式
- 通信の流れは アドレス送信 → ACK → コマンド送信 → データ受信
- 配線は楽だが、アドレス衝突や速度の遅さなどのデメリットもある
I²Cは組み込み開発で頻繁に使われる基本技術なので、ぜひ押さえておきましょう。
