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));

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

    关注

    15

    文章

    2585

    浏览量

    74397
  • 发射器
    +关注

    关注

    6

    文章

    883

    浏览量

    54690
  • nRF24L01
    +关注

    关注

    17

    文章

    331

    浏览量

    71450
  • Arduino
    +关注

    关注

    190

    文章

    6501

    浏览量

    193094
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Analog Devices Inc. AD9986 4T2R射频发射器和观察接收器数据手册

    Analog Devices Inc. AD9986 4T2R直接射频发射器和观察接收器是一款高度集成的器件,采用16位、12GSPS最大采样率射频DAC内核和12位、6GSPS速率射频ADC内核。AD9986提供四个发射器通道
    的头像 发表于 06-30 14:34 ?256次阅读
    Analog Devices Inc. AD9986 4T2R射频<b class='flag-5'>发射器</b>和观察<b class='flag-5'>接收器</b>数据手册

    LE 发射器接收器测试返回错误结果是什么原因导致的?

    我有特定的代码运行来启动和停止一些无线电频率测试。 目前只关注 BLE 发射器接收器测试。 然而,此处第 6 节 LE 测试结束时的文档指出,当 le 发射器测试处于活动状态时,接收
    发表于 06-30 08:08

    NRF24L01项目资料(2.4G通信)实例项目下载

    NRF24L01项目资料(2.4G通信)实例项目,推荐下载!
    发表于 06-03 20:46

    ESD保护 RS-232发射器/接收器HIN208E数据手册

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 发射器 /接收器接口电路符合所有美国电子工业协会(EIA)高速
    的头像 发表于 05-25 17:21 ?311次阅读
    ESD保护 RS-232<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>HIN208E数据手册

    HIN206E RS-232发射器/接收器数据手册

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 发射器 /接收器接口电路符合所有美国电子工业协会(EIA)高速
    的头像 发表于 05-25 17:13 ?280次阅读
    HIN206E RS-232<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>数据手册

    HIN202E RS-232发射器/接收器数据手册

    HIN202E、HIN206E、HIN207E、HIN208E、HIN211E、HIN213E、HIN232E 系列 RS-232 发射器 /接收器接口电路符合所有美国电子工业协会(EIA)高速
    的头像 发表于 05-25 17:00 ?256次阅读
    HIN202E RS-232<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>数据手册

    带0.1F外部电容的+5V供电RS-232发射器/接收器HIN202数据手册

    HIN202、HIN206、HIN207、HIN208、HIN211、HIN213 系列 RS-232 发射器 / 接收器接口电路符合所有美国电子工业协会(EIA)RS-232E 和 V.28 标准
    的头像 发表于 05-25 16:49 ?243次阅读
    带0.1F外部电容的+5V供电RS-232<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>HIN202数据手册

    +5V供电的RS-232发射器/接收器HIN232数据手册

    仅需单个 + 5V 电源供电,并集成板载电荷泵电压转换,可从 5V 电源生成 + 10V 和 - 10V电源。 *附件:+5V供电的RS-232发射器接收器HIN232数据手册.pdf 该系列器件
    的头像 发表于 05-25 16:29 ?371次阅读
    +5V供电的RS-232<b class='flag-5'>发射器</b>/<b class='flag-5'>接收器</b>HIN232数据手册

    基于nRF24L01+的2.4GHz无线模块设计与应用

    nRF24L01+是一款由Nordic Semiconductor设计的单片射频收发芯片,工作于2.4~2.5GHz ISM频段,采用GFSK调制技术,支持高达2Mbps的数据传输速率,具备低功耗特性,适用于2.4G无线通信应用场景。
    的头像 发表于 04-28 11:19 ?606次阅读
    基于<b class='flag-5'>nRF24L01</b>+的2.4GHz无线<b class='flag-5'>模块</b>设计与应用

    stmf103c8t6使用nrf24l01发送和接收数据,接收端STATUS寄存的值始终为0x0E, FIFO_STATUS的值为0x11。

    stmf103c8t6使用nrf24l01发送和接收数据,通过失能自动应答,发送端调通了,但是接收端始终无法收到消息,下面是接收端的主要代码: void
    发表于 04-19 23:32

    红外发射器是什么_红外发射器怎么安装

    红外发射器是一种通过红外线发射管在一定范围内发射光线,从而达到控制信号作用的遥控设备。以下是对红外发射器的详细介绍:
    的头像 发表于 01-28 13:46 ?2406次阅读

    CW32模块使用 NRF24L01无线2.4G模块

    NRF24L01是一款工作在2.4-2.5GHz世界通用ISM频段的单片收发芯片, 使用4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单;输出功率、频道选择和协议的设置
    的头像 发表于 01-23 13:00 ?696次阅读
    CW32<b class='flag-5'>模块</b>使用 <b class='flag-5'>NRF24L01</b>无线2.4G<b class='flag-5'>模块</b>

    有人用过USB转NRF24L01模块吗,求指教

    如图,我买了一个这个模块,然后买了两个NRF24L01。 其中一个接上了USB转NRF24L01模块,另外一个直连了stm32。 我想问接到转换
    发表于 01-08 17:12

    TMS320DM6467支持HDMI发射器/接收器

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

    无线充电接收器怎么使用

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