Honeybee Zigbee无线通信讲解02--信道
信道是对无线通信中发送端和接收端之间的通路的一种形象比喻,对于无线电波而言,它从发送端传送到接收端,其间并没有一个有形的连接,它的传播路径也有可能不只一条,但是我们为了形象地描述发送端与接收端之间的工作,我们想象两者之间有一个看不见的道路衔接,把这条衔接通路称为信道。2.4G频段的Zigbee定义了16个信道,信道间隔为5MHz。
通道频率计算公式如下:
Fc=2405MHz+5(k-11)MHz,(k=11,12……26)
在2.4G频段下数据传输速率为250kb/s。
在Zigbee的通信中只有在同一个信道下收发双方才能正常通信,如果收发双方不在一个信道中就是喊破喉咙。。。对方也收不到。
这次我们使用三块Honeybee,分别是1,2,3号机,1,2号机分别工作在不同的信道不停往外发送数据。3号机进行接收,
1号机代码
#include <at128rfa1.h>
void setup()
{
Zigbee.begin(11);// 初始化Zigbee,定义信道为11
}
void loop()
{
Zigbee.beginTransmission(); // 启动传输
Zigbee.write("I'm one."); // 发送数据
Zigbee.endTransmission(); // 结束传输
delay(500); // 延时500毫秒
}
二号机代码
#include <at128rfa1.h>
void setup()
{
Zigbee.begin(26);// 初始化Zigbee,定义信道为26
}
void loop()
{
Zigbee.beginTransmission(); // 启动传输
Zigbee.write("I'm two."); // 发送数据
Zigbee.endTransmission(); // 结束传输
delay(500); // 延时500毫秒
}
接收端代码我们首先初始化到11信道,看看接收到的数据,然后定义到26信道,再看看接收到的数据,进行一下对比。
#include <at128rfa1.h>
void setup()
{
Zigbee.begin(11);// 初始化Zigbee,定义信道
Serial.begin(9600); // 启用串口,波特率9600
}
void loop()
{
if (Zigbee.available()>0) // 判断Zigbee数据接收缓冲区是否有数据
{
Serial.println();
Serial.print("Rx: ");
while(Zigbee.available())
Serial.write(Zigbee.read());// 读取缓冲区数据,通过串口输出。
}
}
惯例SHOW图~
把接收端在11和26信道之间切换,我们可以发现,在11信道是收不到26信道的信息的,在26信道同里也收不到11信道的信息。 一楼占座!很不错的入门教程{:soso_e142:}{:soso_e142:} thinkpad大特写呢,
这是什么型号呢? 哦W510,价格怎么样? wing 发表于 2014-9-3 12:32 static/image/common/back.gif
哦W510,价格怎么样?
貌似3000块~ 弘毅 发表于 2014-9-3 16:10 static/image/common/back.gif
貌似3000块~
是三万吧...........
页:
[1]