Всем доброго времени суток. Не так давно я описывал способ связи нескольких ардуинок между собой с помощью радио модулей на 433 мгц.
Ту статью вы можете прочесть перейдя по ссылке нажав на это предложение.
Но у используемых модулей в той статье есть существенный недостаток. Они работают все в одном радиоканале и перебивают друг друга. Иными словами они работают только как приемник - один модуль и передатчик другой модуль. И если подключить к примеру еще передатчик, то он будет мешать передаче первого датчика.
Но на них свет клином не сошелся. На самом деле для ардуино, да и вообще для любых микроконтроллеров существует очень много всяких радиомодулей работающих на разных частотах.
Вот в этой статье и поговорим об одних из них. Это радомодули работающие на частоте 2.4Ггц. И имя им NRF24l01+.
Так же существуют модули и с антеннами не распаянными а отдельными. Что существенно увеличивает дальность передачи. Выглядят они примерно так:
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 мА. Ну или вы можете отдельно приобрести шилды для увеличения мощности.
Для решения данной проблемы можно воспользоваться переходником.
Я такой переходник и использую. Скажу Вам - это очень удобно. С таким переходником вообще не возникнет проблем с подключением к ардуинке.
Для демонстрации работы данных модулей. Будем отправлять значения температуры с одной ардуинки. Вторая ардуино будет получать эти значения и выводить на дисплей.
Для реализации нам понадобится:
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.
Подключение всех элементов я изобразил в виде таблички. Выглядит она следующим образом:
Ну и по традиции, демонстрация работы показана в видео: