Salve a tutti,
sto facendo un progetto per l'università, sto usando un arduino Uno (connesso al pc per vedere i dati dal serial monitor) come ricevitore usando un modulo nrf24l01 con PA e LNA (alimentato a 5V usando un breakout adapter 3.3V).
Il trasmettitore è un arduino nano che invia i dati con un modulo nrf24l01 senza PA, né LNA né un breakout adapter, ma connesso con capacitore da 10uF tra Vcc e Gnd, l'alimentazione è fornita da due pacchetti di batterie NiCd da 3,6V ciascuno (nichel-cadmio perchè volevo un'alimentazione che fosse ricaricabile), i dati che legge e invia all'arduino Uno sono di 4 FSRs (force sensitive resistors) collegati in serie a un ingresso analogico, tutte queste parti sono chiuse in una scatoletta compatta perché il trasmettitore dev'essere il più piccolo possibile e autonomo. (i trasmettitori che lavorano sono due, inviano i dati dei 4 FSRs, uno alla volta evitando l'invio simultaneo dei dati).
Ho usato un modulo nrf24l01+ (con PA e LNA) per il ricevitore e invece un nrf24l01 "normale" per il trasmettitore per questioni di spazio, il ricevitore può essere grande quanto voglio mentre il trasmettitore dev'essere il più piccolo possibile. A livello di compatiblità non so se è il massimo per raggiungere distanze elevate, però da test che ho fatto amatorialmente questa combinazione è quella che mi dava i risultati migliori.
Per quanto riguarda l'alimentazione del trasmettitore, per fare in modo che i due pacchi di pile siano ricaricate quando l'arduino nano è alimentato tramite usb, sono collegate in questo modo: un pacchetto ha il "-" collegato al GND della scheda e il "+" a un pin digitale impostato come HIGH, per far si che arrivi a 5V circa e quindi superando il voltaggio di 3.6V del pacchetto batteria lo ricarichi. Il secondo pacchetto invece ha il "-" collegato al GND (ma solo durante la ricarica), e il "+" al Vin della scheda. Quando l'arduino nano è collegato ai 4 sensori FSRs le pile vanno in serie e alimentano la scheda.
Immagino che il metodo di ricarica non sia il migliore per il tipo di batterie che utilizzo, (però è l'unica soluzione che ho trovato che fosse compatta e ricaricabile, se esistesse qualcosa di così compatto, un pacchetto è 2cmx1cmx1cm circa, anche non ricaricabile ma più efficiente mi andrebbe bene).
I problemi maggiori sono 2: le batterie si scaricano molto velocemente (anche appena comprate e utilizzate) non so se dovuto dal modulo nrf24l01 o dal circuito non corretto, dopo circa 3-4 minuti il voltaggio crolla significativamente.
Inoltre ho raggiunto non più di 30m come distanza massima che il trasmettitore può raggiungere dal ricevitore, vorrei raggiungere almeno 100m (da fabbrica l'nrf24l01+ promette 1000m e l'nrf24l01 250m circa) visto che li utilizzo in campo aperto.
Allego uno schema fatto al volo del circuito usato per il trasmettitore (arduino Nano).
Questi invece i "settaggi" dei moduli nrf24l01 sia per arduino Uno che Nano:
void setup()
{
radio.begin();
radio.setPALevel(RF24_PA_MAX);
radio.setChannel(108);
radio.setDataRate(RF24_2MBPS);
radio.openReadingPipe(1, 0xF0F0F0F0AA); (radio.openWritingPipe(0xF0F0F0F0AA); nel codice del trasmettitore 1)
radio.openReadingPipe(2, 0xF0F0F0F066); (radio.openWritingPipe(0xF0F0F0F066); nel codice del trasmettitore 2)
radio.startListening();
}
Grazie,
Luca.