Arduinoリファレンス
Arduinoリファレンスの日本語訳のページです
Wire

このライブラリを使うとI2C/TWIデバイスと通信することができる。R3レイアウト(1.0ピンアウト)のArduinoボードでは、SDA(データライン)とSCL(クロックライン)はAREFピンの近くのピンヘッダにある。Arduino Dueでは、2つのI2C/TWIインターフェイスがあり、SDA1とSCL1がAREFピンの近くにあり、もう一方は20番ピンと21番ピンである。

以下に様々なArduinoボードで、TWIピンがどこにあるかを示す。

ボードI2C/TWIピン
Uno, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
Leonardo2 (SDA), 3 (SCL)
Due20 (SDA), 21 (SCL), SDA1, SCL1

Arduino 1.0からは、このライブラリはStreamクラスを継承していて、他のread/writeライブラリとの整合性をとっている。このため、send()とreceive()は、write()とread()に変更された。

注意

I2Cアドレスには7ビットのものと8ビットのものとがある。7ビットはデバイスを指定し、8ビット目は書き込みか読み出しかを決定する。Wireライブラリは7ビットアドレスだけを利用する。8ビットアドレスを使うデータシートやサンプルコードがある場合は、最下位ビットを落とし(値を1ビット右にシフトする)、アドレスを0から127の間にする必要がある。しかし、0から7のアドレスは予約されているため使われないので、利用できる最初のアドレスは8である。

SDA/SCLピンに接続する際は、プルアップ抵抗が必要であることに注意が必要である。詳細は、使用例を参照すること。MEGA2560ボードは、20番ピンと21番ピンにプルアップ抵抗が内蔵されている。

Wireライブラリの実装は、32バイトのバッファを利用する。このため、通信はその中で行う必要がある。1回の通信で上限を超えた場合は、データは捨てられる。

このライブラリを使うためには、以下を宣言する。

#include <Wire.h> 

使用例

Wire
Wireライブラリを初期化し、I2Cバスにマスターあるいはスレーブとして参加する。
マスターがスレーブデバイスにデータを要求するのに使われる。
指定したアドレスに対応するI2Cスレーブデバイスへの通信を開始する。
beginTransmission()によって開始したスレーブデバイスへの通信を終了し、write()によってキューイングされたデータを実際に送信する。
マスターデバイスからの要求に対応してスレーブデバイスからデータを送信する。もしくは、マスターデバイスからスレーブデバイスにデータを送信する際にデータをキューイングする。
read()で取得可能なデータ長を返却する。
requestFrom()を呼んだ後にスレーブデバイスからマスターデバイスに送信されるデータを受信する。
スレーブデバイスがマスターデバイスから送信されたデータを受信したときに呼び出される関数を登録する。
マスターデバイスがスレーブデバイスからのデータを要求したときに呼び出される関数を登録する。

オリジナルのページ

https://www.arduino.cc/en/Reference/Wire

inserted by FC2 system