#topicpath

** Arduino Tips [#k0dddf10]

*** I2Cを利用する [#uf08b0fa]
- 概要~
I2C(Inter-Integrated Circuit, I-squared-C) は、マイコンがセンサからデータを取得するための通信方法としてよく使われている。~
同様に [[SPI>../SPI]] と呼ばれる通信もある。どちらも、基本的には似た方式で通信するが、最近はSPI の方が好まれるようである。~
~
-- 基本用語~
--- &color(red){SDA};(Serial DAta)~
デバイスの端子名。データ送信に使う。~
~
--- &color(red){SCL};(Serial Clock)~
デバイスの端子名。データを送信する際のタイミングを合わせるための信号に使う。~
~
--- アドレス~
上記二つの端子に、スレーブ(slave, 奴隷, データを供出する側)を複数接続することができる。スレーブを互いに区別するために、~
スレーブにはアドレスと呼ばれる 7bit の固有の番号を割り振る。通信時にアドレスを通知することで、どのスレーブと通信してい~
るかを区別する。普通、I2C で通信できるスレーブは、チップにアドレスが内蔵され書き換えられないので、同じ種類のデバイスを~
複数つないで通信することはできない。これを書き換えることができれば、複数つないで通信することができる。~
~
--- プルアップ抵抗~
SDA, SCL ともに、プルアップ抵抗が必要である。データの通信は電圧の高低で行うが、これらが未定であるとき、また、デバイスが~
&color(red){SDA};, &color(red){SCL}; ともに、プルアップ抵抗が必要である。データの通信は電圧の高低で行うが、これらが未定であるとき、また、デバイスが~
接続されていなかったなどのときに、自動的に一定の電圧になるように高めの抵抗を電源線と接続する必要がある。I2C の場合に、~
プルアップ抵抗が必要になる。時々、マスター側のハードウエアに、あらかじめプルアップ抵抗がしこまれていることもある。~
~
- 実際の接続~
Arduino では Wire ライブラリを用いる。~
-- 接続例~
--- [[Arduino/みんな試作機/I2C通信と温湿度計]] Sensirion SHT25 の値の読み取り
--- [[Arduino/みんな試作機/温湿度計]] AM2321, AM2302 の値の読み取り
~
- 参考URL
-- [[Arduino の日本語リファレンス>http://www.musashinodenpa.com/arduino/ref/index.php?f=1&pos=341]]
-- [[I2C通信の使い方>http://www.picfun.com/c15.html]]

トップ   編集 差分 添付 複製 名前変更 リロード   新規 検索 最終更新   ヘルプ   最終更新のRSS