Multiple Receive Example
The nRF24L01 has 6 receive data pipes (RX_ADDR_P0-P6).
In this library, the first data pipe(RX_ADDR_P0) is used for automatic ACK reception on transmission.
The second(RX_ADDR_P1) to sixth(RX_ADDR_P5) data pipes are used for data reception.
Therefore, it is possible to receive from a maximum of five transmitting sides.
This example receive from 1RECV/2RECV/3RECV/4RECV/5RECV
.
nRF24L01 Address Register Setting
Sender | Receiver | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
#1 | TX_ADDR "1RECV" |
RX_ADDR_P0 "1RECV" |
RX_ADDR_P1 NONE |
TX_ADDR NONE |
RX_ADDR_P0 NONE |
RX_ADDR_P1 "1RECV" |
RX_ADDR_P2 "2RECV" |
RX_ADDR_P5 "5RECV" |
||
(Send Data) | -> | -> | -> | -> | -> | (Get Data) | Data to Receiver | |||
(Get Ack) | <- | <- | <- | <- | (Send Ack) | Ack to Sender | ||||
#2 | TX_ADDR "2RECV" |
RX_ADDR_P0 "2RECV" |
RX_ADDR_P1 NONE |
TX_ADDR NONE |
RX_ADDR_P0 NONE |
RX_ADDR_P1 "1RECV" |
RX_ADDR_P2 "2RECV" |
RX_ADDR_P5 "5RECV" |
||
(Send Data) | -> | -> | -> | -> | -> | -> | (Get Data) | Data to Receiver | ||
(Get Ack) | <- | <- | <- | <- | <- | (Send Ack) | Ack to Sender | |||
#5 | TX_ADDR "5RECV" |
RX_ADDR_P0 "5RECV" |
RX_ADDR_P1 NONE |
TX_ADDR NONE |
RX_ADDR_P0 NONE |
RX_ADDR_P1 "1RECV" |
RX_ADDR_P2 "2RECV" |
RX_ADDR_P5 "5RECV" |
||
(Send Data) | -> | -> | -> | -> | -> | -> | -> | (Get Data) | Data to Receiver | |
(Get Ack) | <- | <- | <- | <- | <- | <- | (Send Ack) | Ack to Sender |
Configuration
Receiver Register
RX_ADDR_P1 is 0x3152454356.
RX_ADDR_P2 will be 0x3252454356. The same value is used for the last 4 bytes.
Communicat with Arduino Environment
Run this sketch.
ArduinoCode\Multiple-Receive/EmitterX