0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Arduinos和NRF24L01模块创建发射器和接收器

454398 来源:工程师吴畏 2019-08-01 11:29 次阅读

此项目所需的组件如下:

2 Arduino

2 NRF24L01模块

操纵杆模块

伺服电机

连接电线

伺服电机控制如何工作

变送器侧我们有一个操纵杆模块,Arduino和NRF24L01,而在接收端我们有一个NRF24L01,Arduino和一个伺服电机。

当我们在水平方向移动操纵杆时,操纵杆模块将发送Ardui的模拟值没有。我们已将NRF24L01模块设置为发射器模式,并将操纵杆移动值发送到特定地址。

在接收端,我们已将NRF24L01模块设置为接收模式。我们在接收端给出了相同的地址,其他NRF24L01模块正在传输数据。因此,只要模块接收数据,Arduino就会读取它并根据它移动伺服电机。

NRF24L01引脚

此模块的功耗非常低。它在传输过程中消耗大约12mA的功率,甚至低于LED

该模块工作在3.3V,所以不要直接连接到5V的Arduino,因为它可能会损坏。 NRF24L01模块的其他引脚具有5V容限,因此您可以将它们直接连接到Arduino。

SCK,MOSI和MISO引脚用于SPI通信,CSN和CE引脚用于设置待机或激活模式以及设置发送或命令模式。

电路图

连接有点冗长,所以我将分别解释发送器和接收器的连接。

对于发射器

使用Arduino建立发射器侧的连接,如下所示:

将NRF24L01的3.3V引脚与3.3V的Arduino连接

将NRF24L01的GND引脚与Arduino的GND连接

将NRF24L01的CSN引脚连接到Arduino的引脚8

将NRF24L01的CE引脚与Arduino的引脚7连接

连接NRF24L01的SCK引脚Arduino的第13针

将NRF24L01的MOSI引脚与Arduino的引脚11连接

将NRF24L01的MISO引脚与Arduino的引脚12连接?/li》

然后将操纵杆模块与Arduino连接如下:

操纵杆模块的VCC到Arduino的5V电源

GND of操纵杆模块到Arduino的GND

操纵杆模块的VER到Arduino的A1

操纵杆模块的HOR到Arduino的A0

对于接收器

在接收器端,NRF24L01与Arduino的连接 相同作为发射器侧的那些。使用Arduino进行伺服电机连接如下:

红线到Arduino的5V电源

Arduino的GND到布线》

黄色电线到Arduino的第6针

代码发射器

#include

#include

#include

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

const byte address[6] = “00001”;

int x_key = A1;

int y_key = A0;

int x_pos;

int y_pos;

void setup() {

radio.begin();

radio.openWritingPipe(address);

radio.setPALevel(RF24_PA_MIN);

radio.stopListening();

pinMode (x_key, INPUT) ;

pinMode (y_key, INPUT) ;

}

void loop() {

x_pos = analogRead (x_key) ;

y_pos = analogRead (y_key) ;

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

delay(100);

}

接收者代码

#include

#include

#include

#include

Servo servo;

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

const byte address[6] = “00001”;

int servo_pin = 6;

void setup() {

Serial.begin(9600);

radio.begin();

servo.attach (servo_pin ) ;

radio.openReadingPipe(0, address);

radio.setPALevel(RF24_PA_MIN);

radio.startListening();

}

void loop() {

if (radio.available()) {

int x_pos ;

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

Serial.println(x_pos);

x_pos = map(x_pos, 0, 1023, 0, 180);

if (x_pos》400 && x_pos《600)

{

}

else{

servo.write (x_pos) ;

}

}

}

代码细分和解释

首先,包含库对于NRF24L01和伺服电机。

#include

#include

#include

#include

然后,定义我们连接NRF24L01的CSN和CE引脚的引脚。之后,我们初始化将发送和接收数据的地址。该地址在发射机和接收机侧应该相同。该地址可以是任意五个字母的字符串。

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

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

在发送器的设置功能中,我们设置发送数据的地址。然后我们将功率放大范围设置为最小,因为我们的模块彼此更接近。

radio.openWritingPipe(地址);

radio.setPALevel(RF24_PA_MIN);

对于接收方,我们使用以下命令并设置模块以从该地址接收数据。

radio.openReadingPipe(0,address);

In发送器的循环功能,我们从操纵杆模块读取并在我们之前设置的地址发送值。

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

接收器侧的以下命令将从发送器获取数据,并且在将数据映射到0-180之后,我们将移动伺服。

radio.read(& x_pos,sizeof( X_POS));

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

    关注

    14

    文章

    2468

    浏览量

    71889
  • 发射器
    +关注

    关注

    6

    文章

    848

    浏览量

    53456
  • nRF24L01
    +关注

    关注

    17

    文章

    330

    浏览量

    69464
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186983
收藏 人收藏

    评论

    相关推荐

    nRF24L01P被SI24R1竟然完美兼容替换

    发现一个新一代nRF24L01P与上一代nRF24L01相比寄存没有太大的变化,但是有几个关于通信管道和ACK的寄存的配置还是与上一代不同的。另外,个人理解shockburst和e
    发表于 11-28 16:52

    TMS320DM6467支持HDMI发射器/接收器

    电子发烧友网站提供《TMS320DM6467支持HDMI发射器/接收器.pdf》资料免费下载
    发表于 10-15 11:36 0次下载
    TMS320DM6467支持HDMI<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>

    对射光电怎样区分发射接收

    对射光电传感是一种常用的光电检测设备,它由发射器接收器两部分组成,通过发射器发出光信号,接收器接收
    的头像 发表于 09-04 10:34 1386次阅读

    无线充电接收器怎么使用

    无线充电接收器是一种利用电磁感应原理实现无线充电的设备,它能够将无线充电发射器发出的电磁波转换为电能,为手机、耳机、智能手表等设备提供充电。无线充电接收器的使用过程相对简单,但要实现高效、安全的充电
    的头像 发表于 09-02 09:20 756次阅读

    无线充电接收器对手机有损害吗

    原理。在无线充电系统中,通常包括一个发射器(无线充电底座)和一个接收器(内置于手机或其他设备中)。发射器产生一个交变磁场,而接收器中的线圈感应这个磁场,从而产生电流,为设备充电。 无线
    的头像 发表于 09-02 09:15 650次阅读

    适用于无线基础设施的高速LVDS线路发射器/接收器SC5108

    适用于无线基础设施的高速LVDS线路发射器/接收器SC5108
    的头像 发表于 08-01 10:06 353次阅读
    适用于无线基础设施的高速LVDS线路<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>SC5108

    如何将ESP8266-01模块用作物理层设备?

    嗨,大家好。我想将 ESP8266-01 模块用作物理层设备,就像射频发射器接收器一样。 一个模块将用作
    发表于 07-19 12:18

    TL28L92 3.3V/5V双通道通用异步接收器/发射器数据表

    电子发烧友网站提供《TL28L92 3.3V/5V双通道通用异步接收器/发射器数据表.pdf》资料免费下载
    发表于 07-09 09:34 0次下载
    TL28<b class='flag-5'>L</b>92 3.3V/5V双通道通用异步<b class='flag-5'>接收器</b>/<b class='flag-5'>发射器</b>数据表

    NRF24L01加个if就发送不成功的原因?

    我最近在调个NRF24L01其实早已经调试好了,之前都是一个发送一个接,我现在想改成,我发送端发送成功后,接收端能返回信息回来。我调试时发现在把发送函数放到“if”里面发送不成功.把\"
    发表于 05-10 07:06

    nrf24l01+自动应答失败的原因?

    目前调试24L01+,非自动应答可以收到数据,但自动应答时,一直出现达到最大重发次数,但接收方有收到数据。 发送端: oid ANO_NRF_TX_MODE(void
    发表于 04-24 07:51

    无线通信时代nRF24L01无线模块的应用与特点

    nRF24L01是一种低功耗、高性能的2.4GHz无线收发,由Nordic Semiconductor公司开发。它广泛应用于无线通信领域,特别是在低功耗应用和物联网设备中。
    的头像 发表于 04-16 16:05 2670次阅读
    无线通信时代<b class='flag-5'>nRF24L01</b>无线<b class='flag-5'>模块</b>的应用与特点

    NRF24L01P和SI24R1的区别

    NRF24L01无线模块广泛地运用于:无线门禁、无线数据通讯、安防系统、遥控装置、遥感 勘测、智能运动设备、工业传感;平常我们用到的无线鼠标基本上采用的都是NORDIC的N RF24L01
    发表于 03-29 15:05

    蓝牙发射器有什么作用,蓝牙发射器接收器的区别

    蓝牙发射器是一种能够将音频信号通过蓝牙信号进行无线传输的设备。其主要作用是将电视、电脑、音响等设备的音频信号传输到耳机、音响等蓝牙接收设备上,实现无需线缆的音频传输,让用户更加自由地享受音频娱乐。
    的头像 发表于 02-10 14:41 6943次阅读

    蓝牙适配器、蓝牙接收器和蓝牙发射器傻傻分不清?

    蓝牙接收器是一种设备,通常用于将非蓝牙设备转换为蓝牙设备。蓝牙接收器通常连接到音频设备(如音箱、耳机、汽车音响等),以使它们能够接收通过蓝牙传输的音频信号。
    发表于 02-02 10:23 8498次阅读
    蓝牙适配器、蓝牙<b class='flag-5'>接收器</b>和蓝牙<b class='flag-5'>发射器</b>傻傻分不清?

    nrf24l01接收延迟什么原因

    NRF24L01是一种低功耗的无线收发模块,广泛应用于各种无线通信系统中。它具有高度集成的特点,具备理想的发射接收功率,还能提供数据速率高达2Mbps的无线连接。 遇到
    的头像 发表于 12-29 10:14 1199次阅读