网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月25日漏签0天
arduino吧 关注:75,383贴子:230,290
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 4 5 下一页 尾页
  • 101回复贴,共5页
  • ,跳到 页  
<<返回arduino吧
>0< 加载中...

【教程】使用mirf库实现NRF24L01模块的无线收发

  • 只看楼主
  • 收藏

  • 回复
  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

1 引脚
这种类型的默认不标明引脚,需要看图索骥


2 参数
电源 建议3.3V,不要直接用 5V, 网上资料说会烧毁
图示天线方式的距离 30-50m , 有功率和天线加强的(如某宝的NRF24L01+PA+LNA),据说可以达到1KM, 但arduino使用方法应没有太大差异


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
图例图瞎了 ,再补一个


2025-08-25 08:13:26
广告
不感兴趣
开通SVIP免广告
  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2 mirf 库下载地址
http://playground.arduino.cc/uploads/InterfacingWithHardware/Mirf.zip
这个是官网的,新的1.5.5-r2 的IDE版本也可以拿来直接用
Sketch ,找到对应文件夹,导入库


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
百度抽风了,复制粘贴就发出去了,这个是完整的,IRQ引脚可以不用
CSN -> 7
CE -> 8
MOSI -> 11
MISO -> 12
SCK -> 13


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
4 发送代码
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
void setup(){
Serial.begin(9600);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1"); // 标记本地名,用于接收
Mirf.payload = 5; //对话的长度,用于约定双方对话的缓冲窗口大小,这个代表5个字节
Mirf.channel = 3; // 信道,测试了一下,不同的信道也能接收但即时性很差,不知是不是存在自动寻道匹配机制
Mirf.config();
}
void loop(){
unsigned long time = millis();
Mirf.setTADDR((byte *)"serv1"); // 标记对方的地址
Sends("hello"); //发送了一个5字节的hello
delay(1000);
}
void Sends(char *str)
{
int lens;
lens=strlen(str);
char msg[lens];
int i;
for (i=0;i<lens;i++)
{
msg[i]= int(str[i]);
}
Mirf.send((byte *)&msg);
while(Mirf.isSending()){}
}


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
封装了一个 Sends 函数,这样使用时就可以直接用字符串了,不用逐个字符处理和生成


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
5 接收函数
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
void setup(){
Serial.begin(9600);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"serv1"); // 本地名
Mirf.payload = 5; // 长度
Mirf.channel = 3; // 信道
Mirf.config();
}
void loop(){
byte data[Mirf.payload];
if(!Mirf.isSending() && Mirf.dataReady()){ //存在数据
Mirf.getData(data);
int i;
String Temp;
for (i = 0; i < Mirf.payload; i++) //把收到的信息拼起来,到一个串里面
{
Temp += char(data[i]);
}
Serial.print("Get:");
Serial.print(Mirf.payload);
Serial.print(" ");
Serial.println(Temp);
/**
Mirf.setTADDR((byte *)"clie1");
Mirf.send(data);
**/
}
}


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
就这么简单


2025-08-25 08:07:26
广告
不感兴趣
开通SVIP免广告
  • 锦鳞小妖
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
千斤顶


  • anaesthesia_vp
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
话说这模块干啥的。。既然是教程就介绍下呗


  • mjyshark
  • 闻名一方
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
mark


  • anaesthesia_vp
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
再顶你一次


  • sheerfish9999
  • 颇具盛名
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
模块说明:
nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。
性能参数如下:
◆ 小体积,QFN20 4x4mm封装
◆ 宽电压工作范围,1.9V~3.6V,输入引脚可承受5V电压输入
◆ 工作温度范围,-40℃~+80℃
◆ 工作频率范围,2.400GHz~2.525GHz
◆ 发射功率可选择为0dBm、-6dBm、-12dBm和-18dBm
◆ 数据传输速率支持1Mbps、2Mbps[1]
◆ 低功耗设计,接收时工作电流12.3mA,0dBm功率发射时11.3mA,掉电模式时仅为900nA
◆ 126个通讯通道,6个数据通道,满足多点通讯和调频需要
◆ 增强型“ShockBurst”工作模式,硬件的CRC校验和点对多点的地址控制
◆ 数据包每次可传输1~32Byte的数据
◆ 4线SPI通讯端口,通讯速率最高可达8Mbps,适合与各种MCU连接,编程简单
◆ 可通过软件设置工作频率、通讯地址、传输速率和数据包长度
◆ MCU可通过IRQ引脚快判断是否完成数据接收和数据发送
来自:
http://baike.baidu.com/view/3323099.htm?fr=aladdin


  • 上官梦舞
  • 声名远扬
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
那款带天线的我试了目测700米没问题,没有走太远没有去测到底能走多远


2025-08-25 08:01:26
广告
不感兴趣
开通SVIP免广告
  • xunwapweb
  • 远近闻名
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主有测试丢包、稳定性、距离方面吗


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 5 下一页 尾页
  • 101回复贴,共5页
  • ,跳到 页  
<<返回arduino吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示