“(SKU:RB-03T006)NRF24L01无线数传模块”的版本间的差异
来自ALSROBOT WiKi
(→应用例程1) |
|||
第14行: | 第14行: | ||
===引脚说明=== | ===引脚说明=== | ||
[[文件:hohn7.jpg|500px|有框|居中]] | [[文件:hohn7.jpg|500px|有框|居中]] | ||
− | == | + | ==应用例程== |
− | [ | + | 1.库文件下载<br/> |
− | [[ | + | [http://playground.arduino.cc/uploads/InterfacingWithHardware/Mirf.zip mirf 库下载地址]<br/> |
+ | 2.连接Arduino和NRF2401模块<br/> | ||
+ | {|border="1" cellspacing="0" align="center" cellpadding="5" width="400px" | ||
+ | |- | ||
+ | |align="center"|NRF2401 | ||
+ | |align="center"|Arduino | ||
+ | |- | ||
+ | |align="center"|VCC | ||
+ | |align="center"|3V3 | ||
+ | |- | ||
+ | |align="center"|GND | ||
+ | |align="center"|GND | ||
+ | |- | ||
+ | |align="center"|CSN | ||
+ | |align="center"|D7 | ||
+ | |- | ||
+ | |align="center"|CE | ||
+ | |align="center"|D8 | ||
+ | |- | ||
+ | |align="center"|MOSI | ||
+ | |align="center"|D11 | ||
+ | |- | ||
+ | |align="center"|MISO | ||
+ | |align="center"|D12 | ||
+ | |- | ||
+ | |align="center"|SCK | ||
+ | |align="center"|D13 | ||
+ | |||
+ | |} | ||
+ | <br> | ||
+ | |||
+ | 3.代码下载<br/> | ||
+ | 发送端代码<br/> | ||
+ | <pre style='color:blue'> | ||
+ | #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; | ||
+ | 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()){} | ||
+ | |||
+ | }</pre> | ||
+ | <br/> | ||
+ | 接收端代码:<br/> | ||
+ | <pre style='color:blue'>#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); | ||
+ | } | ||
+ | }</pre> | ||
+ | |||
==应用例程2== | ==应用例程2== | ||
[[文件:hohn10.jpg|500px|有框|居中]] | [[文件:hohn10.jpg|500px|有框|居中]] |
2015年7月2日 (四) 16:49的版本
目录 |
产品概述
NRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进 行配置。NRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
规格参数
- 2Mbit/s速率下接收时的峰值电流12.5mA
- 在2Mbit/s速率下@0dBm输出时的峰值电流11mA
- 掉电模式下的功耗400nA
- 待机模式下的功耗32uA
- 130us 的快速切换和唤醒时间
- 具有片内稳压器oltage regulators
- 可在1.9 to 3.6V低电压工作
- MultiCeiverMT硬件提供同时6个接收机的功能,2Mbit/s 使得高质量的VoIP成为可能
使用方法
引脚说明
应用例程
1.库文件下载
mirf 库下载地址
2.连接Arduino和NRF2401模块
NRF2401 | Arduino |
VCC | 3V3 |
GND | GND |
CSN | D7 |
CE | D8 |
MOSI | D11 |
MISO | D12 |
SCK | D13 |
3.代码下载
发送端代码
#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; 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()){} }
接收端代码:
#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); } }
应用例程2
产品相关推荐
购买地址:NRF24L01无线数传模块