我们使用 Arduino Uno R3 作为 Master,Arduino Nano R3 作为 Slave,只要 2 根线:
Uno 的 A4 和 Nano 的 A4 连接
Uno 的 A5 和 Nano 的 A5 连接
Uno 的完整代码:
#include <Wire.h> 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 <Wire.h> 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 上传过来的