我正在尝试使用两个xbees在计算机(协调器)和Arduino Mega(路由器)之间 Build 无线通信 .
以下是协调器配置:ZIGBEE COORDINATOR AT系列高:13A200和串口低:407B69E6
PAN ID: 1111
DH: 13A200
DL: 40813BFC (Rooter serial number low)
Baud Rate: 9600
这是路由器配置:ZIGBEE ROUTER AT串行高:13A200和串行低:40813BFC
PAN ID: 1111
DH: 13A200
DL: 407B69E6 (Coordinator serial number low)
Baud Rate: 9600
我正在使用Xbee Explorer Regulated将Xbee模块连接到电路板和USB explorer板以将xbee连接到计算机 . 我能够从Arduino到计算机进行通信 . 从Arduino IDE的串行监视器发送的所有数据都在XCTU的终端窗口中接收 . 如果我切换模块,我仍然可以进行通信 .
Arduino Code
#include <SoftwareSerial.h>
uint8_t pinRx = 4 , pinTx = 2; // the pin on Arduino
long BaudRate = 9600;
char GotChar, getData;
SoftwareSerial xbee(pinRx, pinTx);
void setup()
{
Serial.begin(9600);
Serial.println( "Welcome to the XBee Communication Test" );
Serial.print("BaudRate:");
Serial.println(BaudRate);
Serial.print(" Rx Pin#");
Serial.println(pinRx,DEC);
Serial.print(" Tx Pin#");
Serial.println(pinTx,DEC);
xbee.begin( BaudRate );
xbee.println("Setup Completed!");
}
void loop()
{
if (Serial.available())
{
GotChar = Serial.read();
// Send it to Computer
xbee.print(GotChar);
// print it to serial monitor
Serial.print(GotChar);
}
while (xbee.available()>0)
{
//Serial.println("Ohohoh");
getData = xbee.read();
Serial.print(getData);
// send it back
xbee.println(getData);
}
}
The problem
我无法将数据从计算机发送到arduino .
当我使用XCTU终端从计算机发送字符时,TX和RSSI LED在USB Explorer板上亮起 . 同样的事情发生在Arduino上,DOUT和RSSI指示灯点亮并且没有收到任何信息 . 我已经尝试将DH和DL设置为广播模式,使用0和FFFF作为协调器的值,但它没有解决问题 .
2 回答
我认为这个问题与布线有关,所以我仔细检查了我正在使用的电路 . 然后,正如TomLogic建议我尝试使用引脚12和13 Build 另一个串行通信 . 最后我让这两个模块正常工作!
协调器和路由器的配置是正确的,Arduino代码也是如此!引脚4不能与SoftwareSeria一起用作RX .
它只是来自你的波特率,你的Xbee在 57600 波特和你的arduino在 9600 波特进行通信 . 事实上,Xbee读取速度比Arduino慢,反之亦然,因此存在问题 .
Solution ,尝试将 both 放在Xbee和Arduino to 9600Baud 上 .
希望我能帮到你:)