监听多个input改变_带多个NRF24L01模块的Arduino无线网络

本教程介绍了如何使用多个NRF24L01模块构建一个Arduino无线网络,包括如何实现多个节点之间的通信。通过示例展示了如何创建一个由5个节点组成的网络,每个节点既可发送也可接收数据。利用RF24Network库,可以创建一个最多3125个节点的树状网络。示例中包括电位计控制伺服电机、红外传感器控制LED等应用场景。
摘要由CSDN通过智能技术生成

在本教程中,我们将学习如何构建一个由多个NR24L01收发器模块组成的Arduino无线网络。您可以阅读下面的书面教程。

概述

作为一个例子,我制作了一个由5个节点组成的网络,每个节点都可以与网络中的任何节点进行通信,同时它们也可以作为发送器和接收器。这个例子实际上是以一种解释如何建立一个更大的网络的方式设置的,或者更准确地说,我们可以有3125个模块在单个射频信道上相互通信。让我们来看看它是如何工作的。

8c58a09261e3a158f97027197c2f20c0.png

在我之前的教程中我们已经学到了使用NRF24L01模块和RF24库在两个Arduino板之间。现在除了这个库,我们还将使用库,它能够以一种简单的方式构建一个多个板相互通信的Arduino无线网络。下面是网络拓扑的工作原理。

单个NRF24L01模块可同时主动监听6个其他模块。

eda56bd02106242789e21a1a358fae0f.png

rf24networklibrary利用这个能力来生成一个以树状拓扑结构排列的网络,其中一个节点是基础,所有其他节点都是该节点或另一个节点的子节点。每个节点最多可以有5个子节点,这可以深入到5个层次,这意味着我们可以创建一个由3125个节点组成的网络。每个节点都必须定义一个15位地址,它精确地描述了节点在树中的位置。

0399df47e608db56acdeefbc2b4fcb82.png

我们实际上可以用八进制格式定义节点的地址。因此,主节点或基址的地址是00,基址子地址是01到05,01节点子地址是011到051,依此类推。

注意,如果节点011想要与节点02通信,则通信必须经过节点01和基础节点00,因此这两个节点必须一直处于活动状态,以便通信成功。

c8c18644ddaeb2aa89c377934a4a5ef9.png

使用RF24网络库的Arduino无线伺服电机控制

在解释本教程的主要示例之前,为了更好地理解库的工作原理,让我们简单地举两个Arduino板互相通信的例子。这是这个例子的电路图。

e9841e1729a2f4a42ab85816790f5b81.png

您可以从以下链接获取本Arduino教程所需的组件:

NRF24L01收发器模块

伺服电机

电位计

Arduino Nano板

所以在第一个Arduino使用电位计,我们将在第二个Arduino控制伺服电机。现在让我们看看源代码。

以下是电位计的代码:

/*

Arduino Wireless Network - Multiple NRF24L01 Tutorial

== Example 01 - Servo Control / Node 00 - Potentiometer ==

by Dejan, www.HowToMechatronics.com

Libraries:

nRF24/RF24, https://github.com/nRF24/RF24

nRF24/RF24Network, https://github.com/nRF24/RF24Network

*/

#include

#include

#include

RF24radio(10, 9);// nRF24L01 (CE,CSN)

RF24Networknetwork(radio);// Include the radio in the network

constuint16_tthis_node =00;// Address of this node in Octal format ( 04,031, etc)

constuint16_tnode01 =01;

voidsetup(){

SPI.begin();

radio.begin();

network.begin(90, this_node);//(channel, node address)

}

voidloop(){

network.update();

unsignedlongpotValue =analogRead(A0);// Read the potentiometer value

unsignedlongangleValue =map(potValue, 0, 1023, 0, 180);// Convert the value to 0-180

RF24Ne

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值