電子工作

I2C(TWI)を使ってマイコン間で通信してみました[ATmega168:電子工作、動作編]

ノリユキ
ノリユキ
いらっしゃーい。電気電子のノリユキです。いつもこのブログをみていただきありがとうございます。

前回はGLCDを使ったオシロスコープを作成しました。

グラフィックLCD(GLCD)を使ってオシロスコープ(oscilloscope)を作成しました[ATmega328P:電子工作、動作編] 前回まではGLCDへのBMP画像を出力させたり、円,直線を出力させる記事(どちらかというと動画)を書いてきました。 htt...

今回はI2Cに挑戦しました。

母ちゃん
母ちゃん
I2Cって何よ?
ノリユキ
ノリユキ
そこを含めて説明させていただきます。

それでは、いってみましょう。

I2Cとは?

I2C=Inter Integrated Circuitです。

簡単にすると、I2Cを用いることで多数のマイコンやセンサと通信ができるようになります。

I2Cを用いる際にはルールがあります。マスターとスレーブを決める必要があります。

私が知る限り、マスターは1つしかなれません。スレーブは複数できます。

マスターとスレーブの接続は下図のようになります。

図にあるようにSCLとSDAの2本の線で複数のマイコン、センサと通信ができます。

通信に2本の線を用いるため、私がマイコンとして使用しているATMEL社の用語ではTWI(Two Wire Interface)と呼ばれています。

ノリユキ
ノリユキ
I2Cの詳細については、他のサイトにたくさんあるのでそちらをみてください

今回はマイコンとマイコンの通信をしてみることにします。

マイコン間の回路

上で述べたことを回路にするとこんな感じになります。マスター、スレーブとも1つのマイコンで構成しました。

ポイントは2つの線に1kΩのプルアップ抵抗をかましているところです。

なぜこのようにしているかについては回路編で説明をしたいと思います。

次にどのようなことをマイコン間でさせるのかについて説明します。

実験内容

マスターからデータを受け取ったスレーブはPORTBのPB6/7のLEDを点灯させるというのが実験内容です。

流れをフローチャートにしてみました。

会話風にすると枠で囲った英語の部分をみてもらえると良いかと思います。

ノリユキ
ノリユキ
詳細は動画で説明します

この会話のやり取りを見えるかするために、マスター,スレーブ側にLCDを付けました。

これが今回の実験内容です。

実験

それでは実験に移ります。再生時間は2分40秒です。

フローチャートの流れがわかるようにLCDに会話を表示させてみました。

母ちゃん
母ちゃん
やり取りが目で見れていいんじゃないかしら!
ノリユキ
ノリユキ
他の方にもそういっていただけるといいんだけどなぁ

次回

動画にもありましたが、次回はマイコンとセンサのI2Cになります。

次回もノリユキのブログを見に来てください。

本日はここまでです、毎度ありがとうございました。