nRF24L01 介绍:
nRF24L01是一款工作在 2.4~2.5GHz 世界通用ISM频段的单片无线收发器芯片,输出功率、频道选择和协议的设置可以通过SPI接口进行设置。有极低的电流消耗,当工作在发射模式下发射功率为-6dBm时电流消耗为9.0mA,接收模式时为12.3mA。掉电模式和待机模式下电流消耗更低。
nRF24L01参考数据:
- 供电电压:1.9 V~3.6V;
- 最大发射功率:0 dBm;
- 最大数据传输率:2000 kbps;
- 发射模式下电流消耗(0dBm时):11.3 mA;
- 接收模式下电流消耗(2000kbps):12.3 mA;
- 接收模式数据传输率为1000kbps下的
- 灵敏度:-85 dBm;
- 掉电模式下电流消耗:900 nA。
淘宝上面有两种nRF24L01模块,一种是单纯的nRF24L01模块,号称传输距离250m的,几块钱就有交易;另外一种是NRF24L01+PA+LNA模块,包含放大,号称可以传输1000m,价格几十块。实际距离视地形和障碍物而定,是否够远只能通过试用确定。
单纯nRF24L01模块做示例:
此模块是使用SPI方式连接,在标准SPI口基础增加CE和CSN引脚:
nRF24L01 Arduino UNO
VCC <-> 3.3V
GND <-> GND
CE <-> D9
CSN <-> D10
MOSI<-> D11
MISO<-> D12
SCK <-> D13
IRQ <-> 不接
还有就是nRF24L01属于对传模块。每块芯片既是发射器,也是接收器。所以一般来说,要使用两块nRF24L01+两块Arduino才能进行测试。
实验1
将Sender机A0的AD转换值无线发送到Receiver机,Sender机(A0端与电源两端接一个电位器,阻值随意,一般1k~100k均可)
原理图如截图:
代码:
首先需要安装Mirf库,可以在https://playground.arduino.cc/InterfacingWithHardware/Nrf24L01下载或者本文附件下载。
实验2
将上述的数据绘图表。修改一下输出格式,然后用现成的串口图表软件显示出来。详见附件内容操作说明文档。
上位机:
直接用现成软件比如这个串口猎人。配置如图。依照图片顺序配置成截图一样即可。
附件内容截图: