- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NRF24L01无线通信模块1、简介
nRF24L01是由NORDIC生产的工作在2.4GHz?2.5GHz的ISM频段的单片无线收发器 芯片。无线收发器包括:频率发生器、增强型“SchockBurs俨模式控制器、功率放大器、晶体 振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI接口进行设置。 几乎可以连接到各种单片机芯片,并完成无线数据传送工作。
极低的电流消耗:当工作在发射模式下发射功率为OdBm时电流消耗为11.3mA ,接 收模式时为12.3mA,掉电模式和待机模式下电流消耗更低。
2、特点
小体积,QFN20 4x4mm封装
增强型“ShockBurs/工作模式,硬件的CRC校验和点对多点的地址控制
4线SPI通讯端口 ,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单
可通过软件设置工作频率、通讯地址、传输速率和数据包长度
MCU可通过IRQ引脚快判断是否完成数据接收和数据发送3、参数
宽电压工作范围,L9V?3.6V,输入引脚可承受5V电压输入
工作温度范围,-40℃?+80C
工作频率范围,2.400GHz?2.525GHz
发射功率可选择为OdBm、-6dBm -12dBm和-18dBm
数据传输速率支持1Mbps、2Mbps[2]低功耗设计,接收时工作电流12.3mA, 0dBm功率发射时11.3mA,掉电模式时仅 为 900nA
126个通讯通道,6个数据通道,满足多点通讯和调频需要
数据包每次可传输1?32Byte的数据5、应用前景
无线鼠标键盘 游戏机操纵杆
无线门禁
无线数据通讯
安防系统
遥控装置
遥感勘测
智能运动设备
工业传感器
玩具.考前须知
务必正确连接,否那么无线模块会被烧毁!
.实物图片与接口
8、实验
实验目的:熟悉无线模块的应用。
实验性质:基础实验
实验学时:4学时
实验器材:NRF24L01模块2个、控制板2个、BigFish扩展板2个、直流电机1个、 miniUSB数据线,上位机终端2台。
无线数据传输
按下列图所示连接电路,NRF24L01的插针与BigFish左侧的扩展座对齐。错误的连接会 导致NRF模块损坏。
NRF24L01 扩展库?.\NRF24L01 无线通信模块\libraries\Mirf 拷贝到 arduino 的 libraries 中。
启动arduino,可以发现,在Example中增加了 Mirf的例程,翻开File-Examples- Mirf,分别将将例程ping_client (接收端)和ping_server (发射端)uploading到两个控制板 中,在两台上位机终端中分别翻开接收端和发射端的Serial Monitor,在发射端的Serial Monitor中输入一串字符后发送,在接收端中应显示相同的字符。下列图所示:
发射端接收端
发射端
接收端
本实验例程源代码如下: ping_server
#include SPI.h
#include Mirf.h
include nRF24L01.h
#include MirfHardwareSpiDriver.h
void setup()
(SeriaLbegin(9600);
Mirf.spi = MirfHardwareSpi;Mirf.init();
Mirf.setRADDR((byte *)nserv 1 ”);Mirf.payload = sizeof(char);
Mirf.channel= 10;Mirf.configO;
Serial.println(nListening...n);
)
void loop()
(byte data[Mirf.payload];
if(!Mirf.isSending() Mirf.dataReadyO) (Mirf.getData(data);
Serial.print((char)data[O]);)
ping client
#include SPI.h
#include Mirf.h
include nRF24L01.h
#include MirfHardwareSpiDriver.h
char data;
void setup()
(Serial.begin(9600);
Mirf.spi = MirfHardwareSpi;Mirf.init();
Mirf.setRADDR((byte *)nclieln);Mirf.payload = sizeof(char);
Mirf.channel = 10;Mirf.configO;
)
void loop()
void serialEvent()
|while (Serial.available())
(data=(char)Serial.read();
原创力文档


文档评论(0)