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

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

3天内不再提示

怎样用nRF24l01模块创建无线连接

454398 来源:工程师吴畏 2019-07-26 10:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

nRF24L01无线电收发器提供了非常有效和廉价的通信方式。

nRF24l01模块实际上是一个无线电收发器模块,它工作在2.4 GHz频率上。该模块具有同时发送和接收数据的功能,可用于各种IOT项目以创建无线连接。通过显示它是一个非常小的模块,但它的功能是惊人的。

这个模块可以用于两个方式沟通的目的,在本教程中我们设置两个Arduino uno之间的单向通信。

开始之前我们有下载一些Arduino库,以便顺利运行程序。您可以在此处下载库文件。

nRF24lL01的引脚图

怎样用nRF24l01模块创建无线连接

Reciver Circuit

按照上图,将nRF24L01和伺服电机连接到arduino。

重要提示:输入电压为1.9V~3.6V,不要超过此电压,否则会烧毁模块。

的Arduino ------------- nRF24L01的

Pin 9 ----------- CE

Pin 10 --------- CS(N)

Pin 11 ---------- MOSI

Pin 12 --------- MISO

Pin 13 ---------- SCK

引脚3 -------------伺服信号引脚

3.3v ---------- --- VCC

GND ---------- - GND

现在将下面给出的接收器代码上传到第一个Arduino。

#include
#include
#include
#include//includetheServolibrary
ServomyServo;

intmsg[1];
RF24radio(9,10);//checkyourpinnumberonRF24githubcheckyouhavetheright
//pinnumberforthearduinoyou'reusing.thispinisdiffrentfordiffrentarduinomodels.

constuint64_tpipe=0xF0F0F0F0D2L;


voidsetup(void)
{
myServo.attach(3);
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
myServo.write(0);//initialpositionofservoatangle0

}

voidloop(void)
{
if(radio.available()){
booldone=false;
while(!done){
done=radio.read(msg,1);
Serial.println(msg[0]);
if(msg[0]==212){
myServo.write(180);
}
else{
myServo.write(0);
}
}
}
}

发送器电路

按照上图,将nRF24L01和伺服电机连接到arduino。

重要提示:输入电压为1.9V~3.6V,不要超过此电压,否则会炸毁模块。

的Arduino ------------- nRF24L01的

Pin 9 ----------- CE

Pin 10 --------- CS(N )

Pin 11 ---------- MOSI

Pin 12 --------- MISO

Pin 13 ---------- SCK

5脚-------------按钮

3.3v ------------- VCC

GND ------------ GND

现在将下面给出的发射机代码上传到第二个Arduino。

现在给Arduino板供电并按下按钮,发现伺服旋转。

#include
#include
#include

intmsg[1];
RF24radio(9,10);//checkyourpinnumberonRF24githubcheckyouhavetheright
//pinforthearduinoyou'reusing.thispinnumberisdiffrentfordiffrentarduinomodels.

constuint64_tpipe=0xF0F0F0F0D2L;

intbuttonPin1=5;
intbuttonState1=0;

voidsetup(void)
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
pinMode(buttonPin1,INPUT);

}

voidloop(void)
{
buttonState1=digitalRead(buttonPin1);


if(buttonState1==HIGH)
{
msg[0]=212;
radio.write(msg,1);
}

}

谢谢你,希望教程帮助你......

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

    关注

    17

    文章

    331

    浏览量

    72891
  • 无线连接
    +关注

    关注

    2

    文章

    441

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SI24R1完美代替NRF24L01

    NRF24L01无线模块广泛地运用于:无线门禁、无线数据通讯、安防系统、遥控装置、遥感勘测、智能运动设备、工业传感器;平常我们用到的
    发表于 11-28 11:10

    无线连接技术如何助力汽车设计创新

    无线连接技术已成为现代车辆设计的基石。然而,随着原始设备制造商(OEMs)和一级供应商将更多消费级无线技术集成到其车辆平台中,他们面临着与众多电子产品生产商相同的挑战:如何从研发初期到大规模生产阶段,创建并管理高效、可重复、可扩
    的头像 发表于 11-10 09:44 2048次阅读

    使用NRF24l01软件包注册设备失败怎么解决?

    1.根据软件包提示第一步先打开了SPI驱动框架 2.然后软件包添加了 nrf24l01最新版本以及demo、debug 3.在board.h #define using_spi1 在board.c
    发表于 09-23 06:51

    MX_SPI1_Init这个函数有什么呢?

    在用nrf24l01软件包的时候用到spi,按照board.h中的提示中,cubemx生成:HAL_SPI_MspInit和MX_SPI1_Init. 但是drv_spi中
    发表于 09-23 06:00

    官网nrf24l01的例程demo会出现互斥锁报错是为什么?

    我在用nrf24L01官网下载的例程包,stm32进行开发,串口助手显示互斥锁错误,有朋友遇到这个问题吗
    发表于 09-10 06:05

    SI24R1:答题卡方案芯片替代NRF24L01+

    SI24R1简介Si24R1低功耗2.4GHz收发一体射频芯片量产于2012年,由于其一致性稳定性高、功耗低、远距离、兼容替代NRF24L01+,兼容NORDIC 2.4GHz协议等特点,一直
    发表于 07-31 10:29

    nRF54L15 # 超低功耗无线 SoC

    nRF54L15 概述 *附件:nRF54L15_nRF54L10_nRF54L05_Preliminary_Datasheet_v0.9.pdf 特征 128 MHz Arm Cortex-M33
    的头像 发表于 07-01 16:57 2714次阅读
    <b class='flag-5'>nRF54L</b>15 # 超低功耗<b class='flag-5'>无线</b> SoC

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

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

    nRF54L系列支持先进Matter 应用

    | nRF54L15具有支持这些新型Matter产品的无线连接、内存和处理能力。这款SoC的超低功耗 2.4 GHz无线电可在一定的范围内提供稳健的Thread 和低功耗蓝牙连接。其A
    发表于 05-26 14:45

    nRF54L系列支持先进Matter 应用

    nRF54L15具有支持这些新型Matter产品的无线连接、内存和处理能力。这款SoC的超低功耗 2.4 GHz无线电可在一定的范围内提供稳健的Thread 和低功耗蓝牙连接。其Arm
    发表于 05-19 15:38

    nRF24L01+ Altium Designer库文件

    nRF24L01+ Altium Designer库文件下载链接
    发表于 04-30 15:26

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

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

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

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

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

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

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

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