nRF24L01 -如亚博88下载何工作,Arduino接口,代码,原理图

在此Arduino教程中,我们将学习如何使用NRF24L01收发器模块在两个Arduino板之间进行无线通信。您可以观看以下视频或阅读下面的书面教程。

概述


为了解释无线通信,我们将举两个例子,第一个例子是将一个简单的“Hello World”消息从一个Arduino发送到另一个,在第二个例子中,我们将有一个Arduino板之间的双向通信,使用第一个Arduino上的操纵杆控制第二个Arduino上的伺服电机,反之,使用第二个Arduino上的按钮控制第一个Arduino上的LED。

NRF24L01收发器模块 - 它是如何工作的亚博88下载

让我们仔细看看NRF24L01收发模块。它使用2.4 GHz频带,波特率从250kbps到2mbps。如果在开放空间使用,波特率较低,其范围可达100米。

NRF24L01收发器模块

该模块可以使用125个不同的通道,这可以在一个地方具有125个独立工作调制解调器的网络。每个通道最多可包含6个地址,或每个通道可以同时与最多6个单位沟通

渠道和地址的工作原则

该模块在传输过程中功耗仅为12mA左右,甚至比单个LED还要低。这个模块的工作电压在1.9到3.6V之间,好在其他的引脚可以承受5V逻辑,所以不用任何逻辑电平转换器就可以轻松的连接到Arduino上。

NRF24L01收发模块Pinouts连接

其中三个引脚是用于SPI通信的,它们需要连接到Arduino的SPI引脚,但请注意,每个Arduino板有不同的SPI引脚。CSN和CE引脚可以连接到Arduino板上的任何数字引脚,用于设置模块处于待机模式或主动模式,以及传输模式和命令模式之间的切换。最后一个引脚是一个不需要使用的中断引脚。

NRF24L01模块有几种变体。最受欢迎的是与板载天线的那个。这使得模块更紧凑,但另一方面,将传输范围降低到约100米的距离。

各种模块基于NRF24L01芯片

第二种变化,而不是板载天线,它具有SMA连接器,并且我们可以连接鸭子天线以进行更好的传输范围。

此处所示的第三种变化,除了鸭子天线之外,它还具有RFX2401C芯片,包括巴勒斯坦权力机构(功率放大器)LNA(低噪声放大器)。这放大了NRF24L01信号,使其在开阔空间的传输范围达到1000米。

NRF24L01模块引脚向导

以下是NRF24L01引脚的详细外观,以及NRF24L01 + PA / LNA模块。

NRF24L01引脚&NRF24L01 + PA LNA .png

这两个模块,NRF24L01和NRF24L01+ PA/LNA有相同的引脚,所以我们可以在我们的电路中以相同的方式连接它们。

电路原理图

以下是我们如何将NRF24L01模块连接到Arduino板。

NRF24L01和Arduino教程电路原理图

正如我已经提到的那样,每个Arduino板都有不同的SPI引脚,因此将模块连接到Arduino板时,请记住这一点。

Arduino SPI针

你可以从下面的链接获得这个Arduino教程所需的组件:

yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

Arduino和NRF24L01代码

一旦我们将NRF24L01模块连接到Arduino板,我们就可以为发送器和接收器进行编码。

首先,我们需要下载并安装RF24图书馆这样编程就不那么困难了。

以下是无线通信的两种代码,下面是它们的描述。

发射机代码

/* * Arduino Wireless Communication Tutorial * Example 1 - Transmitter Code * * by Dejan Nedelkovski, www.亚搏手机版官方下载HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include  #include  #include 
        

接收器代码

/* * Arduino Wireless Communication Tutorial * Example 1 - Receiver Code * * by Dejan Nedelkovski, www.亚搏手机版官方下载HowToMechatronics.com * * Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include  #include  #include 
        

描述:

因此,我们需要包含基本SPI和新安装的RF24库,并创建一个RF24对象。这里的两个参数是CSN和CE引脚。

RF24电台(7、8);/ / CE、CSN

接下来,我们需要创建一个字节数组,它将表示地址,或所谓的管道,这两个模块将通过它进行通信。

const字节地址[6] =“00001”;

我们可以将这个地址的值更改为任何5个字母的字符串,这样就可以选择要与哪个接收器对话,所以在我们的例子中,接收端和发送端都有相同的地址。

在设置部分中,我们需要初始化无线电对象并使用royal.OpenWritingPipe()函数我们设置我们将发送数据的接收者的地址,我们先前设置的5个字母的字符串。

radio.openwritingPipe(地址);

在另一端,在接收端,我们使用radio.setReadingPipe()函数设置相同的地址,通过这种方式,我们启用了两个模块之间的通信。

收音机。openReadingPipe(0,地址);

然后使用radio. setpallevel()函数,我们设置功率放大器的水平,在我们的情况下,我将它设置为最小,因为我的模块非常接近彼此。

radio.setPALevel (RF24_PA_MIN);

注意,如果使用更高的电平,则建议在模块的GND和3.3V之间使用旁路电容,以便在运行时具有更稳定的电压。

接下来我们拥有radio.stoplistening()函数,将模块设置为发射器,另一侧,我们具有radio.startListening()函数,该函数将模块设置为接收器。

//在发射机radio.stopListening();
//在Receiver radio.startListening();

在循环部分,在发送器处,我们创建一个字符数组,将消息“Hello World”分配给它。我们将使用radio.write()函数将该消息发送给接收方。这里的第一个参数是我们想要发送的变量。

void loop() {const char text[] = "Hello World";收音机。写(之外,sizeof(文本));延迟(1000);}

通过在变量名前使用" & ",我们实际上设置了一个变量的指示,该变量存储我们想要发送的数据,并使用第二个参数,我们设置了想要从该变量获取的字节数。在这种情况下,sizeof()函数获取字符串" text "的所有字节。在节目的最后,我们会增加1秒的延迟。

另一方面,在接收端,在循环部分使用radio.available()函数检查是否有要接收的数据。如果这是真的,首先我们创建一个包含32个元素的数组,称为“text”,我们将在其中保存传入的数据。

Void loop() {if (radio.available()) {char text[32] = "";收音机。读(之外,sizeof(文本));以(文本);}}

使用radion.read()函数读取数据并将其存储到“text”变量中。最后,我们在串行监视器上打印文本。因此,一旦我们上传了两个程序,我们就可以在接收器上运行串行监视器,我们会注意到每秒钟都会打印一条消息“Hello World”。

故障排除

值得注意的是电源噪音是人们在尝试与NRF24L01模块成功沟通时体验的最常见问题之一。通常,RF电路或射频信号对电源噪声敏感。因此,在电源线上包括解耦电容总是一个好主意。电容器可以是10uf至100uf的任何东西。

NRF24L01故障排除-去耦电容和外部电源

另外一个常见的问题是Arduino板的3.3V引脚不能总是为NRF24L01模块提供足够的电源。因此,使用外部电源为模块供电也是一个好主意。

Arduino无线双向通信,两个NRF24L01模块


让我们看看第二个例子,两个Arduino板之间的双向无线通信。这是电路原理图:

Arduino无线通信NRF24L01电路原理图教程

您可以从下面的链接获取此示例所需的组件:

yaboAG娱乐城披露:这些是附属链接。作为一个亚马逊助理,我从合格的购买中赚取。

源代码


这里是两个代码,下面是它们的描述。

发射机代码

/ * * Arduino无线通信教程*示例2  - 发射机代码* *由Dejan Nedelkovski,www.www.kuaixg.com * *库:TMRH20 / RF24,HTTPS:/亚搏手机版官方下载/github.com/tmrh20/rf24/ * / #include  #include  #include  #define LED 12 RF24收音机(7,8);// ce,csn const字节地址[] [6] = {00001“,”00002“};Boolean ButtonState = 0;void setup(){pinmode(12,输出);radio.begin ();radio.openwritingPipe(地址[1]);// 00002 radio.openreadingPipe(1,地址[0]);// 00001 radio.setpalevel(rf24_pa_min);void循环(){延迟(5);radio.stopListening (); int potValue = analogRead(A0); int angleValue = map(potValue, 0, 1023, 0, 180); radio.write(&angleValue, sizeof(angleValue)); delay(5); radio.startListening(); while (!radio.available()); radio.read(&buttonState, sizeof(buttonState)); if (buttonState == HIGH) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } }

接收器代码

/ * * Arduino无线通信教程*示例2  - 接收代码* *由Dejan Nedelkovski,www.www.kuaixg.com * *库:TMRH20 / RF24,https亚搏手机版官方下载://github.com/tmrh20/rf24/ * / #include  #include  #include  #include  #define按钮4 rf24收音机(7,8);// ce,csn const字节地址[] [6] = {00001“,”00002“};伺服myservo;Boolean ButtonState = 0;void setup(){pinmode(按钮,输入);myservo.attach(5);radio.begin ();radio.openwritingPipe(地址[0]);// 00001 radio.openreadingpipe(1,地址[1]);// 00002 radio.setpalevel(rf24_pa_min); } void loop() { delay(5); radio.startListening(); if ( radio.available()) { while (radio.available()) { int angleV = 0; radio.read(&angleV, sizeof(angleV)); myServo.write(angleV); } delay(5); radio.stopListening(); buttonState = digitalRead(button); radio.write(&buttonState, sizeof(buttonState)); } }

从前面的例子中有什么不同的是,我们需要为双向通信创建两个管道或地址。

Const byte addresses[][6] = {"00001", "00002"};

在设置部分,我们需要定义两个管道,注意第一个Arduino的写入地址需要是第二个Arduino的读取地址,反之亦然,第一个Arduino的读取地址需要是第二个Arduino的写入地址。

//在发射机radio.openWritingPipe(地址[1]);/ / 00001电台。openReadingPipe(1、地址[0]);/ / 00002
//在接收器无线电编号上(地址[0]);// 00002 radio.OpenReadPipe(1,地址[1]);// 00001

在循环部分中使用radio.stoplistening()函数,我们将第一个Arduino设置为发送器,读取和映射操纵杆的值从0到180,并使用radio.write()函数将数据发送到接收器。

radio.stopListening ();int potvalue = analogread(a0);int anglevalue =地图(Potvalue,0,1023,0,180);电台.write(&snallvalue,sizeof(stantvalue));

在另一边,使用radio.startListening()函数我们将第二个Arduino作为接收器设置,并检查是否有可用数据。虽然有数据可用我们会读取它,但将其保存到“Anglev”变量,然后使用该值旋转伺服电机。

radio.startListening ();if (radio.available()) {while (radio.available()) {int angleV = 0;Radio.Read(&Anglev,Sizeof(Anglev));myServo.write (angleV);}

接下来,在发送端,我们将第一个Arduino设置为接收端,用一个空的“while”循环等待第二个Arduino发送数据,这是按钮状态的数据,无论是否被按下。如果按下按钮,LED灯就会亮起来。这些过程不断重复,两个Arduino板都在不断发送和接收数据。

更多NRF24L01和Arduino示例

NRF24L01模块是Arduino爱好者的必备组件。我已经使用NRF24L01模块在许多Arduino项足彩网女欧洲杯目.在这里我将列出我使用这些模块的所有项目。足彩网女欧洲杯

每个项目/教程都详细说明了如足彩网女欧洲杯何使用NRF24L01模块,包括电路图,改进的代码实现更好的通信等等。

DIY Arduino RC发射器- Arduino机器人汽车无线控制

DIY Arduino RC发射器示例

这就是本教程的全部,我希望你喜欢它并学会了新的东西。一如既往地,请随时在下面的意见部分提出任何问题。

97年响应

  1. 爱资哈尔

    感谢您分享这个非常有用的教程。你可以帮助我用一个方向使用6个电位器来控制多个伺服(我需要控制6个伺服)的代码吗?

    回复
    • 克里斯坟墓

      如果你使用uno R3板上的发射机和接收机,什么引脚是你使用的按钮和操纵杆,LED,和伺服。必须设置好才能理解它是如何工作的。亚博88下载
      谢谢,

      回复
      • Dejan Nedelkovski.

        重要的是,你需要使用Arduino板的SPI引脚NRF24L01模块,或引脚13-SCKI, 12-MISO和11-MOSI。除此之外,你可以使用任何密码。

    • man

      不要通过图表进行纳米奥迪诺通过书面销钉连接进行图13 ......它的好程序......感谢程序员

      回复
  2. 佩耶曼

    嗨,如何为特定的管道发送数据并从它得到答案。
    主人有一个地址,如果发送数据所有从属来,是吗?
    我不会有一个主机从2个从站获取数据。

    回复
  3. 特里陈

    嗨,你知道我的串行输出是“yyyyyy yyyyyyyyyyy”的任何可能的原因吗???

    回复
  4. 吉姆

    我能用转发器把射程扩大到200米吗?主从机转(从机/主从机)到其他从机再转回来?

    回复
  5. 爱资哈尔

    你好,你的电路图有问题吗?nrf2401的SCK不会去arduino nano的Pin 13。

    回复
    • Jamaleddin

      德扬先生你好,
      我已经用两个Arduino NANOs实现了这个项目。
      最初它并没有工作,但在几个小时的检查后,我得到了一个非常重要的通知,并想与你所有的追随者分享它。为了使2个NANOs无线连接和通信,必须使用辅助SPI引脚而不是D11, D12和D13。
      我终于让他们喜欢梦想。非常感谢您分享您的可爱项目。干杯!

      回复
  6. 苏菲·沙阿·哈米德·贾拉里

    你的教程太棒了。我非常喜欢你表达的方式。非常清楚,非常有帮助。跟上,男人! !

    回复
  7. 维塔利

    嗨。很好的解释。问吗?如果连续移动操纵杆,系统会是双工的吗?在这种情况下,程序将一直在while()函数中。

    回复
  8. Anil.

    嗨,德扬
    我已经成功与mega 2560和uno进行了沟通。但我的问题是这种联系不能持续很长时间Resetting on both boards Is also not working…When I disconnect two boards and connect them to power supply again its working for few seconds. But working time Is different in each case..... .当我断开两块板并连接到电源时,它工作了几秒钟你能帮我一下吗

    回复
    • Dejan Nedelkovski.

      问题可能是权力。尝试使用更稳定的外部电源。传输数据时,这些无线模块可以耗电,因此您可能会丢失连接。还尝试使用解耦电容。

      回复
    • 让-巴蒂斯特·

      大家好!

      首先,我想祝贺德詹'因为他的丁斯州很精彩,就像在我面前的SBDE说话!

      第二,我使用操纵杆两三次后的功能出现问题的同样问题,似乎它似乎是使用非真正uno的原因。
      当我改变一个真正的Arduino Uno时,问题已经解决了......好奇......

      回复
  9. Kubajz 22.

    我通过改变while (!radio.available())解决了这个问题;如果(! radio.available ());
    很好,啧啧

    回复
  10. Marek

    非常棒的教程,谢谢。
    你在第二个例子中使用了什么电阻?
    谢谢

    回复
  11. Eldon Genorio.

    大家好!

    我能够使这个项目工作。但是,我面临着一个问题。每当我移动两个ARDUINO板(每个都使用NRF24L01模块附带的NRF24L01模块)时,信号都会丢失。就好像模块只能在范围内工作小于一米?除非我从教程中错过了一些东西。

    提前感谢您的回复。

    回复
  12. 利奥

    谢谢你的指导。

    您是否有关于如何建立连接和使用笔记本电脑计算机而不是第二个Arduino接收数据的想法?

    谢谢

    回复
  13. muditha.

    你好Dejan Nedelkovski.
    我读了“Arduino无线通信- NRF24L01教程”。它对初学者非常有用。由于很多。
    我的问题是,我如何找到“nrf24l01.h”文件?

    你有一个“nrf24l01.h的链接?“
    谢谢。

    回复
  14. Levente Gulyas.

    你好!伟大的视频!thank you for uploding, I have a problem my module doesnt recieve any data(I’m using arduino nano as tranciever and uno as reciever).I checked the wiring many times i tried it 100 ways to get it work but i haven’t succeeded yet.
    这个库是否有机会检查arduino是否可以与rf24通信?我在RF24.h搜索,我发现一个bool ChipIsConnected(),但它不返回任何东西。

    回复
    • Ismaeil Alnaab

      我也面临同样的问题,你有什么进展吗?
      我尝试过使用10微法拉电容,但没有任何改变。我仍然没有收到任何东西。

      回复
      • 瓦希德

        可能是两个模块之间的距离,最大几乎是10厘米,因为(PA _MIN)..尝试让它们彼此靠近,或者用_LOW替换_MIN。如果你有一个电容器连接,只是删除线在两个草图。
        祝你好运

  15. 你好,非常感谢你的例子,但我有一个小问题,也许关于射频信号。我使用uno r3作为收发器,nano作为接收器,当我上传代码时,数据正常发送和接收,但30秒后它停止发送和接收数据,你能帮我吗

    回复
  16. AQSA NAZ.

    您的示例非常有用,但我使用入门榜样,我可以传达NRF24L01,但我收到垃圾值而不是Hello World。我能做什么?

    回复
  17. 凯伦

    你好,很棒的教程,谢谢!有没有可能从另一个来源进行传输,比如我自己的带有2.4GHz天线的传感器,传输模拟频率。然后只用一个Arduino和一个nrf24I01来接收和配置数据?或者这个模块只与另一个nrf24I01通信?

    回复
  18. Spog

    谢谢您对如此伟大的教程,我使用了这些长距离版本,使用外部PSU获得大约400米,以创建一个带回复功能的长距离门铃。

    回复
  19. 马克斯

    非常感谢您的努力,请问如果我使用的是HC 05或HC 06蓝牙模块,该怎么做?我正在做一辆钢筋混凝土汽车,弄清楚如何驱动电机,但我有一个七轴在前面准备转向,我怎么能编码它?

    回复
  20. 安德烈

    我们可以在两个arduino之间只在一台PC之间进行“Hello World”沟通?意味着它只有一个IDE。我们可以吗?

    回复
  21. TheteChtight.

    我试图制作NRF24L01的工作,但接收器代码刚刚显示一些随机符号,即使串行监视波特率与代码相同。你能告诉我可能是什么问题吗?
    谢谢

    回复
  22. 同上。assef Shawkat阿里

    优秀的教程。
    如何使用NRF24L01传达更多两个Arduinos。我正在研究一个项目,在那里我有每个arduinos的液晶显示,它没有主奴隶的概念。例如。Arduino将消息发送给Arduino B和C,并在B和C LCD上显示该消息。然后B或C回复A和A显示LCD的消息。
    该方案基于多智能体系统的共识控制,每个智能体负责控制自己的资源。

    回复
  23. Jepher

    你好,

    谢谢你的指导。它为设备之间的无线通信提供了另一种选择。

    我可以知道如何增加距离范围,并且这些设备需要直接的视线,也需要甚至可以沟通/之间存在障碍物?

    谢谢你!

    回复
    • 德国

      您可以使用PA LNA SMA天线增加范围。当然,即使存在像墙壁的障碍,也可以进行沟通,但以这种方式将减少范围。

      回复
      • Jepher

        谢谢,我尝试过使用RF433MHz模块进行无线连接。但当我试图挡住他们的视线时。它接收不到发射机发出的信号。

        我有一个跟进问题。如果我错了,请纠正我,我正在使用Arduino Pro Mini,SPI PIN将是;MOSI(11),MISO(12),SCK(13)。我对么?

  24. 杰拉德

    非常感谢您的工作,以一种简单和全面的方式向每个人延伸基本原则。再次,我使用了一个伟大的教程,第一步,以一个新的主题深入和实现我自己的想法和想法。我真的可以推荐你的出版物作为“如何”的一个快速介绍。
    让球继续滚…

    回复
  25. 萨彦岭chowdhury

    嗨,谢谢你的视频。我面临着一个不寻常的问题。这是我正在使用的接收器代码的一部分。“可用”字符串正在打印,但文本变量中没有内容。它只是空白。请帮忙

    如果(radio.available ()) {
    以“可用”);
    Char text[32] = " ";
    收音机。读(之外,sizeof(文本));
    以(文本);}

    回复
    • 德国

      嘿,确保你在模块VCC和GND使用了一个电容器,并确保你发送的数据类型与你接收的数据类型相同。还要尽量将两个模块之间的距离保持至少一米。

      回复
  26. wozu

    你好
    第一个例子,写“Hello World”没有问题。
    但是第二个例子不适合我。我不知道原因。
    我检查了LED,伺服和操纵杆的接线,但没有连接错误并尝试多次。但没有接收和传输。我的RF模块彼此非常靠近。当我将代码上传到Uno和Mega时,伺服在代码上载的末尾移动。但是当我暂停枪声和按钮没有任何发生的时候。
    我需要考虑一下吗?

    回复
    • 德国

      嘿,电容怎么样,试着在模块VCC和GND附近使用电容,并在两个模块之间保持一点距离。

      回复
      • wozu

        感谢您的回复。问题是NRF24L01模块之一未正常工作(它只接收,不发送)。需要很长时间才能确定问题。我使用另一个NRF24L01并解决问题。

  27. vedat.

    嗨,这正是我需要的DIY遥控飞机。但我没法用两个arduino做这个。板子有关系吗,我查了Uno板子对应的ICSP引脚,不知道为什么不能用。我将感激一个有用的回应,谢谢。

    回复
    • 德国

      董事会无关紧要。问题的大部分时间都是电力供应。确保您具有良好的3.3V电源,甚至是外部的电源,也可以使用旁路电容来稳定它。同时在通信时尝试距离两个模块。

      回复
  28. ubaldo.

    恭喜我的朋友,您的视频和解释帮助并激励了学生和专业人士的免疫力,谢谢您分享您的知识,我们感谢您的核心。

    回复
  29. Asif Anowar.

    非常感谢......我刚刚使用2个UNO板上的项目......非常解释......

    回复
  30. 坦纳

    谢谢你的指导。我能够在任何时候都跑步!我一个问题,所以通过发射机代码,我也在使用Mega2560,但我正在尝试使用纳米,然后每当我把通常的销钉放在50,51和52销的Mega2560上并放开like pins 13, 12 and 11 of the nano, even just the 13, 12 and 11 of the mega2560, it doesn’t work. For some reason they only work on pins 50, 51 and 52 for the transmitter, any way I can fix this?

    回复
    • 德国

      纳米的SPI销是SCK -13,MISO - 12,MOSI - 11.因此,如果正确连接,它应该与MEGA相同。并确保您在模块旁边使用电容器以稳定电源。

      回复
      • 坦纳

        我把针转换为你对你说的那些。再次感谢!

  31. 阿施施邦萨尔


    如果由于某种原因(就像使用Arduino电机屏蔽的同时),则可以阻止数字引脚。
    SIP引脚在ICSP头是可用的,可以在那里使用,但我可以使用模拟引脚像A0和A1为这行:
    RF24电台(7、8);/ / CE、CSN

    回复
  32. 布莱克·考德威尔

    谢谢你的伟大教程!我花了很多时间用这些项目,但这是我第一次和Arduino一起玩过。足彩网女欧洲杯我无法首先努力,因为一个真正的愚蠢错误,我可能能够帮助别人避免。我假设你的小arduino与我的亲迷你同样的别针相同。那不是那么 - 我的销13在板的另一侧。一旦我意识到,并通过PIN数而不是由你的原理图挂钩了电线,一切都很棒。

    回复
  33. vedat.

    嗨,我可以让这个工作,但不是双向沟通,我想能够控制两个伺服与操纵杆。我如何修改代码和引脚连接来做到这一点?

    回复
  34. Dhiraj Kushwaha

    嘿,请问,我的nrf24l01很少有时工作,有时它有效!你能否建议我任何解决方案,我可以解决这件事......我也将47uf电容连接到模块的电源,但每次都不工作!!!!!!!!

    回复
    • 德国

      那电源呢,试着用外部电源。Arduino的3.3V电源有时不够给模块供电。尝试为模块使用不同的专用电源。在这种情况下,请确保将电源的接地管脚与Arduino的接地管脚连接,以便正常工作。

      回复
  35. 肖恩兰德

    你好德国。伟大的教程......谢谢!我对Arduino有零的经验,但我理解它对机器人原型设计并认为我会挖掘,看看它是否适用于我的用例。我希望你能证实我的假设是正确的:

    1.素描可以在标准USB连接器上打开连接(串行?)到计算机,可以在草图的持续时间内保持此单个连接;
    2.此连接在计算机上共享,以便在计算机上运行的任何应用程序访问它(读/写),例如,它可以访问它。内置Java,.NET,GOLANG等的应用程序;
    3.Sketch可以从连接中读取并向NRF24L01模块发送命令,以模拟RC设备的发射机;

    我梦想着目前可能或不存在的东西吗?

    提前谢谢。

    回复
  36. 大狗

    哇!伟大的教程。我现在一直与Arduino一起工作,你的网站非常有用。我确实有关于NRF24L01与ESP8266的问题。ESP8266是否会工作以及NRF24L01?一位朋友给了我一对夫妇一起玩一个项目,我之前没有真正使用过吗?

    回复
    • 德国

      谢谢,我很高兴你发现它们有用。说实话,我没有esp8266模块的经验,所以我现在无法给你任何合适的答案。干杯!

      回复
  37. 克里斯托约瑟夫

    我尝试了几次,但是没有从ardiuno mega.....得到任何值但是它在uno上工作…我想要mega作为接收器…检查连接和所有,所有都是好的…任何人告诉发生了什么在mega??????上

    回复
    • 德国

      那种奇怪的。也许你的兆板有问题。确保在Arduino Mega上使用正确的SPI引脚。此外,正如我始终建议的那样,在模块的3.3V输入引脚处使用去耦电容。

      回复
    • 赫伯特

      刚刚看到这个问题,可能已经太晚了,但可能对其他Mega用户有帮助:在Mega,你需要设置数字引脚53的输出和低,即使使用任何其他引脚作为你的CE信号。否则SPI通信将无法正常工作。

      回复
  38. sveto.

    伟大的教程! !事实上,我很喜欢你的想法和文章。
    在这里,我提到了一个小问题:

    给定的示例在开始时没有运行。我下载了最新的rf24库,但仍然没有发送,没有得到。然后,我代替:

    从:>常量字节地址[6]= " 00001 ";
    to:> const字节地址[5] =“00001”;

    它们都像魅力一样奔跑。不知道是我的错,还是上次图书馆有新东西。这是我的观察,Arduino IDE是最后一个。1.8.something
    干杯

    回复
  39. 鲁道夫

    非常有用的教程,非常感谢。问:当数据没有变化时停止传输数据有意义吗?在接收端,我有一个对改变数据(操纵杆位置)做出反应的循环。所以,只要把操纵杆往左推,操纵杆的值其实是不变的,为什么要不断发送它的位置呢?当操纵杆没有被推动时,它处于零位置,我们仍然会发送这个。这对接收机来说是必要的,还是可以停止,例如通过比较新旧值和跳过无线电。写(操纵杆,sizeof(操纵杆))。

    回复
    • 德国

      好吧,是的,我猜你可以做到这一点。这取决于你想要的东西,如节能左右。在这种情况下,它将是有用的。

      回复
  40. 卢卡斯

    你好谢谢你的教程,
    我想知道是否有一个原因选择了销7和8 ce和csn。例如,为什么不仅仅是9和10?
    谢谢

    回复
  41. mamad


    thanx为教程
    我可以将CE和CSN连接到非PWM引脚,如D7和D8?
    我想使用PWM引脚进行更多选项

    回复
  42. 达拉

    亲爱的德扬,
    感谢您优秀的指导!我希望你们继续分享你们的知识!
    最好的问候,gyuri

    回复
  43. 谢谢你的教程!我有一个关于radio.setpalevel的问题。你说你将它设置为min水平,因为收发器彼此接近。所以我的问题是,setPalevel是否函数是收发器发送频率范围的确定因素?或者要更好地指定,该功能是否允许其中确定您需要两个收发器的接近才能允许通信?

    回复
    • 德国

      “PA:代表功率放大器,它对应于模块的输出电平。更高的设定,更好的范围将有,但这也意味着它将使用更多的功率。因此,如果功耗是您项目的重要因素,您应该至少保持最低限度,但当然它也取决于您想要实现的范围。

      回复
  44. Jon Duke.

    先生,谢谢你,这么多为你的教程。你有一个礼物和分享,最受欢迎。我正在使用使用两个纳米,一个接收和一个发射,监测几个参数:太阳能信号的电流,累积电荷,温度和电池电压非常难以到达,我可以说近乎无法达到。
    在努力奋斗后,强大而不成功,使用用于数据传输的使用字符串,我决定使用添加剂偏移来识别数据读取。例如10,000 +广告数(或伏特),使101024将是频道1;200256将是渠道2,等等。然后解码很容易。旧学校,是的;但它似乎正在工作,这个评论可能会帮助别人。再一次,非常感谢你。

    Jon.

    回复

发表评论

您的电子邮件地址将不会被公布。

推荐

2019年初学者和爱好者的最佳进入级示波器

为初学者和爱好者最好的示波器

推荐

2019年初学者的8个最佳Arduino Starter Kits

初学者的8个最佳Arduino Starter Kits

推荐

最佳3D打印机为初学者和爱好者- 3D打印

最好的3d打印机为初学者和爱好者