文档章节

pcDuino与Arduino通过xbee模块实现双灯互控

pc朵拉
 pc朵拉
发布于 2013/07/03 21:02
字数 380
阅读 1.4K
收藏 4

「深度学习福利」大神带你进阶工程师,立即查看>>>

xbee模块主要功能是实现无线数据通信,利用xbee模块分别与pcDuinoArduino连接,通过串口读写数据,可以轻松实现二者之间的数据传输。在pcDuino端按下开关按钮控制arduino端的LED灯亮,反之arduino端的开关则控制pcDuino端的LED灯。

Xbee模块

图片1

LED灯控制部分

图片2

原理图

图片3

线路连接:

1、通过T-board 连接pcDuinoxbee模块,T-board上的电平开关必须打到5V

图片4

图片5

2、Arduino部分

图片6

注意:xbee的波特率设置为9600

线路连好之后,编译运行程序代码。运行成功后,按下pcDuino这端的LED灯开关,红色LED灯亮

图片7

按下arduino这端的LED灯开关,绿灯亮

图片8

两个开关同时按下时

图片9

程序代码:

Code for pcDuino

#include <core.h>

#include "Serial.h"

#define led_pin  9

#define button_pin 10

unsigned char flag;

void setup()

 { 

 //Initialize serial and wait for port to open:

pinMode(led_pin,OUTPUT);

        pinMode(button_pin,INPUT);

   int rate = 9600;

   Serial.begin(rate); 

   while (!Serial) 

  {

     ; // wait for serial port to connect. Needed for Leonardo only

   } 

} 

void loop()

 { 

  if (Serial.available() > 0) 

{

                char receive = Serial.read();

                if(receive=='a')         flag++;

     if( (flag%2) )    digitalWrite(led_pin,HIGH);  //LED off

                else                       digitalWrite(led_pin,LOW);   //LED on 

   }

        if(digitalRead(button_pin)==LOW)

        {

delay(10);

if(digitalRead(button_pin)==LOW)

Serial.print('b');

                delay(200);

}

}

 

Code for arduino

#include <SoftwareSerial.h>

#define RxD 11

#define TxD 12

#define led_pin 9

#define button_pin 10

unsigned char flag;

SoftwareSerial mySerial(RxD,TxD);

void setup()

{

    pinMode(RxD, INPUT);

    pinMode(TxD, OUTPUT);

    pinMode(led_pin,OUTPUT);

    pinMode(button_pin,INPUT);

    mySerial.begin(9600);               // the Bee baud rate  

}

void loop()

{

    if(digitalRead(button_pin)==LOW)

    {

      delay(10);

      if(digitalRead(button_pin)==LOW)

      mySerial.print('a');

      delay(200);

    }

     if(mySerial.available())

    {

       char RX = mySerial.read();

       if(RX=='b') flag++;

       if(flag%2) digitalWrite(led_pin,HIGH);

       else       digitalWrite(led_pin,LOW);

    }  

}
pc朵拉

pc朵拉

粉丝 63
博文 87
码字总数 35246
作品 1
武汉
私信 提问
加载中
请先登录后再评论。
用vertx实现高吞吐量的站点计数器

工具:vertx,redis,mongodb,log4j 源代码地址:https://github.com/jianglibo/visitrank 先看架构图: 如果你不熟悉vertx,请先google一下。我这里将vertx当作一个容器,上面所有的圆圈要...

jianglibo
2014/04/03
4.4K
3
SQLServer实现split分割字符串到列

网上已有人实现sqlserver的split函数可将字符串分割成行,但是我们习惯了split返回数组或者列表,因此这里对其做一些改动,最终实现也许不尽如意,但是也能解决一些问题。 先贴上某大牛写的s...

cwalet
2014/05/21
9.8K
0
Promises/A 和 when() 实现--When.js

When.js 是 cujojs 的轻量级的 Promises/A 和 when() 实现,从 wire.js 的异步核心和 cujojs 的 IOC 容器派生而来。包含很多其他有用的 Promiss 相关概念,例如联合多个 promiss、mapping 和...

匿名
2013/02/15
7.5K
0
购物车开源模块--FishCart

FishCartSQL 是一个功能齐全的购物车开源模块,可以在里面增加一些自己喜欢的页面。里面有许多高级特性,如:用户记录、即时交易、多语言支持、信用卡处理和单服务吕部署多个在线商店,里面用...

匿名
2013/03/27
1.8K
0
Chrome页面自动刷新插件--smartF5

smartF5是一款chrome插件,用以实现监控页面资源,并自动刷新。 特别适合双屏情况下的DEMO开发,大大提高页面开发效率。 让你键盘上的F5键退休吧! 为什么选择smartF5 本插件具有以下特色: ...

YanisWang
2013/04/04
1.2W
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 教程 - 文件上传下载

在日常的开发工作中,基本上每个项目都会有各种文件的上传和下载,大多数文件都是excel文件,操作excel的JavaAPI我用的是apache的POI进行操作的,POI我之后会专门讲到。此次我们不讲如何操作...

Butterfly-Tri
39分钟前
27
0
mysql 事务日志 

Redo Log 1.redo分为Physical Redo Log与Logical Redo Log 2.用于在 crash recovery时已提交没有刷盘的事务(记录时间点为缓冲中页面修改完成,但还没有刷新到硬盘,即事务提交之前),如异常...

易野
41分钟前
11
0
phpstorm 主题颜色

个人比较喜欢 复制文件保存为 red.icls <scheme name="1337" version="142" parent_scheme="Default"> <option name="FONT_SCALE" value="1.0" /> <metaInfo> <property name="c......

chenhongjiang
51分钟前
15
0
Hystrix核心原理和断路器源码解析

Hystrix运行原理 构造一个HystrixCommand或HystrixObservableCommand对象 执行命令。 检查是否已命中缓存,如果命中直接返回。 检查断路器开关是否打开,如果打开,直接熔断,走fallback逻辑...

xiaolyuh
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部