基本ライブラリ
デジタルIO
アナログIO
拡張IO
時間
数学
三角関数
乱数
ビットバイト操作
割り込み
シリアル通信
標準ライブラリ
サーボモーター
ステッピングモーター
キャラクタ液晶表示
EEPROM
SPI通信
I2C通信(Wire)
メモリカード
メモリカード(File操作)
Ethernet
Ethernetサーバー
Ethernetクライアント
Firmata
周期処理
省電力
時計(RTC)
SoftwareSerial
ユーティリティ
I2C通信(Wireクラス)
2線による通信を行うためのI2C通信ライブラリです。Wireと呼ばれることもあります。
使用する場合は、#include <wire.h>
を記述してください。KURUMIボードではSCL(クロック)はピン7、SDA(データ)はピン8です。Arduino Pro Miniと異なります。
begin
概要
初期化します。
文法
Wire.begin()
Wire.begin(address)パラメータ
なし
戻り値
なし
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: その他エラー
onReceive
概要
マスターからデータを受信したときにコールする関数を登録する。
文法
Wire.onReceive(handler)
パラメータ
handler:マスターからデータを受信したときにコールする関数
戻り値
なし
onRequest
概要
マスターがデータを要求したときにコールする関数を登録する。
文法
Wire.onRequest(handler)
パラメータ
handler:マスターがデータを要求したときにコールする関数
戻り値
なし
サンプルプログラム
アドレス10のデバイスに0を送るサンプルです。
#include <Arduino.h>
#include <Wire.h>
byte val = 0;
void setup() {
Wire.begin();
Wire.beginTransmission(10); //send to address 10
Wire.write(val); // send 1byte to que
Wire.endTransmission();
}
void loop() {}