如何使用nRF24L01收发器模块启用Arduino无线通信

电子说

1.3w人已加入

描述

简介

今天世界上几乎所有的沟通都是无线(至少从最终用户的角度来看)。你可以在各种应用中找到某种无线通信,如电视遥控器,手机,电脑,玩具,汽车等。

我不想进入无线通信的详细信息,但您可以在此处找到相关信息:无线通信:简介,类型和应用。

我们已经看到了一些无线电子枢纽中基于通信的项目,使用蓝牙,红外,射频(射频)和WiFi(IEEE 802.11)等不同技术实现。

但是在这个项目中,我将使用nRF24L01收发器IC实现基于RF的无线通信项目。如果你还记得,我在早期的几个项目中使用434MHz射频发射器和接收器模块实现了射频通信。

这两个射频模块之间的主要区别在于它们的工作频率。 nRF24L01使用2.4GHz RF频率,而早期的RF模块使用434MHz RF频率。

它们之间还有另一个重要区别:在434MHz射频模块中,我们有两个独立的模块;一个用于传输(发送器),另一个用于接收(接收器)。但是nRF24L0是一个收发器IC,即发送器和接收器都集成在同一个IC上。

关于nRF24L01收发器IC的简要说明

nRF24L01是Nordic Semiconductor开发的单芯片RF收发器IC。它在免许可证的2.4GHz ISM频段(ISM - 工业,科学和医疗)中运行,支持250kbps,1Mbps和2Mbps的数据速率。

对于数据速率250kbps和1Mbps,信道带宽约为1MHz。因此,如果您的数据速率限制在250kbps或1Mbps,则最小和最大工作频率为2400MHz和2525MHz,最多可以实现126个RF通道。

2Mbps数据速率mote,RF信道带宽应为2MHz或更高,以确保不重叠。

Arduino

nRF24L01 IC中有一项名为MultiCeiver的特殊功能。此功能使每个RF通道具有一组6个唯一的寻址数据管道,以便每个模块可以与同一RF通道中的其他6个模块进行通信。

即将实施nRF24L01 IC,您只需要一个16MHz晶体振荡器,其支持电路和天线。要使用nRF24L01模块设计无线通信系统,您只需要一个微控制器,它通过串行外设接口(SPI)连接。

nRF24L01 IC的重要特性

超低功耗运行(26μA待机I模式,900nA断电模式)

带微控制器的SPI接口

集成射频发射器,接收器和合成器

工作电压为1.9V - 3.6V

输入引脚可以承受5V

有关nRF24L01的更多信息,请参考数据表。

nRF24L01收发器模块

使用nRF24L01 IC,几家制造商开始开发nRF24L0收发器模块板包含用于实现无线电系统的必要组件和引脚。

nRF24L01收发器模块板通常由nRF24组成L01收发器IC,16 MHz晶振,天线走线(在PCB上),用于通信和电源的引脚以及一些无源元件。

以下是典型的图像nRF24L01收发器模块板现已上市。

重要提示:上述模块几乎全部最新的nRF24L01收发器模块使用nRF24L01 + IC。它是nRF24L01 IC的高级版本,事实上,所有讨论都是前面部分关于nRF24L01 + IC。

nRF24L01收发器模块上的组件

下图显示了nRF24L01收发器模块板上的组件。

引脚配置nRF24L01收发器模块

进入nRF24L01收发器模块的引脚配置,它有8个引脚。它们是VCC,GND,MOSI,MISO,SCK,IRQ,CE和CSN。

VCC:电源引脚。只能给出3.3V。

GND:电源的GND引脚。

SCK: SPI时钟引脚。

MOSI: SPI从数据输入引脚。

MISO: SPI从数据输出引脚。

IRQ:低电平有效中断引脚。

CE:芯片启用引脚。

CSN: SPI芯片选择引脚。

将nRF24L01收发器模块与Arduino连接

如前所述,nRF24L01收发器模块通过SPI接口进行通信。因此,为了将nRF24L01收发器模块与Arduino接口,您需要使用Arduino板的SPI引脚。

由于nRF24L01是收发器模块,因此您只能在通信的一端使用一个nRF24L01收发器模块来发送和接收数据。

因此,在在这个项目中,我将使用nRF24L01收发器模块实现两个电路。在第一个电路中,我将向您展示如何使用两个nRF24L01收发器模块在两个Arduino板之间启用无线通信,其中一个Arduino-nRF24L01收发器模块对充当发送器,而另一个Arduino-nRF24L01收发器模块对充当接收器

进入第二个电路,我将使用nRF24L01收发器模块的收发器选项,并将Arduino-nRF24L01收发器模块对同时用作发送器和接收器。

但在继续使用Arduino nRF24L01收发器模块接口之前,您需要做一件重要的事情。

nRF24L01收发器模块适配器

如果您注意到nRF24L01收发器模块,则引脚不是面包板友好的,直接连接导线将不是理想的设置。

要解决此问题,您有两种选择。首先是制作一个小型穿孔板,用于将nRF24L01收发器模块插入顶部,并在底部安装面包板友好引脚。

第二个选择是购买适配器nRF24L01收发器模块,如下图所示。

如您所见,nRF24L01收发器模块的适配器包含用于插入nRF24L01收发器模块的母头和相应的公头,用于连接其他电路板,如Arduino。

nRF24L01收发器模块适配器上还有一个3.3V稳压器IC,以便您可以为适配器提供5V电源(仅适用于带3.3V稳压器的适配器,而不是直接连接到nRF24L01收发器模块本身)。

所需组件

Arduino UNO x 2

nRF24L01收发器模块x 2

操纵杆

TowerPro SG90伺服电机

LED

按钮

1KΩ电阻器

使用nRF24L01收发器模块的简单Arduino无线通信

电路图

Arduino

连接

以下是Arduino UNO之间的连接和发送器端的nRF24L01模块。

nRF24L01 - Arduino

VCC - 3.3V

GND - GND

MOSI - 11

MISO - 12

SCK - 13

CE - 9

CSN - 10

因为我在接收器端使用了Arduino UNO,所以我使用了相同的连接。如果您正在使用Mega等其他Arduino板,请检查SPI引脚。

代码

发送器代码

接收器代码

注意:两个Arduino板之间的双向无线通信将很快更新。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分