nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式,工作在100mw时电流为160mA,在数据传输方面实现相对WiFi距离更远,但传输数据量不如WiFi(掉电模式和空闲模式)使节能设计更方便。
下图为seeed模块
讯享网
首先将nRF24L01与seeed模块接线
| seeed | nRF24L01 |
|---|---|
| 3.3V | VDD |
| GND | GND |
| 9 | MISO |
| 10 | MOSI |
| 8 | SCK |
| 9 | MISO |
| 6 | CE |
| 7 | CSN |
| 5 | IRQ |
引脚CSN和CE可以连接到Arduino板的任何数字引脚,它们用于将模块设置为待机或活动模式,以及用于在发送或命令模式之间切换。最后一个引脚IRQ是一个不必使用的中断引脚。

首先,我们需要下载并安装RF24库,这使得编程变得简单。Arduino IDE 的库管理器中搜索nrf24,作者为TMRh20。
发射机代码
/* * Arduino Wireless Communication Tutorial * Example 1 - Transmitter Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(6, 7); // CE, CSN const byte address[6] = "00001"; void setup() {
radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.stopListening(); } void loop() {
const char text[] = "Hello World"; radio.write(&text, sizeof(text)); delay(1000); }
讯享网
接收机代码
讯享网/* * Arduino Wireless Communication Tutorial * Example 1 - Receiver Code * * by Dejan Nedelkovski, www.HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> RF24 radio(6, 7); // CE, CSN const byte address[6] = "00001"; void setup() {
Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.startListening(); } void loop() {
if (radio.available()) {
char text[32] = ""; radio.read(&text, sizeof(text)); Serial.println(text); } } 分别烧录即可。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/32866.html