Подключение NRF24L01 к Arduino

13-12-2020, 16:28 0 комментариев
Сегодня на повестке дня обсуждение темы, как подключить радиомодуль NRF24L01 к Ардуино. Почему выбран для обзора именно этот модуль? – Он легок в сборке, доступен по стоимости (и везде есть в продаже). Ну а кроме того (и это особенно важно) – устройство функционально, т.к. отлично справляется с налаживанием коммуникаций между контроллером и другими девайсами.

Беспроводной радио-модуль нашел свое применение во многих любительских проектах, связанных с разработкой систем «умных домов», автоматизацией и радиоуправлением различных процессов, бытовой ∕ мобильной электроникой, робототехникой и пр. Именно по названным причинам нам особо интересно рассказать о нем нашим читателям.

Обратимся к техническим параметрам:
  • напряжение питания: 3.3 - 3.6 V;
  • частота: 2,4 ГГц;
  • дальность связи: до 100 метров (в закрытом пространстве - до 30м.);
  • тип интерфейса: SPI;
  • рабочая скорость: <2 Мб/c;
  • max мощность: +20 дБм;
  • диапазон температур: -40С ... +85С.
Кроме того, микроплата содержит демодулятор, синтезатор частот, усилители.

Подключение NRF24L01 к Arduino

Для начала покажем распиновку выводов микросхемы:
По шине SPI можно как произвести конфигурации протокола, поработать с каналами обмена информацией (их всего 125), так и подключить все компоненты. Перейдем непосредственно к принципиальной схеме. Для ее реализации нам понадобится следующее аппаратное «железо»:
  1. микроконтроллер Arduino Uno (Nano, Mega, Mini также могут подойти);
  2. NRF24L01;
  3. макетная плата;
  4. набор соединительных проводов (перемычек).
Не забывайте, схему всегда можно дополнить и модернизировать!

Для программирования и в целом корректного тестирования работоспособности схемы будем использовать специализированное ПО - библиотеки RF24 и SerialFlow. Их как обычно следует скачать, а затем инсталлировать в папку Library в среде разработки Arduino IDE.
https://github.com/maniacbug/RF24
https://github.com/oevsegneev/arduino-dev/tree/master/libs/SerialFlow

Напишем небольшой проверочный скетч:
#include <SerialFlow.h>
SerialFlow rd(9,10);
const unsigned long data_to = 100; 
unsigned long tm, data_next;
void setup(void){
    rd.setPacketFormat(2, 1);
    rd.begin(0xF0F0F0F0E1LL,0xF0F0F0F0D2LL);
}
void loop(void){
    tm = millis();
    if( tm > data_next ){
        data_next = tm + data_to;
        rd.setPacketValue( tm );
        rd.sendPacket();
    }
}
Теперь выведем полученные значения в монитор COM-порта. Заливаем прошивку:
#include <SerialFlow.h> 
SerialFlow rd(9, 10);
void setup(void){
    Serial.begin(57600);
    rd.setPacketFormat(2, 1);
    rd.begin(0xF0F0F0F0D2LL,0xF0F0F0F0E1LL);
}
void loop(void){
    unsigned int v;
    if( rd.receivePacket() ){
        v = rd.getPacketValue(0);
        Serial.println(v);
    }
}
Интересуетесь удаленной передачей данных либо нуждаетесь в снятии показаний с датчиков уровня воды ∕ температуры ∕ давления? Пробуете себя в проектировании систем сигнализации? Обратите внимание на рассматриваемый в статье цифровой прибор – он наверняка вам пригодится!

Всем желаем успешной компиляции!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

На повестке дня - подключение LM35 к Arduino. Сегодня мы рассмотрим модуль устройства, его базовые характеристики, область применения и схему подключения. И...

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

На повестке дня – подключение L293D к Arduino, знакомство с техническими характеристиками модуля, его практическим применением и простейшими схемами сборки....

На повестке дня еще один увлекательный и практичный проект – подключение датчика дыма MQ-2 к Arduino. Почему увлекательный – нет надобности пояснять, а вот о...

Оставить комментарий