Puedo establecer un canal de comunicación entre dos nRF24L01 +. Pero una vez que pateo a un segundo oyente, solo uno de ellos recibe el mensaje. Curiosamente, siempre es lo mismo que "gana" en la situación en la que dos están escuchando. ¿Hay alguna forma de tener múltiples receptores (como una transmisión)?
Aquí está el código de recepción que estoy usando para el Arduino:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
#define channel 0x4c // nrf24 communication channel
#define writingPipe 0xF0F0F0F0E1LL // nrf24 communication address
#define dataRate RF24_250KBPS // nrf24 data rate (lower == more distance)
#define paLevel RF24_PA_HIGH // nrf24 power level (black ebay models have some problems with PA_MAX)
RF24 radio(8,7);
char receive_payload[33]; // +1 to allow room for a terminating NULL char
void setup(void) {
Serial.begin(57600);
printf_begin();
radio.begin();
radio.setPALevel(paLevel);
radio.setChannel(channel);
radio.openReadingPipe(0, writingPipe);
radio.enableDynamicPayloads();
radio.setDataRate(dataRate);
radio.setAutoAck(false);
radio.startListening();
radio.printDetails();
}
void loop(void) {
// if there is data ready
if (radio.available()) {
uint8_t len;
bool done = false;
while (!done) {
// Fetch the payload, and see if this was the last one.
len = radio.getDynamicPayloadSize();
done = radio.read(receive_payload, len);
// Put a zero at the end for easy printing
receive_payload[len] = 0;
// Spew it
printf("Got payload size=%i value=%s\n\r", len, receive_payload);
}
}
delay(1000);
}