如何使用NRF24L01收发器模块在两个Arduino板之间进行无线通信

电子说

1.2w人已加入

描述

步骤1:NRF24L01功能和规格

NRF24L01无线收发器模块的功能:

žCost(对于类型版本,费用在1 $到3 $之间)

žRange

žAvailability

ž易于使用

NRF24L01无线收发器模块的类型:

NRF24LO1有两种类型:

žNRF24L01具有天线(在开放空间中大约为公里)

žNRF24L01(无天线)(在开放空间中大约为50米)

NRF24L01无线收发器模块的应用:

ž无线家庭自动化

žDrones远程控制

ž远程传感器,用于温度,压力,警报等

ž机器人控制和监视

NRF24L01无线收发器模块的功耗:

ž此模块的功耗在传输过程中仅为12mA左右

ž模块的电压范围是1.9至3.6V

第2步:观看视频以了解更多详情

第3步:要克服的问题

许多用户遇到NRF24L01模块的问题。这些问题的根源通常来自3.3v Power。由于该模块没有足够的电流能力。这是为什么我建议使用以下任一方式:

ž带有稳压器和旁路电容器的基本模块,以保持稳定性

OR

ž从+ 3.3V到Gnd直接在模块上的3.3 uF至10 uF(MicroFarad)电容器

步骤4:原理图

Arduino

Arduino

Arduino

Arduino

CE和CSN引脚可以连接到任何数字引脚。然后,在RF24库中,您可以指定使用的引脚。我选择了引脚8和9,因为我将在示例中使用它们。

在我们的例子中,我们将使用Arduino Uno,这就是为什么您应该遵循以下说明(或遵循上图)的原因:

MOSI连接到数字引脚11

MISO连接到数字引脚12

SCK连接到数字引脚13

SS(未使用)

注意:使用NRF24L01时,您必须记住这些数字引脚不可用。

请观看以下视频

步骤5:下载RF24库

在此项目中,我们使用了RF24库,该库可以在Github上下载:RF24库

1。首先,您需要单击“下载ZIP”按钮

2。将zip文件解压缩到您的Arduino主目录中:Linux/Linux上的Arduino/库或Windows中的文档/Arduino/库。

步骤6:发射器Arduino代码

发送器草图将如下所示:

/** Arduino Wireless Communication Tutorial

* Transmitter Code

*

* by Smart Technology, https://makesmarttech.blogspot.com/

*

* Library: TMRh20/RF24,https://tmrh20.github.io/RF24

*/

#include

#include

#include

#define button 7

RF24 radio(8, 9); // CE, CSN

const byte address[6] = “00001”;

boolean buttonState = 0;

void setup() {

pinMode(button, INPUT);

radio.begin();

radio.openWritingPipe(address);

radio.setPALevel(RF24_PA_MAX);

radio.stopListening();

}

void loop() {

delay(5);

radio.stopListening();

buttonState = digitalRead(button);

radio.write(&buttonState, sizeof(buttonState));

}

第7步:接收器Arduino代码

接收器草图将如下所示:

/** Arduino Wireless Communication Tutorial

* Receiver Code

*

* by Smart Technology, https://makesmarttech.blogspot.com/

* Library: TMRh20/RF24, https://tmrh20.github.io/RF24

*/

#include

#include

#include

#define led 7

RF24 radio(8, 9); // CE, CSN

const byte address[6] = “00001”;

boolean buttonState = 0;

void setup() {

pinMode(7, OUTPUT);

Serial.begin(9600);

radio.begin();

radio.openReadingPipe(0, address);

radio.setPALevel(RF24_PA_MAX);

radio.startListening();

}

void loop() {

delay(5);

radio.startListening();

while (!radio.available());

radio.read(&buttonState, sizeof(buttonState));

if (buttonState == HIGH) {

digitalWrite(led, HIGH);

}

else {

digitalWrite(led, LOW);

}

}

第8步:获得支持

Arduino

责任编辑:wv 

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

全部0条评论

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

×
20
完善资料,
赚取积分