現状の機器構成は以下のようになっています。
Mac#1 -> Arduino+自作I2C Shield for master -> 自作I2C Shield for slave -> Mac#2
ここでは贅沢にMacを2台使いましたが、PC/MacでUSBポートが2つ使えればそれで構いません。ハードの初期テストは以下のようにやりました。
slave側のスケッチはシリアルプロッタでSCL, SDAを観測しているだけです。
const byte SCL_I = 13;//ピンの定義。SCLは入力固定。
const byte SDA_I = 12;//ピンの定義。Arduinoの外部ShieldにMOS FETを使った回路を載せて双方向を実現している。スケッチでは入力・出力を分けて記述する。こちらは入力。
const byte SDA_O = 11;// こちらは出力。’0’だとhi-z、’1’だとlowになる。このスケッチでSDAは出力しないので’0’でhi-z、つまりSDAのレベルはmasterに依存する。
byte SCL_V = 0;
byte SDA_V = 0;
void setup() {
Serial.begin(9600);
pinMode(SCL_I, INPUT);
pinMode(SDA_I, INPUT);
pinMode(SDA_O, OUTPUT);
digitalWrite(SDA_O, 0);// ここではSDAをhi-zにしておく。SDA_Iのレベルはmaster側の出力に依存する。
}
void loop() {
SCL_V = digitalRead(SCL_I);
SDA_V = digitalRead(SDA_I);
Serial.print(SCL_V+2);// SDAを0 or 1, SCLを2 or 3の位置に表示するため2を加えている
Serial.print(“,”);
Serial.print(SDA_V);
Serial.println(“”);
}
ここまで