Come la maggior parte delle persone ha pubblicato, i valori per la pipe sono arbitrari, ma devono seguire le regole per l'API:
I tubi 1-5 devono condividere i primi 32 bit. Solo il byte meno significativo dovrebbe essere univoco, ad es
Prima di rispondere alla tua domanda, penso che sia necessaria una spiegazione sui valori esadecimali e decimali.
L'esadecimale a 40 bit è una rappresentazione numerica della base 16. Un decimale è della base 10. Quindi è possibile convertire un valore esadecimale in decimale. Poiché questo non rientra nella portata della domanda, puoi cercare su Google come convertire da uno all'altro. Ci sono alcuni convertitori online:
Convertitore da esadecimale a decimale
Vedrai quando converti il valore esadecimale in decimale, che è solo una rappresentazione numerica. Quando si converte, si rilascia 0x
e LL
. Come indicato, 0x
indica che il valore è un valore esadecimale e LL
significa tipo Long Long .
Quindi, per rispondere alla tua domanda, usa un convertitore per trovare un numero esadecimale come:
F0F0F0F0A1
F0F0F0F0A2
F0F0F0F0B4
F0F0F0F0E9
Basta cambiare le ultime 2 cifre (bit meno significativo):
Pipes 1-5 should share the first 32 bits. Only the least significant byte should be unique, e.g.
openReadingPipe(1,0xF0F0F0F0AA);
openReadingPipe(2,0xF0F0F0F066);
Aggiungi il 0x
eLL
0xF0F0F0F0A1LL
0xF0F0F0F0A2LL
0xF0F0F0F0B4LL
0xF0F0F0F0E9LL
Tutto dovrebbe funzionare.
Non sono un esperto di hex, come sto imparando, quindi se non sono corretto, per favore qualcuno mi corregga.
Infine, la scheda tecnica nRF24L01 sottolinea quanto segue che la scelta dell'indirizzo non è completamente arbitraria:
Nota: gli indirizzi in cui il livello cambia solo una volta (ovvero 000FFFFFFF) possono spesso essere rilevati nel rumore e possono dare un falso rilevamento, che può dare un tasso di errore del pacchetto aumentato. Anche gli indirizzi come continuazione del preambolo (attivazione / disattivazione basso) aumentano il tasso di errore dei pacchetti.