猫言猫语

严以律己·宽以待人·自强不息·知行合一

2 块 Arduino 开发板间 I2C 通信测试

| 2 块 Arduino 开发板间 I2C 通信测试已关闭评论

我们使用 Arduino Uno R3 作为 Master,Arduino Nano R3 作为 Slave,只要 2 根线:

Uno 的 A4 和 Nano 的 A4 连接
Uno 的 A5 和 Nano 的 A5 连接

Uno 的完整代码:

#include 

void setup() {
  Wire.begin();
}

byte x = 0;

void loop() {
  Wire.beginTransmission(8);
  Wire.write("x is ");
  Wire.write(x);
  Wire.endTransmission();

  x++;
  delay(500);
}

Nano 的完整代码:

#include 

void setup() {
  Wire.begin(8);
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);
}

void loop() {
  delay(100);
}

void receiveEvent(int howMany) {
  while (1 < Wire.available()) {
    char c = Wire.read();
    Serial.print(c);
  }
  int x = Wire.read();
  Serial.println(x);
}

程序运行后,使用 9600 的波特率访问 Nano 的串口,即可看到输出提示:

x is 0
x is 1
x is 2
...

这些字符都是从 Uno 上传过来的

评论已关闭。