nRF24L01+ система передачи данных

Набор блоков для односторонней, двухсторонней передачи данных между 2 и более контролерами с nRF24L01+, вплоть до создания сложной сети.

Про подключение модулей

SCK (Serial ClocK) — тактирование (синхронизация). ( Arduino UNO D13 | Arduino Mega D52)
MOSI / MI (Master Out Slave In) — вход данных. ( Arduino UNO D11 | Arduino Mega D51)
MISO / MO (Master In Slave Out) — выход данных. ( Arduino UNO D12 | Arduino Mega D50)
CE/SS — Выбор ведомого на шине SPI из нескольких устройств.
SCN — выбор режима приема/передача , фактически тот же CE.
IRQ — выход прерывания, чаще всего не используется. Необходим для немедленной реакции микроконтроллера при приеме нового пакета данных.
GND — земля, масса, минусовая шина.
Vcc -питание модуля 3.3в. Для надежной работы параллельно питанию как можно ближе к радиомодулю рекомендуется подключить электролитический конденсатор не менее 100мкф , а так же керамический на 0.1 мкф.
Подключение NRF24L01 к Arduino (вид сверху):

Основана на доработано библиотеки Optimized High Speed NRF24L01+

Теперь о возможностях:
— Можно передавать данные сразу от имени несколькими разными адресов (Необходимо для работы в сети с потверждением доставки)
— Возможно слушать до 5 труб одновременно
— Реализована штатная система контроля доставки сообщений (достоверна только когда адреса у вех труб разные)
— Возможно задавать частотные каналы
— Возможно задавать коэффициент усиление передатчика
— Возможно передавать String (30 символов максимум)
— Возможно передавать INT ( 5 и/или 15 в одном блоке)
— Возможно передавать Float (7 в одном блоке)
— В одном проекте можно использовать по несколько блоков одно типа и блоки разных типов.
— Есть отдельный блок для ретрансляции данных от контроллера к контроллеру
— На стороне получения в блоках есть выход новые данные
— Реализована система нескольких попыток отправки сообщения, для надежности доставки.
— Есть контроль переполнения приемного буфера.
— Есть независимый блок Сканер — для проверки работы модуля и поиска свободного канала.

В принципе сделать блоки для других типов данных тоже не сложно.

Актуальная версия новых блоков 1.0b 

Подробное описание каждого блока, в самих блоках.

Там же есть Старая версия , ее я делал с год назад и выкладывал здесь, но сейчас она уже меня не устраивает.

Интересные ссылки по этим модулям:
Описание радиомодуля nRF24L01+
Тест дальности связи NRF24L01+
NRF24L01 — Arduino 
NRF24L01 2.4 ГГц радио/беспроводные передатчики и Arduino


3

Вложения

  • zip nRF24L01+
    Дата добавления: 02.02.2018 20:01 Размер файла: 29 МБ Кол-во скачиваний: 4276

Автор публикации

не в сети 1 неделя

Сергей Глушенко

782
Комментарии: 15Публикации: 391Регистрация: 04-02-2018

4 комментария к “nRF24L01+ система передачи данных”

  1. Настройка блоков NRF24 в Flprog для радиомодулей nRF24L01.

    Ардуино Нано.

    NRF24_Главный  ставьте выше чем другие блоки и если

    сохраняете из проекта в библиотеку,

    то сохраняйте как  NRF24_Главный_передатчик от передатчика,

    NRF24_Главный_приемник от приемника(то же и с копированием), ну кому как.

     

    Блоки sendtouart не удаляйте и чтобы видеть в мониторе компорта

    сигнал от передатчика, на выходах приемника

    подключайте блок sendtouart(возможно и другое), без него

    не работало(как нагрузочный для выхода) и параллельно

    снимаете сигнал на свой блок или выход,

    шнур юсб компьютера подключайте к приемнику.

     

    Для блока передачи нужен мультивибратор G-AM вкл send,

    если просто подать единицу, то работать не будет(проверено).

    Чтобы передавать integer или дискретный(bool) сигнал(от кнопки или генератора),

    то в настройках(подменю блока редактировать) время паузы

    ставьте от 30 до 100мс(для триггера тт 100мс),

    вычисляется опытным путем(по умолчанию стоит 3с),

    чтобы передатчик работал не постоянно,

    можно вход send подключить через  блок and.

     

    Соединительные провода mjsi miso SCK можно подключать на разъем ICSP, а не 11 12 13,

    менял 9 10 на 1 2 блок не работал(может только у меня).

     

    Чтобы передавать сигнал bool применяйте блоки конвертации(запись и чтение бита BitW BitR),

    переводит в integer и на вход-выход.

     

    Если вход от кнопки или энкодера подключаете относительно минуса,

    то ставите инверсию у входа блока(подменю),

    вкл защита от дребезга, Подтягивающийрезистор.

     

    Я управлял одним шаговым двигателем от джойстика и энкодера,

    вклвыкл светодиода.

    У энкодера если относительно минуса входа на инверсию и подтягивающие резисторы не ставить.

    Так было у меня, всем удачи)

    0

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

Войти с помощью: