STM32マイコンのIoT実験で遊ぼう! その20 ~I2C通信で気圧センサを使ってみる~
今回の実験では、ARM-First に搭載されているI2C接続の気圧センサーを使います。
1.I2Cとは
I2C(Inter-Integrated Circuit、アイツーシーまたはアイスクエアシー)は、マイクロコントローラやセンサ、メモリデバイスなどの電子部品同士を接続するためのシリアル通信プロトコルの1つです。
① 特徴
1)2本の線で通信
SCL(Serial Clock Line): クロック信号を送る線
SDA(Serial Data Line): データを送受信する線
→ これにより、複数のデバイスを簡単に接続できます(シンプルな配線)。
2)マスター・スレーブ方式
マスター(通常はマイクロコントローラ)が通信を制御します。
スレーブ(センサやメモリなど)はマスターの指示に従って動作します。
3)アドレッシング
各スレーブにはユニークなアドレスが割り振られ、マスターがそのアドレスを指定して通信します。
4)クロック同期通信
マスターがクロック信号を生成し、それに基づいてデータをやり取りします。
② 主な用途
センサ(温度、圧力、加速度計など)との接続
液晶ディスプレイやLEDドライバの制御
EEPROMやフラッシュメモリとの通信
③ メリット
1)簡単な配線: 2本の線で通信できるため、配線が少なくて済む。
2)複数デバイス接続可能: 1つのバスに複数のデバイスを接続できる。
3)低コスト: ハードウェアがシンプルで済むため、コストを抑えられる。
④ デメリット
1)速度制限: 最大通信速度は標準で100kbps、高速モードで400kbpsと、SPIなどと比べると遅い。
2)バスの混雑: 複数デバイスが1つのバスを共有するため、デバイス数が多いと通信効率が下がる。
I2Cは、低速で低コスト、そしてシンプルな通信が求められる組み込みシステムで広く利用されています。
2.気圧センサー
ARM-First にはI2C接続の気圧センサーが搭載されています。
こういうイメージでしょうか
それでは次回、
マイコンの設定とプログラムの作成を行います。
(参考にした教材です)
CQ出版社の下記の書籍を参考にさせていただきました