NRF24L01+ 功率加强版
产品特性:
本模块采用国产射频芯片SI24R1,内部集成了所有与RF协议相关的高速信号处理部分,由于链路层完全集成在模块上,非常便于开发。自动检测和自动重发丢失的数据包,重发时间及重发次数可软件控制,自动存储未收到应答信号的数据包;在收到有效数据后,模块自动发送应答信号,无须另行编程;载波检测—固定频率检测,内置硬件CRC检错和点对多点通信地址控制数据包传输错误计数器及载波检测功能可用于跳频设置可同时设置六路接收通道地址,可有选择性的打开接收通道。SI24R1的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。
产品参数:
- 板载2.4G PCB天线,ISM频段,标准插针DIP 2.54mm间距接口,体积小巧,便于嵌入式应用。
- 支持六路通道的数据接收(一对六)
- 支持GFSK/FSK等通用调制方式
- 支持2Mbps/1Mbps/250Kbps 数据速率,可设不同的发射功率
- 多频点:126频点,满足多点通信和跳频通信需要,2400MHz~2525MHz,1MHz跳频步进
- 内部集成高PSRR的LDO
- 宽电源电压范围:1.9~3.6V,典型3.3V
- 平均发射电流低至25mA(7dBm)
- 接收灵敏度:-96dBm@250kbps
- 最高发射功率:+7±1dBm
- 采用四线SPI接口,速率可达10MHz
- 内部集成智能ARQ基带协议引擎
- 收发数据硬件中断输出
- 支持1bit RSSI输出
- 工作温度:-20℃~85℃
- 最佳传输距离:小于240米(250kbp空旷环境无遮挡无电磁干扰)可靠距离推荐在 30%-50%内使用。
使用说明:
序号 | 名称 | 方向 | 用途 |
1 | VCC | - | 供电电源,必须2.0 ~ 3.6V之间 |
2 | GND | - | 地线,连接到电源参考地 |
3 | CSN | 输入 | 模块片选引脚,用于开始一个SPI通信 |
4 | CE | 输入 | 模块控制引脚 |
5 | MOSI | 输入 | 模块SPI数据输入引脚 |
6 | SCK | 输入 | 模块SPI总线时钟 |
7 | IRQ | 输出 | 模块中断信号输出,低电平有效 |
8 | MISO | 输出 | 模块SPI数据输出引脚 |
VCC 脚接电压范围为2.0V~3.6V 之间,不能在这个区间之外,超过 3.6V 将会烧毁模块。推荐电压 3.3V 左右。除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机 IO口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。
注意事项:
与51系列单片机P0口连接时候,需要加10K的上拉电阻,与其余口连接不需要。其他系列的单片机,如果是 5V 的,请参考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联电阻分压,否则容易烧毁模块! 如果是3.3V的,可以直接和nRF24l01模块的IO口线连接,比如AVR系列单片机。模块的 SPI 速率最高能支持到10M,一般建议在 1M 或几百 K 的 SPI 速率即可。
无线模块为静电敏感器件,使用时请注意静电防护,特别是在干燥的冬季 尽量不用收去触摸模块上的器件,以免造成不必要的损坏。
无线模块推荐使用纹波小的直流电源,工作电压建议在 3.3V 工作。模块的接地要稳定可靠,地线尽量靠近电源总地。如使用开关电源的话,一定要加强退藕,以免开关电源的纹波和尖峰脉冲影响模块的工作特性。
模块采用 PCB 天线,此天线容易受外部线路影响,使用时,此天线底下和周围请不要走线路或摆放器件,可以的话最好挖空。 2.4G 频率比较高,各种材质均有一定的影响,一般的塑料影响不大,如有金属物体会产生比较明显的影响,此时建议使用 SMA 馈线来外接 SMA 天线。
实验原理:
1. 驱动NRF24L01无线通讯模块
具体操作:
1、打开IDE,点击 项目-加载库-管理库;
2、使用 RF24 来搜索,我们使用TMRh20的RF24库;点击点击 该库,再右下角 安装 即可;本例已经先行安装,参考流程即可
3、打开实例文件,
打开RF24-->GettingStarted
4、先另存为 接收方receive.ino;
再修改示例:只需修改两处
role角色为0,代表接收方;改为1,即发送方;
radioNumber=1;role=1;
修改完后另存为send。
arduino参考代码:
https://pan.baidu.com/s/1MNZV_nGoRm6sGStDz65rpg
5、链接硬件
https://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
参考的是上面这篇文章
我们安装的是TMRh20的RF24库,所以参考这一列安装,之前用 Arduino pin for RF24 Library,一直没收发成功,差点崩溃了,后面把引脚9 、10,对应改为 7、8,终于能收发了。
建议将杜邦线按照:Red/Orange/Yellow/Green/Blue/Violet/Gray的方式,参照与NRT24L01+先链接上;
根据所使用的库,再参照图,来进行实际的链接;
接线最考人耐心了,一定要仔细认真,之前接错了,一直没收发成功;像智能小车那样有拓展版做转接就省事多了;
我最终的链接是:
NRT24L01+ Nano
Black--------------------->GND
Red---------------------->VCC
Orange----------------->D7
Yellow------------------>D8
Green------------------>D13
Blue--------------------->D11
Violet------------------->D12
Gray--------------------->NC(不接)
6、结果:
7、疑问:
com 9显示异常,但收发正常,关掉com 9的电源,com 8也停止了,com 9通电,com 8马上能实时反馈数据;不知道是哪里的问题,有了解的可以在评论区交流下。
参考链接:
NRF24L01+ & Ardunio Nano
https://www.douban.com/note/620072271/
Arduino 2.4G通信实验 nRF24L01模块的简单例子
https://blog.csdn.net/ling3ye/article/details/53054959
GitHub资源:
nrf24L01+ Radio Library
https://github.com/kehribar/nrf24L01_plus
资料下载链接:https://pan.baidu.com/s/1b7VUz97y-J-SceRhfeMfQg 密码:9uev
https://www.cnblogs.com/learningbra/p/3682484.html
树莓派之RF24L01+
http://www.elecbench.com/%E6%A0%91%E8%8E%93%E6%B4%BE%E4%B9%8Brf24l01/
NRF24L01+ in Python
https://www.raspberrypi.org/forums/viewtopic.php?t=85504
新手如何快速搞通NRF24L01通信
https://blog.csdn.net/sinat_27105435/article/details/48782045
NRF24L01模块使用说明
https://wenku.baidu.com/view/2a4245347ed5360cba1aa8114431b90d6d858978.html