Arduino同士でのI2C通信

I2Cって知ってますか??

ざっくり説明してこんな感じです。

  • 2本線で通信(SDA/SCL)
  • システムが動作中であっても、取り外し、取り付けが可能
  • 最大112個を同じバス上で接続できる(7bitの時)
  • 読み方はアイ・スクエアド・シー(とはいえアイツーシーと呼んでる)

って感じです。

要は2本線で沢山のモジュールと同時に通信できるよーって感じです。

 

さて、今回はArduinoとArduinoでこのI2Cを使って通信するだけのブログです。

 

更にちょっと説明

マスター側とスレーブ側に別れるってことを知ってる人は読み飛ばしてOKです。

I2Cはマスターという御主人様とスレーブという従者達から構成されています。

従者達には識別番号であるアドレスが割り振られ、「25番のスレーブはLEDを光らせろ!」的なノリでマスター側のコーディングをしていきます。

マスターはシステムに基本的に1つ、スレーブは複数可能です!

 

ソースコード(マスター側)

 

ソースコード(スレーブ側)

 

配線図

 

Arduino I2C

  • A4(マスタ)-A4(スレーブ)=SDA
  • A5(マスタ)-A5(スレーブ)=SCL
  • 5V(マスタ)-Vin(スレーブ)
  • GND(マスタ)-GND(スレーブ)

で接続をします。

USBケーブルが1本しかなかったので、マスター側にUSBケーブルを接続して、スレーブ側はVinにマスター側の5Vから電力供給をしています。

 

コード解説

今回のコードは見ての通り、countという変数に対して1ずつ足していってそれをマスター側に送ってるだけです。マスター側でシリアルモニタを見ると確認できるかと思います。

今回の流れが基本的なArduino同士でのI2C同士での通信方法になるかと思いますので、参考になればと思います。

 

今回のブログ曲

今回投稿中に聴いていた曲はこちら

カテゴリー: Arduino

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です