xBee通信Arduino至Arduino

xBee通信Arduino至Arduino,arduino,communication,xbee,zigbee,Arduino,Communication,Xbee,Zigbee,我的xBee S1 Pro模块有一个非常奇怪的问题。我使用XCTU软件来配置它们。我将一个Arduino设置为接收数据,另一个设置为传输数据。当我使用XCTU软件发送一些测试帧时,它工作了,接收器获取数据。但是如果我想让我的arduinos沟通,那就没用了。我假设模块配置正确,因为PC->Arduino可以工作。所以我会提供草图,这样你就可以告诉我出了什么问题 接受者 void setup() { pinMode(13, OUTPUT); Serial.begin(9600); } v

我的xBee S1 Pro模块有一个非常奇怪的问题。我使用XCTU软件来配置它们。我将一个Arduino设置为接收数据,另一个设置为传输数据。当我使用XCTU软件发送一些测试帧时,它工作了,接收器获取数据。但是如果我想让我的arduinos沟通,那就没用了。我假设模块配置正确,因为PC->Arduino可以工作。所以我会提供草图,这样你就可以告诉我出了什么问题

接受者

void setup()
{
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  if(Serial.available() > 0){
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(13, LOW);
    Serial.print("recived some data: ");
    Serial.println(Serial.read());
    Serial.flush();
  }
}
现在是发送者

void setup()
{
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  Serial.println("data");
  Serial.flush();
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(4000);
}

怎么了?有什么想法吗?

您正在使用相同的串行端口与XBee和USB进行通信。这就是问题所在。您需要设置另一个串行端口,而不是用于与XBee通信的USB端口


如果您共享正在使用的arduino板和屏蔽,这将是一件好事。

我将检查Xbee的连接,即确保RX实际连接到DOUT,TX连接到DIN。此外,如果您发送的是实际的“帧”,那么听起来像是在api模式下运行XBEE,因此您需要做更多的工作,然后只发送“数据”,您希望它在串行传递模式下运行


最后要检查的一件事是,如果您使用的是arduino Leonardo或Micro,则硬件串行端口是Serial1而不是Serial。

因此,第一件事是首先。。。如果这些Xbee在不同的波特率下有不同的密码,狗屎就要发生了。还有,这些是什么命令模式(AT或API)?出厂默认设置?是否接受AT命令来更改这些?(默认情况下,您处于AT模式)

打开一个串行程序(我用于OSX)。确保这些步骤的设置正确


一旦你知道这些发射机正在以相同的波特率、密码等通话。。。在通过简单的串行读写将这些变送器连接到RX/TX引脚之前,确保已将代码上载到Arduinos

代码似乎是正确的,但请确保您要发送的内容。XBEE只能发送和接收8位数据。 首先发送一个已知字节的数据,如a=100;看看这些数据在那里接收是否完美