NRF2401芯片pin定义

NRF24L01模块pin定义

  1. VCC 脚接电压范围为 1.9V~3.6V 之间, 不能在这个区间之外, 超过 3.6V 将会烧毁模块, 推荐电压 3.3V 左右
  2. 除电源 VCC 和接地端, 其余脚都可以直接和普通的 5V 单片机 IO口直接相连, 无需电平转换. 当然对 3V 左右的单片机更加适用了.
  3. 硬件上面没有 SPI 的单片机也可以控制本模块, 用普通单片机 IO口模拟 SPI. 不需要单片机真正的串口介入, 只需要普通的单片机 IO口就可以了, 当然用串口也可以了.

NRF24L01的USB串口调试设备

连接方式为 NRF24L01的天线端朝向远离USB口的方向, 8pin对齐插入. 连接后是一个Z字形, 不是U字形.

Ubuntu下连接USB串口设备后检测NRF24L01模块

apt-get install cutecom安装cutecom, 运行打开界面. 通过dmesg得到串口设备名(例如 /dev/ttyUSB0)后连接. 默认波特率为9600, 点击Open Device打开

1. 查询设备配置: AT? 回车
2. 设置接收地址: AT+RXA=0xAA,0xBB,0xCC,0xDD,0xEE
3. 设置目标地址: AT+TXA=0x11,0x22,0x33,0x44,0x55

Arduino接线方式

24L01     Arduino UNO
GND GND
VCC .3V
CE digIO
CSN digIO
SCK digIO
MOSI digIO
MISO digIO
IRQ -

发送端测试代码

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h" const uint64_t pipe = 0xE8E8E8E8E8LL;
RF24 radio(,); void setup(void){
Serial.begin();
Serial.println("RF24 Sender Started"); radio.begin();
radio.openWritingPipe(pipe);
radio.printDetails();
} void loop(void) {
Serial.print("Sending...");
unsigned long start_time = micros();
Serial.print(start_time);
Serial.print(". ");
// Take the time, and send it. This will block until complete
if (!radio.write( &start_time, sizeof(unsigned long) )){
Serial.println("failed");
} else {
Serial.println("succeeded");
}
delay();
}

接收端测试代码

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h" const uint64_t pipe = 0xE8E8E8E8E8LL;
RF24 radio(,); void setup(void){
Serial.begin();
Serial.println("RF24 Receiver Started"); radio.begin();
radio.openReadingPipe(, pipe);
radio.startListening();
radio.printDetails();
} void loop(void){
unsigned long got_time;
if (radio.available()){
Serial.print("Receiving...");
radio.read(&got_time, sizeof(unsigned long) );
Serial.print(got_time);
Serial.println(".");
}
delay();
}

测试的时候, 先启动接收端, 再启动发送端. 如果接收端未启动, 发送端的radio.write()方法会返回失败.

NRF24L01无线模块的使用的更多相关文章

  1. nRF2401A/nRF24L01/nRF24L01+无线模块最常见问题汇集(转)

    俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经 ...

  2. STC8H开发(五): SPI驱动nRF24L01无线模块

    目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...

  3. nRF24L01无线模块笔记

    nRF24L01模块 官网链接: https://www.nordicsemi.com/Products/nRF24-series 常见的无线收发模块, 工作在2.4GHz频段, 适合近距离遥控和数据 ...

  4. [51单片机] nRF24L01 无线模块 测试 按键-灯-远程控制

    哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦.其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过 ...

  5. NRF24L01 无线模块的使用

    NRF24L01 是一款工作在2.4-2.5GHz通用ISM频段的单片收发芯片 工作电压:1.9-3.6V低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象 多频点 ...

  6. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (六) 树莓派查询子节点温湿度数据

    nrl24l01每次只能发送4个字节,前面说到,第一个字节用于源节点,第二个字节用于目的节点.因此只剩下两个字节用于温度和湿度,一个字节只有八位,需要表示温湿度的正负数,因此每个字节的第一位表示正负符 ...

  7. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (五) 树莓派单子节点发送数据

    本项目中各个节点和树莓派的通信不区分信道,因此如果由树莓派发送给特定节点的数据会被所有节点接收到,因此子节点可以判别该数据是否发给自己的,需要在数据的第二个字节中加入目标节点的编号(第一个字节为源节点 ...

  8. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (四) 树莓派单子节点查询

    考虑到项目的实际需要,树莓派作为主机,应该只在需要的时候查询特定节点发送的数据,因此接收到数据后需要根据头部判断是否是自己需要的数据,如果不是继续接收数据,超过一定时间未查询到特定节点的数据,则退出程 ...

  9. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (三) 全双工通信

    设计思路 Arduino Leonardo初始化为发送模式,发送完成后,立即切换为接收模式,不停的监听,收到数据后立即切换为发送模式,若超过一定时间还为接收到数据,则切换为发送模式. 树莓派初始化为接 ...

随机推荐

  1. Iocomp控件教程之Analog Display—模拟显示控件(优于EDIT控件)

    Analog Display是简洁的显示控件.用于显示指定准确度和单位的模拟值(实数),能够将准确度设置为0.使显示结果为整数. 第一步:建立MFC对话框 第二步:插入AnalogDisplay控件 ...

  2. 支付宝 iphone6 指纹验证失败

    重启 iphone6  就可以了. 再次打开 支付宝 那个 指纹功能,就有一个弹出框 可以按指纹了.

  3. verilog语法实例学习(3)

    Verilog 操作运算符 算术运算符 +,-,*,/,**(加/减/乘/除/幂运算),乘法运算的结果的位宽是乘数和被乘数位宽的和. 在进行整数的除法运算时,结果要略去小数部分,只取整数部分:而进行取 ...

  4. OpenCV教程(45) harris角的检测(3)

          在前面一篇教程中,我们通过取局部最大值的方法来处理检测结果,但是从图像中可以看到harris角的分布并不均匀,在纹理颜色比较深的地方检测的harris角结果更密集一些.本章中,我们使用一个 ...

  5. 不知不觉vs2012 update 4出来了

    今天早上起来原来看新闻说VISUAL STUIDO  2013 正式发布的日期是11月13日,今天打开微软VS2013下载页面,发现没有任何迹象,在浏览里面的新闻的时候发现了VS2012 UPDATA ...

  6. google map放大缩小地图去除 ctrl+,直接用鼠标放大缩小

    如图,最近突然需要ctrl+鼠标滚动,才可以放大缩小地图: 这个问题也困扰了我很久,这个解决办法也是在看到一个帖子才发现的,所以记录一下,如图: map = new google.maps.Map(d ...

  7. [javase学习笔记]-6.4 成员变量与局部变量

    前面我们学习了类的定义,我们不难理解,定义类事实上就是在定义类中的成员. 成员包含成员变量和成员函数. 说到成员变量,我们非常自然会想到前面提到过的局部变量,那么它们之间有什么差别呢? 首先我们定义一 ...

  8. 关于Spring mvc 一次请求Controller执行两次的问题

    资源路径为空时也会导致重复请求.< span style="background-image:url('');" >相关推荐< /span >,此时就会出现 ...

  9. [Algorithm] Binary tree: Level Order Traversal

    function Node(val) { return { val, left: null, right: null }; } function Tree() { return { root: nul ...

  10. fread/fwrite

    fread/fwrite第二个参数和第三个参数的区别以及与返回值的关系 size_t fwrite_unlocked(const void * __restrict ptr, size_t size, ...