xBee将Arduino与Arduino通信

问题描述 投票:0回答:4

我的xBee S1 Pro模块有一个非常奇怪的问题。 我使用XCTU软件进行配置。 我将一个Arduino设置为接收数据,另一个设置为传输。 当我使用XCTU软件发送一些测试框架时,它可以工作,接收器获取数据。 但是,如果我想让我的arduinos交流它的工作量,那是非常重要的。 我认为模块配置正确,因为PC-> Arduino可以工作。 我将提供草图,以便您告诉我出了什么问题

reciver

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);
}

怎么了? 有任何想法吗?

arduino communication xbee zigbee
4个回答
1
投票

我将检查与Xbee的连接,即确保RX实际连接到DOUT,TX确保连接到DIN。 同样,如果您要发送实际的“帧”,则听起来好像您正在api模式下运行xbees,因此您需要做更多的事情,然后只需发送“数据”即可使其在串行直通模式下运行。

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


0
投票

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

如果您共享正在使用的arduino板和屏蔽,那将是很好的。


0
投票

所以首先是第一件事...如果这些xBees具有不同的波特率的独立密码,那么该死的事情就会发生。 还有这些命令模式(AT或API)是什么? 出厂默认设置 ? 接受AT命令来更改这些命令? (默认情况下,您处于AT模式)

打开一个串行程序(我将coolTerm用于OS X)。 确保正确设置这些步骤。

一旦知道这些发送器正在使用相同的波特率,密码等进行对话,就可以通过简单的串行读写将这些发送器连接到RX / TX引脚,然后确保将代码上传到Arduino。


0
投票

该代码似乎正确,但请确保您要发送的内容。 Xbees只能发送和接收8位数据。 首先发送一个已知的数据字节,例如a = 100; 并查看此数据是否完美接收。

© www.soinside.com 2019 - 2024. All rights reserved.