将模块翻过来,看到它的背面,它有两排排针,如下图:
最上面两个排针,左边是电源输入引脚,可输入3V-3.6V的直流电,推荐是用3.3V。过来右边是电源地,GND,是电源负极。下来第二排两个排针,左边是CSN,右边是CE。下来第三排两个排针,左边MOSI,右边是SCK。最后一排两个排针,左边是IRQ,右边是MISO。
接下来给大家解释一下这些引脚对应的功能:
CSN,它是Chip Select Not的缩写,是接收端选择引脚, Not代表低电平有效。
CE是Chip Enable的缩写,是发射/接收状态选择引脚。
MOSI是Master Out Slave In的缩写,主出从入,是控制端输出,接收端输入引脚,通常简写成MO。
SCK是Serial Clock的缩写,是时钟信号脚。
IRQ是Interrupt Request的缩写,是中断请求脚,今天我们不会用到这个脚。
MISO是Master In Slave Out的缩写,主入从出,是控制端输入,接收端输出引脚,通常简写成MI。
单独的这个NRF24L01模块自己还不能完成通讯去收发数据,我们需要一个单片机通过编程给它设置,一个当做发射端,另一个当做接收端,这样才能用来一对一通讯收发数据。当然它也可以用来设置一对多通讯。
这样子的话我们就会需要两个NRF24L01模块,两个单片机。单片机我用Arduino pro mini,如下图:
上图中的这个小东西,它相当于一个小开发板,用它来控制设置NRF24L01模块,别人已经写有很多库了,我直接调用就可以,就不用去底层设置寄存器,不用什么都亲历亲为,可以省下很多时间,这对于初学者来说很容易上手,可以快速开发,这个就是用Arduino的好处。一会儿我们直接用别人写好的库,直接修改例程就得了。
好,看硬件连接,我简单画了个接线图,如下图:
Arduino和NRF24L01模块的连线,无论发射端还是接收端都是这样连。
看到下面发射端的接线图: