I2C通信(TwoWireクラス)
2線による通信を行うためのI2C通信ライブラリです。Wireと呼ばれることもあります。使用する場合は、ライブラリとしてインポートして、#include <wire.h>を記述してください。
TwoWire用コンストラクタ
概要 |
TwoWireクラスのインスタンス生成用コンストラクタです。 |
文法 |
TwoWire() |
パラメータ |
なし |
戻り値 |
なし |
assignSdaScl
概要 |
SDA、SCLに割り当てるピンを指定する。デフォルトでSDAはアナログピンの4番、SCLはアナログピンの5番に割り当てられています。 |
文法 |
wire.assignSdaScl(int sda, int scl) |
パラメータ |
sda: SDAに使用するピンscl: SCLに使用するピン |
戻り値 |
なし |
begin
概要 |
初期化します。 |
文法 |
wire.begin() |
パラメータ |
なし |
戻り値 |
なし |
requestFrom
概要 |
相手先に対して受信シーケンスを発行し、データを読み出す。 |
文法 |
wire.requestFrom(unsigned char address, int count) |
パラメータ |
address: 相手先のアドレス(7bit)。RD/WRを示すビットは含まず、0~0x7fを指定してください。count: 読み出したいデータのバイト数。0~260を指定。 |
戻り値 |
受信したバイト数。相手先がNACKを返した場合は、countで指定した値に満たなくても終了する。 |
available
概要 |
受信バッファ内にあるデータ数を調べる |
文法 |
wire.available() |
パラメータ |
なし |
戻り値 |
データ数(バイト単位) |
read
概要 |
受信バッファからデータを1バイト取り出す |
文法 |
int wire.read() |
パラメータ |
なし |
戻り値 |
データがある場合は0~255を返す。データがない場合は-1を返す。 |
beginTransmission
概要 |
相手先に対して送信を開始するための準備をする。 |
文法 |
wire.beginTransmission(unsigned char address) |
パラメータ |
address: 相手先アドレス。RD/WRを示すビットは含まず、0~0x7fを指定してください。 |
戻り値 |
なし |
write
概要 |
送信バッファの末尾に文字列や、データを追加する。 |
文法 |
int wire.write(data) |
パラメータ |
data: 送信したい文字列、データ |
戻り値 |
成功したら送信したバイト数を返す。送信バッファ(260バイト)に空き容量が無ければ失敗して0を返す。 |
endTransmission
概要 |
相手先に送信シーケンスを発行する。I2C通信はこの関数を実行して初めて行われる。 |
文法 |
unsigned char wire.endTransmission() |
パラメータ |
なし |
戻り値 |
0: 成功1: 送信バッファ溢れ2: アドレス送信時にNACKを受信3: データ送信時にNACKを受信4: その他エラー |
サンプルプログラム
編集中です。