Оскільки більшість людей опублікували, значення для труби є довільними, але повинні відповідати правилам API:
Труби 1-5 повинні розділяти перші 32 біти. Тільки найменш значущий байт повинен бути унікальним, наприклад
Перш ніж відповісти на ваше запитання, я думаю, що потрібне пояснення щодо значень Hex і Decimal.
40-бітний шістнадцятковий - це числове представлення бази 16. Десяткова частина - основа 10. Отже, ви можете перетворити шістнадцяткове значення в десяткове. Оскільки це питання не стосується питання, ви можете переглядати, як перетворитись з одного в інший. Є кілька онлайн-перетворювачів:
Шестнадцятковий в десятковий перетворювач
Ви побачите, коли перетворите значення Hex в десяткове, що це просто представлення числа. Коли ви конвертуєте, ви скидаєте 0x
і LL
. Як зазначено, 0x
вказує, що значення є шістнадцятковим і LL
означає тип Long Long .
Отже, щоб відповісти на ваше запитання, використовуйте конвертер, щоб знайти шістнадцятковий номер типу:
F0F0F0F0A1
F0F0F0F0A2
F0F0F0F0B4
F0F0F0F0E9
Просто змініть останні 2 цифри (найменш значущий біт):
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);
Додайте 0x
іLL
0xF0F0F0F0A1LL
0xF0F0F0F0A2LL
0xF0F0F0F0B4LL
0xF0F0F0F0E9LL
Усі повинні працювати.
Я не знаю шестигранника, тому що я навчаюсь, тому, якщо я неправильний, то будь ласка, хтось мене виправить.
Нарешті, таблиця даних nRF24L01 робить наступний момент, що вибір адреси не є абсолютно довільним:
Примітка. Адреси, де рівень зміщується лише один раз (тобто 000FFFFFFF), часто можна виявити в шумі і може дати помилкове виявлення, що може призвести до підвищеної частоти помилок пакету. Адреси як продовження преамбули (перемикання з високим рівнем низьких частот) також збільшує рівень помилок пакету.