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

俗话说:每个人一生下来什么都会的,都是通过自己努力和探索出来的,NRF系列芯片,刚开始都好奇心加兴趣才来捣鼓它的,刚开始做硬件和软件,没有收发数据弄得整个人头都快炸开了,所以在此和大家分享一下前辈的经验,希望大家会少走弯路. Q:最近在选型的时候发现基本常见的无线模块都是3V供电,而我使用的单片机是5V的,它们之间要怎么连接呢?直接连接会不会损坏模块? 回答: 如果你使用的51单片机的P0口是高阻引脚,可以直接将无线模块的IO脚连接到P0端口,并在对应的连线与3V电源间放置1K~10K左右的偏置…
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明 STC8H开发(四): FwLib_STC8 封装库的介绍和使用注意事项 STC8H开发(五): SPI驱动nRF24L01无线模块 nRF24L01模块 整体介绍和STM32F1, STM32F4, STC12的代码…
nRF24L01模块 官网链接: https://www.nordicsemi.com/Products/nRF24-series 常见的无线收发模块, 工作在2.4GHz频段, 适合近距离遥控和数据传输. nRF24L01是一个能兼顾距离和数据速率的无线模块, 在空旷环境下,2M速率15米, 1M速率30米, 250K速率能达到50米. 和蓝牙相比距离更远, 和ESP8266这类以太网WiFi相比环境适应力更强. 参数 2.4GHz ISM频段 250Kbps, 1Mbps, 2Mbps三种空…
哈哈,穷吊死一个,自己做的一个超简单的板还没有电源提供,只得借助我的大开发板啦.其实这2个模块是完全可以分开的,无线嘛,你懂得!进入正题,这个实验的功能就是一个发送模块(大的那个板)连接4个按键,通过按动这4个不同的按键来发送4种不同的命令,来控制接收端(小的板)点亮4个不同的灯. >_<!首先是发送模块: void main() { uchar Tx_Buf1[]={}; //发送的信息1 uchar Rx_Buf[]; //接收到的数据暂存器,最多32字节数据 init_NRF24L01(…
NRF24L01 是一款工作在2.4-2.5GHz通用ISM频段的单片收发芯片 工作电压:1.9-3.6V低电压工作 高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象 多频点:125 频点,满足多点通信和跳频通信需要 超小型:内置2.4GHz天线,体积小巧,15x29mm(包括天线) 低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗. 低成本 便于开发 接线方式 : SPI MOSI   主出从入 MISO   主入从出 SCK      …
NRF2401芯片pin定义 NRF24L01模块pin定义 VCC 脚接电压范围为 1.9V~3.6V 之间, 不能在这个区间之外, 超过 3.6V 将会烧毁模块, 推荐电压 3.3V 左右 除电源 VCC 和接地端, 其余脚都可以直接和普通的 5V 单片机 IO口直接相连, 无需电平转换. 当然对 3V 左右的单片机更加适用了. 硬件上面没有 SPI 的单片机也可以控制本模块, 用普通单片机 IO口模拟 SPI. 不需要单片机真正的串口介入, 只需要普通的单片机 IO口就可以了, 当然用串口…
nrl24l01每次只能发送4个字节,前面说到,第一个字节用于源节点,第二个字节用于目的节点.因此只剩下两个字节用于温度和湿度,一个字节只有八位,需要表示温湿度的正负数,因此每个字节的第一位表示正负符号,后七位表示数据,最大能表示+-127. 树莓派代码 如下: #include <cstdlib> #include <iostream> #include <sstream> #include <string> #include <unistd.h&g…
本项目中各个节点和树莓派的通信不区分信道,因此如果由树莓派发送给特定节点的数据会被所有节点接收到,因此子节点可以判别该数据是否发给自己的,需要在数据的第二个字节中加入目标节点的编号(第一个字节为源节点的编号). 设计思路:基于前面提到的两个节点进行双工通信,树莓派不断的向节点发送数据,为了保证数据发送可以到达,持续发送100ms. 树莓派代码 如下: #include <cstdlib> #include <iostream> #include <sstream> #i…
考虑到项目的实际需要,树莓派作为主机,应该只在需要的时候查询特定节点发送的数据,因此接收到数据后需要根据头部判断是否是自己需要的数据,如果不是继续接收数据,超过一定时间未查询到特定节点的数据,则退出程序,避免无限等待. 本项目中各个节点和树莓派的通信不区分信道,因此如果由树莓派发送给特定节点的数据会被所有节点接收到,因此子节点可以判别该数据是否发给自己的,需要在数据的第二个字节中加入目标节点的编号(第一个字节为源节点的编号). 树莓派代码 如下: #include <cstdlib> #inc…
设计思路 Arduino Leonardo初始化为发送模式,发送完成后,立即切换为接收模式,不停的监听,收到数据后立即切换为发送模式,若超过一定时间还为接收到数据,则切换为发送模式. 树莓派初始化为接收模式,接收到数据后立即切换为发送模式,超过一定时间为接收到数据则切换为发送模式,发送数据后立即切换为接收模式. 代码实现 Arduino Leonardo代码 如下: #include <SPI.h> #include "RF24.h" #include <SPI.h&…