借助XBee扩展板我们可以很方便地将XBee模块连接到Arduino上,XBee模块的工作原理也非常简单,它与Arduino之间其实就是通过串行接口(即Tx和Rx引脚)进行通信。对于简单的点对点通信来讲,只需要通过串行接口向XBee模块写数据就可以实现数据的发送;当XBee模块通过无线通道接收到数据时,通过读串行接口可以很方便地获得这些数据。
原理弄清楚之后,其实我们可以将XBee模块看成是Arduino的串口,通过相应的串口操作函数来实现数据的接收和发送。首先请按照Arduino XBee模块使用手册中的说明配置好你的两个XBee模块,然后将相应的跳线连接到XBEE一端:
这里我们使用一个最简单的工程来进行相应的实验:
int ledPin = 13;
int val;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// send data to another XBee module
Serial.print('A');
delay(1000);
// receive data from another XBee module
val = Serial.read();
if (-1 != val) {
if ('A' == val) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
}
}
该工程首先通过Serial.print()函数向XBee模块发送一个字母A,该字母会被XBee模块通过无线网络发送出去,并被另外一个XBee模块接收到。紧接着再通过Serial.read()函数从XBee模块读取从无线网络接收到的数据,如果是字母A的话,则点亮相应的发光二极管。
将该工程编译并分别下载到两个Arduino模块中,注意下载的时候不要连接XBee扩展板,这是因为XBee模块会占用串口,从而导致下载无法正确完成。
下载完成后将XBee扩展板连接到Arduino上,并分别给两者上电。这两个Arduino模块都会向对方发送字母A,然后从对方接收字母A,并对点亮数字I/O管脚13上连接的发光二极管。你可以试着将两个模块放在房间里的不同位置,来对XBee模块的传输性能进行测试。

No tags


鲸男与互动新媒体Whale’s Interactive » Blog Archive » Xbee Pro VS Arduino · 2007/12/23 at 5:25 PM
[...] 中文资料与指导请看Fla同学的Blog. [...]
zhang jie · 2009/01/13 at 4:57 PM
请问,如果想直接把Arduino Pro Mini (3.3V的)和XBee板子一起用应该怎么连接呢?哪里能找到XBee Shield的资料?我想看看需要怎么连接,谢谢。
Author comment by flamingoeda · 2009/01/16 at 5:57 PM
应该是连接几根线就可以了,原理图随后公布,着急的话告诉我你的邮件我发给你;-)
zhang jie · 2009/01/19 at 6:57 PM
您好,能发邮件给我么?谢谢:D
ursularzhangcn@yahoo.com.cn
我用干电池驱动arduino和XBee,电池很快就没电了。不知道您有否遇到过这种问题啊?
Jianlong · 2011/08/02 at 3:10 AM
我也遇到和楼上一样的问题,请指教!
chaijianlong248@gmail.com