1

主板是 Arduino Uno,从机是 Arduino Yun。我让它们都使用一块板的 A4 和 A5 连接到另一块板上的 A4 和 A5 引脚。它们都单独供电,但共享相同的接地,如下图所示。

电路板设置

主从代码如下。如果从板未通电,则主机知道它无法与从板通信,并且在从板通电Loop之前不会打印出来。这表明主人知道奴隶。

然而,从机永远不会从主机接收到这个信号。receiveEvent永远不会被调用。

我这样做是因为我已经用完了主机上的引脚,并希望从机控制一个占用多个引脚的 LCD 显示器,我相信你们都知道。

任何帮助都会很棒,谢谢。

掌握

#include <Wire.h>

#define SLAVE_ADDRESS 0x9

void setup() {
  Serial.begin(9600); 

  Wire.begin();

  delay(1000);
}

void loop() {
    Wire.beginTransmission(SLAVE_ADDRESS);
    Wire.write('T');
    Wire.endTransmission();
    Serial.println("Loop");
    delay(1000);
}

奴隶

#include <Wire.h>

#define SLAVE_ADDRESS 0x9

void setup() {
  Serial.begin(9600); 

  delay(1000);

  Wire.begin(SLAVE_ADDRESS);
  Wire.onReceive(receiveEvent);

  Serial.println("Setup");
}

void loop() {
//  Serial.println("Loop");
}

void receiveEvent(int howMany){
  Serial.println("Receive event");

  while (Wire.available() > 0)
  {
    char c = Wire.read();
    Serial.println(c);
  }
}

4

1 回答 1

1

也许你应该考虑一下接线。
您的 Yun 正在使用不同的布局,请参阅:http: //forum.arduino.cc/index.php?topic
=191974.0 如果 UNO 是 R3 布局,据我所知,您可以使用 AREF 上方的引脚。检查您的 Arduino 的确切引脚。

于 2016-01-01T18:40:57.680 回答