NRF24L01无线2.4G控制模块 
NRF24L01是一款工作在2.4-2.5GHz世界通用ISM频段的单片收发芯片, 使用4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单;输出功率、频道选择和协议的设置可以通过SPI接口设置极低的电流消耗,当工作在发射模式下发射功率为6dBm时电流消耗为9.0mA接受模式为12.3mA掉电模式和待机模式下电流消耗模式更低。
模块来源 
规格参数 
工作电压:1.9~3.6V
 供电电流:900~12.3mA
 最大数据传输率:2000 Kbps
 控制方式:SPI
 管脚数量:8 Pin(2.54mm间距排针)
硬件连接 
c
nRF24L01       开发板
1 GND          GND
2 VCC          3.3V
3 CE           D9
4 CSN          D10
5 SCK          D13
6 MOSI         D11
7 MISO         D12
8 IRQ          未连接 (可用于外部中断)1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
使用方法 
安装库
我们需要安装RF24库来方便地管理nRF24L01模块。在Arduino IDE中,你可以通过“工具”->“管理库…”来搜索并安装RF24库。
编写代码
c
/******************************************************************************
  * 测试硬件:ColorEasyDuino开发板
  * 版 本 号: V1.0
  * 修改作者: www.lckfb.com
  * 修改日期: 2024年04月11日
  * 功能介绍:
  *****************************************************************************
  * 开发板软硬件资料与相关项目软硬件资料官网全部开源
  * 开发板官网:www.lckfb.com
  * 技术支持常驻论坛,任何技术问题欢迎随时交流学习
  * 立创论坛:club.szlcsc.com
  * 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
  * 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10); // CE, CSN 引脚
const byte address[] = "00001"; // 管道地址
//模式选择
#define MADE 1  //1为发送模式  0为接收模式
void setup() {
  Serial.begin(9600);
  radio.begin(); // 初始化nRF24L01模块
  #if MADE  //如果是发送模式
    radio.openWritingPipe(address); // 打开管道用于发送
    radio.setPALevel(RF24_PA_MIN); // 设置功率级别
    radio.stopListening(); // 设置为发送模式
  #else     //如果是接收模式
    radio.openReadingPipe(1, address); // 打开管道用于接收
    radio.setPALevel(RF24_PA_MIN); // 设置功率级别
    radio.startListening(); // 设置为接收模式
  #endif
}
void loop() {
  #if MADE  //如果是发送模式
    const char text[] = "Hello World";
    radio.write(&text, sizeof(text)); // 发送数据
    Serial.print("发送 :");
    Serial.println(text);
    delay(1000); // 等待时间
  #else     //如果是接收模式
    if (radio.available()) { // 检测是否有数据
      char text[] = "";
      radio.read(&text, sizeof(text)); // 接收数据
      Serial.print("接收 :");
      Serial.println(text); // 通过串口输出接收到的数据
    }
  #endif
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55