做遥控小车或者想给项目加个无线调试口,很多人一上来就选WiFi或蓝牙。其实在室内、低速率这类场景,一个nRF24L01就够用了:它工作在2.4GHz频段,带板载天线,标称传输距离几十米,一对几块钱,功耗还低。这篇文章把接线和收发逻辑一次讲清楚。

八个引脚,先认清再动手
nRF24L01模块一侧排着一排八个引脚。除了VCC和GND,剩下CE、CSN、SCK、MOSI、MISO、IRQ都是跟主控通信用的:CE是使能脚,拉低进待机、拉高开始收发;CSN是SPI片选;SCK是SPI时钟;MOSI负责写数据、MISO负责读;IRQ是中断输出,数据收完了会拉低。
模块上有16MHz晶振,供电只能给3.3V,电流峰值几十毫安。引脚排布紧凑,不同厂家丝印略有差异,入手先对照官方图确认VCC和GND位置,别接反。想做一对多点或加密跳频玩法,这八个脚后面都用得上。

双机怎么收发:一对模块套路固定
最省事的用法是设一块当发送机、一块当接收机。这种2.4G无线模块是半双工,收发不能同时做,所以常用做法是发完等接收端回一个ACK确认。两块板子都接好VCC、GND和SPI,各自初始化无线库,配置成同一组写读管道,发送端把要传的数据打包写出去,接收端在管脚上监听,拿到就读取打印。
地面遥控、双车跟随、传感器数据回传,都是这套逻辑。想双向对话,就把两块都配成既能读又能写,靠地址区分方向就行。
代码要点和三个高频坑
网上流传的例程大多是MiRF或RadioHead库。RadioHead用得最多,发送端用RH_RF24,初始化后send()发出、waitPacketSent()等它发完;接收端用available()查询、有数据就recv()读出来。接线对应错很容易把模块搞坏,尤其VCC最高只能3.3V,用Arduino的3.3V引脚供电最稳,别贪省事直接怼5V。
第二个坑是SPI要对号入座:MOSI、MISO、SCK要和主控的SPI脚一一对应,CSN、CE随便选两个数字脚但库里要设对。第三个是距离,板载天线有方向性,隔墙会明显变差,想加远就换带PA+LNA的版本并外接拉杆天线。
如果只是几米内的点对点控制,nRF24L01性价比确实高。把它和树莓派、ESP32组合,还能搭出遥控机械臂或者双车编队。无线这块绕开供电和SPI两个坑,基本就能稳跑。


隔墙信号确实掉得凶,后来换了带天线的PA版才稳,室内跨两个房间没问题
CE和CSN捏不准引脚,按你写的数字脚设一下就行了,RadioHead库跑起来很顺
做双车跟随就是这套,一块发一块收,ACK回个状态灯一亮就知道连上了
供电只能3.3V这个太重要了,我第一次手贱怼5V,模块直接烫手报废,血泪教训