Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Беспроводной приемопередатчик NRF24L01+ 2,4GHz ====== ====== Описание ====== Недорогое и доступное средство для беспроводной связи устройств и проектов. Имеет низкое энергопотребление, что хорошо сказывается на автономных устройствах (которые питаются от ограниченных источников энергии). Могут использоваться в построении роботов, систем умного дома, погодных станций и прочих проектов. За счет высокой скорости передачи, также позволяет передавать помимо текстовой информации еще и графическую или аудио. Имеет 126 независимых каналов, что позволит связать несколько независимых устройств. ===== Технические характеристики ===== * Напряжение питания: 3,3 В * Скорость передачи данных: 250Кб/с — 2Мб/с * Входы толерантны к 5 В * Независимых каналов: 126 * Дальность связи в прямой видимости: 100 м ===== Плюсы использования ===== * Позволяют обеспечить недорогую беспроводную связь * Имеют 126 независимых каналов связи * Низкое энергопотребление * Позволяет работать с прерываниями (будить устройство по команде) ===== Минусы использования ===== * Очень чувствительны в питании * Сложны в подключении ===== Физические размеры ===== * Модуль (Д х Ш х В): 29 х 16 х 14 мм ==== Библиотека для работы с модулем ==== * [[https://files.smartelements.ru/know_libs/rf24.zip|Скачать (rf24)]] ====== Примеры подключения и использования ====== **Назначение выводов датчиков** - GND – земля - VCC – питание - CE - включение радиотракта микросхемы высоким уровнем - SCN - Chip Select Not, активный низкий уровень. Если установлен низкий уровень, то модуль отвечает на SPI команды - SCK - такт шины SPI - MOSI - передача данных от микроконтроллера к устройству - MISO - передача данных от устройства в микроконтроллер - IRQ - выход сигнала для запроса прерывания при отправке и получении пакета {{ :главная:связь:nrf24_pins.jpg |}} **Пример** В примере тестируется отправка данных о количестве секунд с момента запуска контроллера. И прием вторым устройством отправленных данных. (Для тестирования примеров использовались [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|контроллеры Smart UNO]]) ^ Что нужно ^ Кол-во, шт ^ | [[https://smartelements.ru/collection/kontrollery/product/kontroller-smart-uno|Контроллер ]] | 2 | | [[https://smartelements.ru/collection/svyaz/product/besprovodnoy-priemoperedatchik-nrf24l01-24ghz|Беспроводной приемопередатчик NRF24L01+ 2,4GHz]] | 2 | | [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-mama|Провода папа-мама]] | 14 | | [[https://smartelements.ru/collection/radiodetali/product/nabor-elektroliticheskih-kondensatorov|Конденсатор 1мкФ]] | 2 | | [[https://smartelements.ru/collection/provoda-i-kabeli/product/nabor-provodov-20-sht-20sm-papa-papa|Провода папа-папа]] | 4 | ==== Передатчик ==== **Подключение:** {{ :главная:связь:nrf24.jpg |}} **Скетч для Передатчика:** <file Arduino> //Подключение библиотек #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> const uint64_t pipe = 0xF0F1F2F30001; // идентификатор передачи (нужен одинаковый на принимающем и передающем устройствах) // создание объекта radioModule RF24 radioModule(9, 10); // параметры - пины подключения CE, CSN void setup(){ // Инициализация Serial -монитора для отладки Serial.begin(9600); radioModule.begin(); // Инициализация модуля delay(2); // Задержка для того, чтобы модуль подумал radioModule.setChannel(0); // установка канала передачи данных (0-125) // выбор скорости: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS // чем меньше скорость, тем выше чувствительность приемника radioModule.setDataRate(RF24_1MBPS); // мощность передатчика, RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM, radioModule.setPALevel(RF24_PA_HIGH); radioModule.openWritingPipe(pipe); // открытие трубы на передачу данных } void loop() { int data = millis()/ 1000; // количество секунд со старта платы radioModule.write(&data, sizeof(data)); // отправка данных с указанием размера пакета в битах Serial.print("data: "); // вывод заголовка в монитор Serial.println(data); // вывод данных в монитор delay(5); //задержка в 5 мс } </file> ==== Приёмник ==== **Подключение:** {{ :главная:связь:nrf24.jpg |}} **Скетч для приёмника:** <file Arduino> //Подключение библиотек #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> const uint64_t pipe = 0xF0F1F2F30001; // идентификатор передачи (нужен одинаковый на принимающем и передающем устройствах) // создание объекта radioModule RF24 radioModule(9, 10); // параметры - пины подключения CE, CSN void setup(){ // Инициализация Serial -монитора для отладки Serial.begin(9600); radioModule.begin(); // Инициализация модуля delay(2); // Задержка для того, чтобы модуль подумал radioModule.setChannel(0); // установка канала передачи данных (0-125) // выбор скорости: RF24_250KBPS, RF24_1MBPS или RF24_2MBPS // чем меньше скорость, тем выше чувствительность приемника radioModule.setDataRate(RF24_1MBPS); // мощность передатчика, RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_MED=-6dBM, radioModule.setPALevel(RF24_PA_HIGH); radioModule.openReadingPipe(1,pipe); // открытие трубы №1 с индентификатором "pipe" radioModule.startListening(); // включение режима прослушки } void loop() { int data; //переменная для принимаемых данных if (radioModule.available()) { // проверка, доступны ли какие-либо данные в буфере radioModule.read(&data, sizeof(data)); // чтение данных, размер данных Serial.print("data: "); // вывод заголовка в монитор Serial.println(data); // вывод данных в монитор } } </file>