创客联盟网
标题:
轻轻松松搞定NRF24L01+无线模块
[打印本页]
作者:
CCFIVE
时间:
2013-8-1 19:32
标题:
轻轻松松搞定NRF24L01+无线模块
(, 下载次数: 103)
上传
点击文件名下载附件
下载积分: 贡献 -1
NRF24L01+是一款市面上相对比较便宜的无线模块,它克服了蓝牙的短距离和1对N,N对N的传输局限。传输距离比蓝牙大,但是编程上就稍微比较复杂。
参数:
2.4GHz 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用
支持六路通道的数据接收
低工作电压:1.9~3.6V低电压工作(
所以是不能接到5V,否则会烧坏模块
)
高速率:2Mbps
采用硬件SPI口连接或用单片机I/O口进行模拟。
引脚说明:
(, 下载次数: 105)
上传
点击文件名下载附件
下载积分: 贡献 -1
(, 下载次数: 98)
上传
点击文件名下载附件
下载积分: 贡献 -1
做这个实验,要有两块arduino和两块NRF24L01+!
每一块NRF模块分别对应接板子的
/*
* 管脚接线
* 硬件 SPI:
* MISO -> 12
* MOSI -> 11
* SCK -> 13
*
* Configurable:
* CE -> 8
* CSN -> 7
*
*电源:
*
VCC -> 3.3V(3V3) **切记不要接错,接到5V,会烧坏芯片**
* GND -> GND(-)
*/
切记要对照着接,线比较多,很容易接错,我第一次也是接了很多次才正确。接完线记得检查下!
NRF24L01+其实arduino中也有库,只不过需要自己添加一下。
把文件夹Mirf拷贝到arduino软件libraries路径
重启arduino软件,就可以在File》examples中找到Mirf的程序。
测试程序:
NRF_TO_SEND_Serial 为无线模块接收串口发来的数据通过无线发送出去。给红色小熊板子下载
NRF_TO_RECEIVE_Serial 为无线接收到数据后向串口打印回来收到的数据,给白色小熊板子下载
红色小熊程序:
[mw_shl_code=applescript,true]/*
* 管脚接线
* 硬件 SPI:
* MISO -> 12
* MOSI -> 11
* SCK -> 13
*
* Configurable:
* CE -> 8
* CSN -> 7
*
*电源:
* VCC -> 3.3V(3V3) **切记不要接错,接到5V,会烧坏芯片**
* GND -> GND(-)
*/
#include "SPI.h" //24L01库文件
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"
char aaa;
void setup(){
Serial.begin(9600);
/* 可以用下面的语句改变 CE / CSN 接口:
*
* Mirf.csnPin = 9;
* Mirf.cePin = 7;
*/
/*
Mirf.cePin = 7;
Mirf.csnPin = 8;
*/
Mirf.spi = &MirfHardwareSpi; //加载24L01 SPI
Mirf.init(); //开始
Mirf.setTADDR((byte *)"serv1");//发送到"接收地址"
Mirf.payload = sizeof(char);
Mirf.config();
}
void loop(){
while(Serial.available()>0)
{
aaa=Serial.read(); // 读串口数据
Mirf.send((byte *)&aaa); //把数据通过无线发送
while(Mirf.isSending()) // 等待发送完毕
{
}
}
} [/mw_shl_code]
白色小熊程序:[mw_shl_code=applescript,true]/*
* 管脚接线
* 硬件 SPI:
* MISO -> 12
* MOSI -> 11
* SCK -> 13
*
* Configurable:
* CE -> 8
* CSN -> 7
*
*电源:
* VCC -> 3.3V(3V3) **切记不要接错,接到5V,会烧坏芯片**
* GND -> GND(-)
*/
#include "SPI.h" //24L01库文件
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"
char data;
char aaa;
void setup(){
Serial.begin(9600);
/* 可以用下面的语句改变 CE / CSN 接口:
*
* Mirf.csnPin = 9;
* Mirf.cePin = 7;
*/
/*
Mirf.cePin = 7;
Mirf.csnPin = 8;
*/
Mirf.spi = &MirfHardwareSpi; //加载24L01 SPI
Mirf.init();
Mirf.setRADDR((byte *)"serv1"); //接收地址" "
Mirf.payload = sizeof(char); //数据类型()
Mirf.config();
}
void loop(){
if(Mirf.dataReady())
{ //如果接收到数据则执行
Mirf.getData((byte *)&data); //接收数据
aaa=data;
Mirf.rxFifoEmpty(); //清理24L01援存
Serial.print(aaa); // 串口显示接收到的数据
}
} [/mw_shl_code]
下载完我们打开我们提供给大家的“串口调试小助手V1.3”
分别打开串口!记得要选对串口!如下图所示,红色小熊作为发射(COM35),白色板子作为接收(COM33),发送什么数据,那边就会接收到什么数据
(, 下载次数: 93)
上传
点击文件名下载附件
下载积分: 贡献 -1
(, 下载次数: 86)
上传
点击文件名下载附件
下载积分: 贡献 -1
欢迎光临 创客联盟网 (https://immaker.org/)
Powered by Discuz! X3.3