如何使用NRF24L01收发器模块在两个Arduino板之间进行无线通信

步骤1:nrf24l01功能和规格
nrf24l01无线收发器模块的功能:
žcost(对于类型版本,费用在1 $到3 $之间)
žrange
žavailability
ž易于使用
nrf24l01无线收发器模块的类型:
nrf24lo1有两种类型:
žnrf24l01具有天线(在开放空间中大约为公里)
žnrf24l01(无天线)(在开放空间中大约为50米)
nrf24l01无线收发器模块的应用:
ž无线家庭自动化
ždrones远程控制
ž远程传感器,用于温度,压力,警报等
ž机器人控制和监视
nrf24l01无线收发器模块的功耗:
ž此模块的功耗在传输过程中仅为12ma左右
ž模块的电压范围是1.9至3.6v
第2步:观看视频以了解更多详情
第3步:要克服的问题
许多用户遇到nrf24l01模块的问题。这些问题的根源通常来自3.3v power。由于该模块没有足够的电流能力。这是为什么我建议使用以下任一方式:
ž带有稳压器和旁路电容器的基本模块,以保持稳定性
or
ž从+ 3.3v到gnd直接在模块上的3.3 uf至10 uf(microfarad)电容器
步骤4:原理图
ce和csn引脚可以连接到任何数字引脚。然后,在rf24库中,您可以指定使用的引脚。我选择了引脚8和9,因为我将在示例中使用它们。
在我们的例子中,我们将使用arduino uno,这就是为什么您应该遵循以下说明(或遵循上图)的原因:
mosi连接到数字引脚11
miso连接到数字引脚12
sck连接到数字引脚13
ss(未使用)
注意:使用nrf24l01时,您必须记住这些数字引脚不可用。
请观看以下视频
步骤5:下载rf24库
在此项目中,我们使用了rf24库,该库可以在github上下载:rf24库
1。首先,您需要单击“下载zip”按钮
2。将zip文件解压缩到您的arduino主目录中:linux/linux上的arduino/库或windows中的文档/arduino/库。
步骤6:发射器arduino代码
发送器草图将如下所示:
/** arduino wireless communication tutorial
* transmitter code
*
* by smart technology, https://makesmarttech.blogspot.com/
*
* library: tmrh20/rf24,https://tmrh20.github.io/rf24
*/
#include
#include
#include
#define button 7
rf24 radio(8, 9); // ce, csn
const byte address[6] = “00001”;
boolean buttonstate = 0;
void setup() {
pinmode(button, input);
radio.begin();
radio.openwritingpipe(address);
radio.setpalevel(rf24_pa_max);
radio.stoplistening();
}
void loop() {
delay(5);
radio.stoplistening();
buttonstate = digitalread(button);
radio.write(&buttonstate, sizeof(buttonstate));
}
第7步:接收器arduino代码
接收器草图将如下所示:
/** arduino wireless communication tutorial
* receiver code
*
* by smart technology, https://makesmarttech.blogspot.com/
* library: tmrh20/rf24, https://tmrh20.github.io/rf24
*/
#include
#include
#include
#define led 7
rf24 radio(8, 9); // ce, csn
const byte address[6] = “00001”;
boolean buttonstate = 0;
void setup() {
pinmode(7, output);
serial.begin(9600);
radio.begin();
radio.openreadingpipe(0, address);
radio.setpalevel(rf24_pa_max);
radio.startlistening();
}
void loop() {
delay(5);
radio.startlistening();
while (!radio.available());
radio.read(&buttonstate, sizeof(buttonstate));
if (buttonstate == high) {
digitalwrite(led, high);
}
else {
digitalwrite(led, low);
}
}
第8步:获得支持


你知道吗?数据显示英特尔Core M‍处理器“完爆”苹果A8
3C绿色能源:甲醇燃料电池
容联云发布赤兔大模型,一次由内而外的自我重塑
软通动力助力餐饮零售数字化转型
芯华章连获行业权威奖项 荣膺“年度创新人物”、“年度EDA产品”殊荣
如何使用NRF24L01收发器模块在两个Arduino板之间进行无线通信
欧洲科学家研发出磁驱动的新型高速软体机器人
如何用草图完善自动布线的不足
万物互联的IoT时代,如何在云中聚合大量数据?
人工智能如何走向大众
GPT-4即将实现重大突破 如何打破10000倍规模瓶颈
沉降监测预警装置的自身特点是什么
Lock与Condition接口条件变量方式
苹果A6X处理器深解:ARM GPU性能推至极限
ADS7890的基本外围电路图
aigo国民好物主流及高端固态硬盘产品对比,哪款更适合你
智算中心在AI算法、应用领域的探索和实践
LY1308 180KHz PFM DC-DC升压IC转换器
2018中国互联网续再续篇章 人工智能革新时代特征
华为彻底与安卓划清界限 2024年鸿蒙生态将全面进化