Arduino与xbee模块点灯实验心得

Posted NEVERGUVEIP

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino与xbee模块点灯实验心得相关的知识,希望对你有一定的参考价值。

1.硬件:Seeeduino Stalker v3.0俩块,xbeeS1俩块,led一个,导线,电源,面包板

   软件:XCTU,Arduino1.8.2

2.xbee模块配置:恢复出场设置后

       主机xbee的    DH:1234,MY:5678

       从机xbee的    DH:5678,  MY:1234

(API为disabled,也就是AP模式(默认出厂设置),API模式以前用过,后来做过一个关于节点发现的实验后,就不好使了)

3.主机程序: 

int button_open =4;//开灯按钮连在数字端口4
int button_close =5; //关灯按钮连在数字端口5
char flag;//定义“向从机发送LED灯亮灭标志”的变量
void setup()
{
pinMode(button_open, INPUT); //设置按钮为输入模式
pinMode(button_close, INPUT);
Serial.begin(9600);//启动串口通信,波特率为9600b/s
}
void loop()
{
//如果亮灯按钮按下同时关灯按钮松开
if( digitalRead(button_open)==LOW&&digitalRead(button_close)==HIGH)
{
flag=‘a‘;
Serial.println(flag);//向从机发送灯亮标志
}
//如果关灯按钮按下同时亮灯按钮松开
if(digitalRead(button_close)==LOW&&digitalRead(button_open)==HIGH)
{
flag=‘b‘;
Serial.print(flag);//向从机发送灯灭标志
}
delay(200);//延时,等待数据发送成功
}

从机程序:

int ledpin=9;//LED灯连在数字端口9
int val; //定义“接受主机发来的LED灯亮灭标志”的变量
void setup()
{
pinMode(ledpin,OUTPUT);//设置LED灯为输出模式
digitalWrite(ledpin,HIGH);//初始化使LED灯熄灭
Serial.begin(9600);//启动串口通信,波特率为9600b/s
}
void loop()
{
if(Serial.available()>0) //查询串口有无数据
{
val=Serial.read();//读取主机发送的数据
if(val==‘a‘)//如果主机发送字符‘a‘,则点亮LED
{
digitalWrite(ledpin,LOW);//LED灯点亮
}
if(val==‘b‘)//如果主机发送字符‘b‘,则熄灭LED
{
digitalWrite(ledpin,HIGH);//LED灯熄灭
}
}
}

4.实验过程

    A.配置xbee时,只需配置DH和MY,然后在xctu的consoles界面测试一下,能互相接受到信息就行了。

     再配置xbee模块后,直接把配置好的xbee模块插进Stalker V3.0的xbee插孔上就行,不用想这为什么,为什么插上去就自己执行了呢,xbee是透传的,直接插上去就可以。

      B.把程序分别写进各自的StalkerV3.0.

      C.给主机的pin4接地pin5接电源,灯亮

         给主机pin4接电源pin5接地,灯灭

5.心得体会

  我知道了,xbee模块是透传的,配置好插上去就行。

  电池有充足的的电很重要。

  

 

以上是关于Arduino与xbee模块点灯实验心得的主要内容,如果未能解决你的问题,请参考以下文章

Raspberry Pi、Python、XBee 到 Arduino Xbee.write() 错误

STM32F401RCT6基于Arduino框架点灯程序

通过串行Arduino和XBee读取数据

用 arduino 切换 3 个双向通信通道的最佳方法

我想用arduino leonardo的串口即0脚和1脚连接XBEE传输数据,并由电脑接收,请问应该怎么实现。

如何使用arduino uno在一个数据包传输中向xbee路由器发送多个命令