- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
zigbee的cc2530超声波测距
(一)ZigBee通过超声波传感器水深采集
本模块主要实现通过单个zigbee终端节点驱动超声波模块采集液位深度信息回传到PC机上显示。
1.CC2530介绍
本创新项目使用的Zigbee芯片为CC2530,它集成了业界领先的高性能RF收发器、增强型工业标准的8051微控制器,具有接收灵敏度高和抗干扰性强的特点。CC2530根据需要有四种不同FLash版本:CC2530F32/64/128/256,本次选择Flash为256K的片子。它具有多种运行模式以及短的模式切换时间,保证了其超低功耗的特点。CC2530的结构大致可以分为三块:CPU和存储模块、电源时钟及外部设备模块、无线模块(图1-1为CC2530最小系统)。主要特点如下:
(1).高性能、低功耗的8051微控制器内核;
(2).适应2.4 GHz IEEE 802.15.4的RF收发器;
(3).电源电压范围宽(2.0~3.6 V);
(4).看门狗、电池监视器和温度传感器;
(5).具有8路输入 8~14位ADC;
(6).2个支持多种串行通信协议的 USART, 1个红外发生电路;
(7).个通用的16位和2个8位定时器;
(8).高级加 密标准(AES)协处理器;
(9).1个通用 I/O 引脚,2个具有20 mA的电流吸收或电流
供给能力;
(10).小尺寸QLP-40封装,6 mm×6 mm。
图2-1CC2530最小系统
2超声波测距模块简介
超声波模块使用的是US-100,本模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
主要技术参数:
超声波测距系统通过zigbee模块的cc2530芯片向通过串口超声波探头的引脚TX发送一个0x55的指令,超声波探头发射超声波,超声波向前传播。当超声波遇到障碍物时会反射回来,进行相关数据处理,RX引脚输出,将测得的距离的数据发送给zigbee模块。
为了验证测得数据是否准确,我们通过串口将RX输出的数据进行显示(图2-1为实测图)。
图2-1串口测试超声波模块
本模块有两种测距方式:电平触发测距,串口触发测距。我们选择的是串口触发测距方式。
在模块上电前,首先插上模式选择跳线上的跳线帽,使模块处于串口触发模式。在此模式下只需要在Trig/TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。 输出的距离值共两个字节,第一个字节是距离的高8位(HDate),第二个字节为距离的低8位(LData),单位为毫米。即距离值为(HData*256 +LData)mm(图2-1为US-100超声波模块时序图,图2-2为超声波模块实物图)
图2-1 US-100超声波模块时序图
图2-2 超声波测距模块实物图
系统的设计思路 :
图2-3系统框图
3.实验测试代码程序
#include ioCC2530.h
#include string.h
#define uint unsigned int
#define uchar unsigned char
#define RX0 P0_2
#define TX0 P0_3
//函数声明
void Delayms(uint xms); //延时函数
void InitUart(); //初始化串口
void UartSend_String(char *Data,int len);
char temp;
char flag=0;
int data1,data2,data;
char Txdata[5]; //存放数据
char str[5];
/****************************
延时函数
*****************************/
void Delayms(uint xms) //i=xms 即延时i毫秒 (16M晶振时候大约数,32M需要修改,系统不修改
文档评论(0)