NRF24L01 - problemi di affidabilità

Buongiorno a tutti.

Con un UNO invio comandi ad un Mega utilizzando il modulo NRF24L01 completo di antenna e basetta (alimentandolo quindi a 5V).

Il comando che invio è l'accensione/spegnimento di più LED (in pratica un timer) ad una distanza di ca. 50/80 mt in linea d'aria senza ostacoli.

i parametri del trasmettitore sono questi:

// Definizione radio
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <printf.h>

const uint64_t pipes[1] = {0xF0F0F0F0E1LL};
RF24 radio(9, 10);


void setup() {
  Serial.begin(9600);
  printf_begin();
  radio.begin();
  radio.setRetries(15, 15);
  radio.setPayloadSize(32);
  radio.openWritingPipe(pipes[0]);
  radio.startListening();
  radio.setPALevel(RF24_PA_HIGH);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
}

Quelli del ricevente sono:

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <printf.h>

/*
   SCK -->52  (13)
   MOSI--> 51 (11)
   MISO--> 50 (12)
*/

RF24 radio(49, 53);
const uint64_t pipes[1] = {0xF0F0F0F0E1LL};


void setup() {
  while (!Serial);
  Serial.begin(9600);
  printf_begin();
  radio.begin();
  radio.setRetries(15, 15);
  radio.setPayloadSize(32);
  radio.openReadingPipe(0, pipes[0]);
  radio.startListening();
  radio.setPALevel(RF24_PA_HIGH);

Tutto funziona correttamente per 100/150 secondi, poi la comunicazione si interrompe.

Togliendo e ridando corrente al ricevente la trasmissione riprende per un periodo circa altrettanto lungo.

Il sistema "lavora" nei pressi di una potente antenna per trasmissione dati aziendali per cui potrebbero esserci delle interferenze.

Domanda: che ne pensate? come posso (se posso) modificare la frequenza della trasmissione per evitare interferenze? ritenete l'analisi da me fatta corretta?

Grazie + saluti

dove hai scaricato la libreria RF24???

le librerie le puoi trovare qui:

Molto istruttivo è anche il contenuto in questa pagina:

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo#lib

è in inglese ma contiene molte informazioni comprensibili.

Ciao.

enrico24:
le librerie le puoi trovare qui:

https://github.com/nRF24/RF24

Molto istruttivo è anche il contenuto in questa pagina:

http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo#lib

è in inglese ma contiene molte informazioni comprensibili.

Ciao.

ci provo grazie mille

enrico24:
Con un UNO invio comandi ad un Mega utilizzando il modulo NRF24L01 completo di antenna e basetta (alimentandolo quindi a 5V).

Scusa, non ho capito bene, cosa alimenti a 5V? Ed il modulo NRF come lo alimenti?

Tutto funziona correttamente per 100/150 secondi, poi la comunicazione si interrompe.
Togliendo e ridando corrente al ricevente la trasmissione riprende per un periodo circa altrettanto lungo.
Il sistema "lavora" nei pressi di una potente antenna per trasmissione dati aziendali per cui potrebbero esserci delle interferenze.

Non credo dipenda da questo il "blocco" dopo quei 150 secondi, se ci sono interferenze o sono costanti nel tempo o totalmente irregolari. Comunque se conosci le frequenze alle quali lavora questo trasmettitore si può cercare di capire forse qualcosa (se WiFi o meno, e in tal caso su quale/i canale/i è impostato?), altrimenti inutile impelagarsi a cercare di cambiare frequenza (tra l'altro non ci si può comunque discostare molto dai 2.4GHz).

E poi visto che hai postato solo una porzione degli sketch, hai altre periferiche collegate agli Arduino? Quali?

x Docdoc

a 5V alimento la base collegata al modulo NRF (http://yourduino.com/sunshop//index.php?l=product_detail&p=467 ) in questo modo sono riuscito ad effettuare collegamenti ad una distanza di ca. 1.000 mt in ambiente urbano!

Non conosco le frequenze utilizzate nelle vicinanze, credo comunque siano WiFi e si nota un'antenna rotante sul tetto. Proverò comunque a scannerizzare la zona per verificare i canali utilizzati.

Non ho postato l'intero sketch in quanto comprende ca. 1.000 righe (il trasmettitore), ca. 2.000 il ricevente. Il "sistema" comprende solo un PC (per inviare le istruzioni)/un UNO come TX/ un MEGA come RX. Non vi sono altre periferiche.

Ciao + grazie