Arduino/通信/I2C通信
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* I2C通信 [#c4117b20]
I2C通信は、1台の親機(マスタ)が多数の子機(スレーブ)とデー...
親機と子機は3本の線(SCL(Arduinoではアナログピン5)、SDA(Ar...
1台のArduinoに入出力装置を接続する場合には、Arduinoがマス...
2台以上のArduinoがある場合に、一方がマスタ、他方がスレー...
** プログラム [#ddb0c11b]
- 準備
ArduinoでI2C通信を使うには、Wire.hをインクルードする。
#include <Wire.h>
setup()の中などで、I2Cを使うことを宣言する。マスタならば、
Wire.begin();
スレーブならば、
Wire.begin( address );
を実行する。addressは8から119まで(16進数で0x08から0x77ま...
- マスタからスレーブへの送信例
-- マスタ側のプログラム(例えば、loop()中などに書く)
byte data;
String string;
byte buffer[];
Wire.beginTransmission( address );
Wire.write( data );
Wire.write( string );
Wire.write( buffer, length );
Wire.endTransmission();
Wire.write()の()内には、byte型の数、文字列、または、byte...
-- スレーブ側のプログラム~
setup()などに
Wire.onReceive( received );
ただし、receivedは次に書く受信処理のための関数の名前。
void received( int length ){
while( Wire.availabel() ){
byte c = Wire.read();
}
...
}
-スレーブからマスタへの送信例
-- マスタ側のプログラム(例えば、loop()中などに書く)
Wire.requestFrom( address, length );
while( Wire.available() ){
byte c = Wire.read();
}
-- スレーブ側のプログラム~
setup()などに
Wire.onRequest( requested );
ただし、requestedは次に書く受信処理のための関数の名前。
byte data;
String string;
byte buffer[];
void requested( ){
Wire.write( data );
Wire.write( string );
Wire.write( buffer, length );
}
終了行:
* I2C通信 [#c4117b20]
I2C通信は、1台の親機(マスタ)が多数の子機(スレーブ)とデー...
親機と子機は3本の線(SCL(Arduinoではアナログピン5)、SDA(Ar...
1台のArduinoに入出力装置を接続する場合には、Arduinoがマス...
2台以上のArduinoがある場合に、一方がマスタ、他方がスレー...
** プログラム [#ddb0c11b]
- 準備
ArduinoでI2C通信を使うには、Wire.hをインクルードする。
#include <Wire.h>
setup()の中などで、I2Cを使うことを宣言する。マスタならば、
Wire.begin();
スレーブならば、
Wire.begin( address );
を実行する。addressは8から119まで(16進数で0x08から0x77ま...
- マスタからスレーブへの送信例
-- マスタ側のプログラム(例えば、loop()中などに書く)
byte data;
String string;
byte buffer[];
Wire.beginTransmission( address );
Wire.write( data );
Wire.write( string );
Wire.write( buffer, length );
Wire.endTransmission();
Wire.write()の()内には、byte型の数、文字列、または、byte...
-- スレーブ側のプログラム~
setup()などに
Wire.onReceive( received );
ただし、receivedは次に書く受信処理のための関数の名前。
void received( int length ){
while( Wire.availabel() ){
byte c = Wire.read();
}
...
}
-スレーブからマスタへの送信例
-- マスタ側のプログラム(例えば、loop()中などに書く)
Wire.requestFrom( address, length );
while( Wire.available() ){
byte c = Wire.read();
}
-- スレーブ側のプログラム~
setup()などに
Wire.onRequest( requested );
ただし、requestedは次に書く受信処理のための関数の名前。
byte data;
String string;
byte buffer[];
void requested( ){
Wire.write( data );
Wire.write( string );
Wire.write( buffer, length );
}
ページ名: