Подключение NRF24L01 к Arduino
Беспроводной радио-модуль нашел свое применение во многих любительских проектах, связанных с разработкой систем «умных домов», автоматизацией и радиоуправлением различных процессов, бытовой ∕ мобильной электроникой, робототехникой и пр. Именно по названным причинам нам особо интересно рассказать о нем нашим читателям.
Обратимся к техническим параметрам:
- напряжение питания: 3.3 - 3.6 V;
- частота: 2,4 ГГц;
- дальность связи: до 100 метров (в закрытом пространстве - до 30м.);
- тип интерфейса: SPI;
- рабочая скорость: <2 Мб/c;
- max мощность: +20 дБм;
- диапазон температур: -40С ... +85С.
Подключение NRF24L01 к Arduino
Для начала покажем распиновку выводов микросхемы:По шине SPI можно как произвести конфигурации протокола, поработать с каналами обмена информацией (их всего 125), так и подключить все компоненты. Перейдем непосредственно к принципиальной схеме. Для ее реализации нам понадобится следующее аппаратное «железо»:
- микроконтроллер Arduino Uno (Nano, Mega, Mini также могут подойти);
- NRF24L01;
- макетная плата;
- набор соединительных проводов (перемычек).
Для программирования и в целом корректного тестирования работоспособности схемы будем использовать специализированное ПО - библиотеки 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);
}
}
Интересуетесь удаленной передачей данных либо нуждаетесь в снятии показаний с датчиков уровня воды ∕ температуры ∕ давления? Пробуете себя в проектировании систем сигнализации? Обратите внимание на рассматриваемый в статье цифровой прибор – он наверняка вам пригодится!Всем желаем успешной компиляции!
На повестке дня - подключение LM35 к Arduino. Сегодня мы рассмотрим модуль устройства, его базовые характеристики, область применения и схему подключения. И...
Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...
В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...
На повестке дня – подключение L293D к Arduino, знакомство с техническими характеристиками модуля, его практическим применением и простейшими схемами сборки....
На повестке дня еще один увлекательный и практичный проект – подключение датчика дыма MQ-2 к Arduino. Почему увлекательный – нет надобности пояснять, а вот о...