Найти тему
У Павла!

Отправка и получение данных по радиоканалу 2.4 Ггц с помощью модулей NRF24l01+.

Всем доброго времени суток. Не так давно я описывал способ связи нескольких ардуинок между собой с помощью радио модулей на 433 мгц.

Ту статью вы можете прочесть перейдя по ссылке нажав на это предложение.

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

Но на них свет клином не сошелся. На самом деле для ардуино, да и вообще для любых микроконтроллеров существует очень много всяких радиомодулей работающих на разных частотах.

Вот в этой статье и поговорим об одних из них. Это радомодули работающие на частоте 2.4Ггц. И имя им NRF24l01+.

Так же существуют модули и с антеннами не распаянными а отдельными. Что существенно увеличивает дальность передачи. Выглядят они примерно так:

-2

nRF24L01+ включает в себя 2.4 ГГц RF трансивер, логику, которая поддерживает высокоскоростной SPI интерфейс для подключения и обмена данными.

Проблемы с питанием NRF24L01

У многих возникают проблемы при запуске модуля nRF24L01. В основном это связано с тем, что в модуле питания 3.3 В не предусмотрена необходимая сила тока. Решение проблемы следующее:

  • Подключите конденсатор на 3.3 или 10 мкФ (микрофарад) напрямую к модулю – от 3.3 В (+) к GND (-). Некоторые рекомендуют использовать 10 мкФ или больше.
  • Отдельный источник питания на 3.3 В.
  • Использовать совместимый с Arduino YourDuinoRobo1, на котором добавлен регулятор 3.3 В (в этом случае, возможно, стоит добавить конденсатор на 1 мкФ на радиомодуль).
  • Старайтесь максимально избегать дополнительных проводов при подключении модуля радиопередатчика.
  • Разработать отдельную плату, на которую устанавливается модуль nRF24L01 и добавляются конденсаторы на 1 и 10 мкФ неподалеку от контактов 3.3 В и GND.

Проблемы с питанием возникают при использовании таких микроконтроллеров как, например, Arduino Uno, Nano, Mega, в которых на пины подается всего 50 мА. На некоторых новых модификациях плат делают пины с силой тока до 350 мА. Ну или вы можете отдельно приобрести шилды для увеличения мощности.

Для решения данной проблемы можно воспользоваться переходником.

-3

Я такой переходник и использую. Скажу Вам - это очень удобно. С таким переходником вообще не возникнет проблем с подключением к ардуинке.

Для демонстрации работы данных модулей. Будем отправлять значения температуры с одной ардуинки. Вторая ардуино будет получать эти значения и выводить на дисплей.

Для реализации нам понадобится:

nrf24l01+: http://alii.pub/5umm60

Переходники для подключения nrf24l01: http://ali.pub/1mwmq3

Arduino uno http://ali.pub/1joeoa

arduino nano: http://ali.ski/uM_GQ

Контактные провода http://alii.pub/5slrot

Программу будет делать из блоксхем в программе FLProg.

Подключение всех элементов я изобразил в виде таблички. Выглядит она следующим образом:

-4

Что касается программы. Ее можно найти у меня на сайте. Перейдя на который можно нажав на эти два предложения.

Ну и по традиции, демонстрация работы показана в видео: