Radio openreadingpipe 0 address что это

Обзор радио модуля NRF24L01+PA+LNA

Автор: Сергей · Опубликовано 28.10.2016 · Обновлено 14.04.2021

Radio openreadingpipe 0 address что это. obzor radio nrf24l01palna 1. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-obzor radio nrf24l01palna 1. картинка Radio openreadingpipe 0 address что это. картинка obzor radio nrf24l01palna 1

Радиомодуль NRF24L01+PA+LNA отличается от NRF24L01+, повышенной чувствительностью приемника и увеличенной мощностью передатчика, что позволило передавать данные со скоростью передачи до 250Kb на расстояние до 1000 метров.

Технические параметры

► Напряжение питания: 3В … 3.6В
► Потребляемый ток при мощности 0dBm: 45 мА
► Потребляемый ток при передачи 2 Мбит: 115 мА
► Максимальная выходная мощность: +20dBm
► Частота: 2.4 ГГц
► Коэффициент усиления антенны (макс.): 2dBi
► Скорость передачи: 2MB (открытое пространство): 520 м.
► Скорость передачи: 1 MB (открытое пространство): 750 м.
► Скорость передачи: 250 Kb (открытое пространство): 1000 м.
► Размеры: 46мм x 17мм x 12мм (длина антенны 115 мм)
► Интерфейс: SPI

Общие сведения

Radio openreadingpipe 0 address что это. obzor radio nrf24l01palna 2. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-obzor radio nrf24l01palna 2. картинка Radio openreadingpipe 0 address что это. картинка obzor radio nrf24l01palna 2

Подключение NRF24L01+PA+LNA

Необходимые детали:
► Arduino UNO R3 x 2 шт.
► Провод DuPont, 2,54 мм, 20 см x 2 шт.
► Кабель USB 2.0 A-B x 2 шт.
► Радиомодуль nRF24L01+PA+LNA+ x 2 шт.
► Адаптер для nRF24L01+ x 2 шт.

Подключение:
Для начала подключаем вывод VCC и GND к выводам Arduino +3.3V и GND. Выводы CSN и CE могут быть подключены к любому цифровому выводу на Arduino, в нашем случае подключены к цифровым выводам 9 и 10. Теперь остались контакты, которые используются для связи SPI, для Arduino UNO, это контакты 13 (SCK), 12 (MISO) и 11 (MOSI), схема подключения приведена на рисунке ниже:

Radio openreadingpipe 0 address что это. obzor radio nrf24l01palna 3. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-obzor radio nrf24l01palna 3. картинка Radio openreadingpipe 0 address что это. картинка obzor radio nrf24l01palna 3

Таблица подключений, для различных плат Arduino

Radio openreadingpipe 0 address что это. obzor radio nrf24l01palna 5. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-obzor radio nrf24l01palna 5. картинка Radio openreadingpipe 0 address что это. картинка obzor radio nrf24l01palna 5

Установка библиотеки:
В данном примере используется популярная библиотека RF24, она проста в использовании. Загрузить последнюю версию библиотеки можно с RF24 GitHub или с моего сайта.
Для установи, откройте Arduino IDE, перейдите в Скетч —> Подключить Библиотеку —> Добавить. ZIP Библиотеку…, а затем выберите файл RF24.zip, который вы только что загрузили.

Программа для передатчика:
В примере, мы просто отправим традиционное сообщение «Hello World» от передатчика к получателю.

Источник

Подключение радиомодуля nRF24L01 + к Arduino UNO

Radio openreadingpipe 0 address что это. 157 image. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-157 image. картинка Radio openreadingpipe 0 address что это. картинка 157 image

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

Сегодня продолжим изучение модуля nRF24L01 + и рассмотрим вопрос подключения радиомодуля nRF24L01 + к Arduino UNO.

Подключение приемопередающего модуля nRF24L01 + к Arduino UNO

Теперь, когда у нас есть полное понимание того, как работает радиомодуль nRF24L01 +, мы можем подключить его к нашей Arduino!

Для начала подключите контакт VCC модуля к 3,3 В Arduino, а контакт GND — к земле. Контакты CSN и CE могут быть подключены к любому цифровому контакту на Arduino. В нашем случае это цифровые выводы 8 и 9 соответственно. Теперь только остались выводы, которые используются для связи по шине SPI.

Поскольку модуль nRF24L01 + обеспечивает передачу большого объема данных, то он может обеспечивать наилучшую производительность при подключении к аппаратным выводам SPI Arduino. Аппаратные выводы SPI намного быстрее, чем программные.

Обратите внимание, что каждая плата Arduino имеет разные выводы SPI, которые должны быть подключены соответствующим образом. Для плат Arduino, таких как UNO / Nano V3.0, этими цифровыми контактами являются 13 (SCK), 12 (MISO) и 11 (MOSI).

Если у вас Mega, то контакты будут другие! Вы должны использовать 50 (MISO), 51 (MOSI), 52 (SCK) и 53 (SS). См. Таблицу ниже для быстрого понимания.

MOSIMISOSCK
Arduino Uno111213
Arduino Nfno111213
Arduino Mega515052

В случае, если вы используете плату Arduino, отличную от упомянутых выше, рекомендуется проверить официальную документацию Arduino, прежде чем продолжить.

Radio openreadingpipe 0 address что это. kak rabotaet radiomodul nrf24l01 s arduino 13. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-kak rabotaet radiomodul nrf24l01 s arduino 13. картинка Radio openreadingpipe 0 address что это. картинка kak rabotaet radiomodul nrf24l01 s arduino 13Подключение nRF24L01 + к Arduino UNO Radio openreadingpipe 0 address что это. kak rabotaet radiomodul nrf24l01 s arduino 14. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-kak rabotaet radiomodul nrf24l01 s arduino 14. картинка Radio openreadingpipe 0 address что это. картинка kak rabotaet radiomodul nrf24l01 s arduino 14Подключение nRF24L01 + PA LNA к Arduino UNO

Библиотека Arduino RF24 для модуля nRF24L01

Взаимодействие с модулем приемопередатчика nRF24L01 + — это сложная работа, но, к счастью для нас, существует ряд доступных библиотек. Одна из популярных библиотек — RF24.

Эта библиотека существует уже несколько лет. Библиотека RF24 проста в использовании для начинающих, и предлагает много возможностей для опытных пользователей. В наших экспериментах мы будем использовать одну и ту же библиотеку.

Radio openreadingpipe 0 address что это. 158 image. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-158 image. картинка Radio openreadingpipe 0 address что это. картинка 158 image

Вы можете скачать последнюю версию библиотеки RF24 на репозитория GitHub

Скетч для передатчика

В нашем эксперименте мы просто отправим традиционное сообщение «Hello World» от передатчика к приемнику.

Вот скетч, который мы будем использовать для нашего передатчика:

Код начинается с подключения библиотек. Библиотека SPI.h управляет связью SPI, а nRF24L01.h и RF24.h модулем:

Далее нам нужно создать объект RF24. Объект принимает два номера контактов в качестве параметров, к которым подключены сигналы CE и CSN:

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

Мы можем изменить значение этого адреса на любую 5-буквенную строку, например «node1». Адрес необходим, если у вас есть несколько модулей в сети. Благодаря адресу вы можете выбрать конкретный модуль, с которым вы хотите общаться, поэтому в нашем случае у нас будет один и тот же адрес как для передатчика, так и для приемника.

Далее в функции setup() нам нужно инициализировать радиообъект, используя radio.begin() и используя radio.openWritingPipe() функцию, мы устанавливаем адрес передатчика:

Наконец, мы будем использовать radio.stopListening() функцию, которая устанавливает модуль в качестве передатчика:

В разделе loop () мы создаем массив символов, которым мы назначаем сообщение «Hello World». Используя radio.write() функцию, мы отправим это сообщение приемнику.

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

С помощью этого метода вы можете отправлять до 32 байтов за раз. Потому что это максимальный размер одного пакета, который может обработать nRF24L01 +. Если вам нужно подтверждение, что получатель получил данные, функция radio.write() возвращает bool значение. Если он возвращает TRUE, данные достигли получателя. Если он возвращает FALSE, данные были потеряны.

Внимание! Функция radio.write () блокирует программу, пока она не получит подтверждение или не исчерпает все попытки повторной передачи.

Скетч для приемника

Вот код, который мы будем использовать для нашего приемника:

Эта программа выглядит очень похоже на программу передатчика, за исключением некоторых моментов.

В начале функции setup() мы запускаем последовательную связь. Затем, используя функцию radio.setReadingPipe(), мы устанавливаем тот же адрес, что и у передатчика, и таким образом включаем связь между передатчиком и приемником:

Первый аргумент — номер потока. Вы можете создать до 6 потоков, которые отвечают на разные адреса. Мы создали только адрес для потока номер 0. Второй аргумент — это адрес, на который поток будет реагировать для сбора данных.

Следующим шагом является установка модуля в качестве приемника и начало приема данных. Для этого мы используем функцию radio.startListening(). С этого момента модем ожидает отправки данных на указанный адрес:

В функции loop() Arduino проверяет, были ли получены какие-либо данные по адресу, используя функцию radio.available(). Эта функция возвращает значение TRUE, если в буфере доступны какие-либо данные:

В конце мы просто печатаем полученное сообщение на серийном мониторе. Если вы все сделали правильно и в соединениях нет ошибок, вы должны увидеть что-то подобное в вашем Serial Monitor:

Radio openreadingpipe 0 address что это. kak rabotaet radiomodul nrf24l01 s arduino 15. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-kak rabotaet radiomodul nrf24l01 s arduino 15. картинка Radio openreadingpipe 0 address что это. картинка kak rabotaet radiomodul nrf24l01 s arduino 15

Улучшение дальности передачи модуля nRF24L01 +

Ключевым параметром для системы беспроводной связи является дальность связи. Во многих случаях это решающий фактор в пользу выбора радиочастотного решения. Итак, давайте обсудим, что мы можем сделать, чтобы получить хорошую дальность связи для нашего модуля.

Уменьшить шум источника питания

ВЧ цепь, которая генерирует радиочастотный (РЧ) сигнал, очень чувствительна к шуму источника питания. Если не контролировать шум источника питания да большую дальность связи можно не рассчитывать.

Если источник питания не является автономным аккумулятором, существует высокая вероятность того, что при генерации сигнала будет шум. Чтобы этот шум не попал в систему, рекомендуется разместить фильтрующий конденсатор емкостью 10 мкФ на линии электропитания как можно ближе к модулю nRF24L01 +.

Самый простой способ покончить с этим — использовать очень недорогой адаптерный модуль для nRF24L01.

Radio openreadingpipe 0 address что это. kak rabotaet radiomodul nrf24l01 s arduino 16. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-kak rabotaet radiomodul nrf24l01 s arduino 16. картинка Radio openreadingpipe 0 address что это. картинка kak rabotaet radiomodul nrf24l01 s arduino 16Адаптер для nRF24L01

Этот адаптер имеет 8-контактный разъем, позволяющий подключить модуль nRF24L01. Он может соединяться как с модулем, который мы обсуждали ранее (со встроенной антенной), так и с внешней антенной (PA/LNA). Адаптер также имеет 6-контактный разъем для подключения SPI и прерываний и 2-контактный разъем для ввода питания.

Модуль адаптера имеет собственный регулятор напряжения 3,3 В и набор конденсаторов фильтра, поэтому вы можете подключить его к источнику питания 5 В.

Изменить частоту канала

Другим потенциальным источником шума для радиочастотной цепи является внешняя среда, особенно если у вас есть соседние сети, настроенные на тот же канал, или помехи от другой электроники.

Чтобы эти сигналы не вызывали проблем, мы рекомендуем использовать модуль nRF24L01 + с самыми высокими 25 каналами. Причиной этого является то, что WiFi использует большинство нижних каналов.

Более низкая скорость передачи данных

Если вы общаетесь на этой скорости, вы знаете, что приемник на скорости 250 Кбит/с почти в 10 раз более чувствителен, чем на 2 Мбит/с. Это означает, что приемник может декодировать сигнал, который в 10 раз слабее.

Что означает чувствительность приемника (Rx)?

Таким образом, снижение скорости передачи данных может значительно улучшить дальность связи, которую вы можете достичь. Кроме того, для большинства наших проектов скорость 250 Кбит/с более чем достаточна.

Более высокая выходная мощность

Источник

Arduino и NRF24L01 в одной плате. Первое знакомство

Привет хабровчане! Не так давно попалась мне в руки пара плат Arduino Nano со встроенным модулем NRF24L01, которые оказались достойной заменой популярной связки Arduino Nano + NRF24L01. Модуль NRF24L01 часто используется в различных проектах для обеспечения надежной беспроводной передачи данных. Небольшая цена, низкая задержка и энергопотребление, а также возможность выбора до128 каналов связи дает NRF24L01 преимущество перед другими радиочастотными модулями, такими как wifi, bluetooth, Zigbee и т.д.

В данной статье хочу поделиться с вами своим первым опытом работы как с Arduino RF, так и с NRF24L01 в целом.

Radio openreadingpipe 0 address что это. 5d4189caa4ebbbbd69cf028e9d707af7. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-5d4189caa4ebbbbd69cf028e9d707af7. картинка Radio openreadingpipe 0 address что это. картинка 5d4189caa4ebbbbd69cf028e9d707af7

Изображенную выше плату можно приобрести на Aliexpress. Данная плата является аналогом следующей схемы:

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

Для тестирования схемы я использую библиотеку RF24. В рамках данного обзора я рассмотрю:

передачу данных между платами Arduino RF;

передачу данных между Arduino RF и Raspberry Pi;

сравнение со связкой Arduino + модуль NRF24L01.

Передача данных между платами Arduino RF

Обе платы Arduino RF подключаются к портам одного ноутбука. Для работы с платами я использую среду Arduino Studio, в которой выполняю следующие настройки:

работа с разными портами в Arduino Studio

Если у вас есть проблема одновременного открытия двух окон SerialMonitor, в которые выводится информация от двух Arduino, подключенных к разным портам, нужно сначала запустить ArduinoStuio в обычном режиме и отобразить информацию с одного порта, а потом запустить среду ArduinoStuio в режиме «от администратора» и отобразить информацию с другого порта.

Для проверки плат использовался пример, поставляемый с библиотекой RF24, который нужно загрузить на обе платы Arduino.

код программы GettingStarted.ino

В рамках данного примера, одна плата настраивается как передатчик, а другая как получатель. В моем случае пины CE и CSN указываемые в конструкторе RF24 radio(CEpin, CSNpin) были 7 и 8 соответственно. После загрузки скетча на плату, в Serial monitor выводится строка:

Which radio is this? Enter ‘0’ or ‘1’. Defaults to ‘0’

Ввожу «1» в окошке отправителя и «0» в окошке получателя. После вывода следующей строки

*** PRESS ‘T’ to begin transmitting to the other node

выбираю «T» для настройки одной из Arduino как отправителя и «R» как получателя.

После выполнения вышеописанных настроек, получился следующий результат (время передачи пакета и пакет с числом 0.0, увеличивающимся с шагом 0.01):

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

Время передачи в среднем заняло всего 552 микросекунды

Передача данных между Arduino RF и Raspberry Pi

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

Для настройки Raspberry в качестве приемника, я выполнила следующие шаги:

С помощью Putty, подключаюсь к Raspberry по ssh, указывая Ip адрес Raspberry и порт 22 (по умолчанию логин «pi», пароль «raspberry» ).

P.S. Для удобства работы через графический интерфейс, можно скачать программу VNCviewer, после чего ввести в консоль Raspberry команду vncserver.

В консоли Raspbrry для настройки SPI выполняю следующую команду

Перезагружаюсь и обновляюсь

Далее устанавливаю библиотеку RF24 (например по инструкции на github или medium)

установка библиотиеки RF24 на Raspberry

Install prerequisites if there are any (MRAA, LittleWire libraries, setup SPI device etc)

Make it executable

Run it and choose your options

Run an example from one of the libraries

Edit the gettingstarted example, to set your pin configuration

В качестве примера также использую файл gettingstarted.py, после выполнения которого выбираю номер модуля «1» и режим «R».

код программы gettingstarted.py

Получился аналогичный предыдущему пункту результат (на изображении показан вывод в IDE ArduinoStudio и Thonny):

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

В данном случае время передачи одного из пакетов значительно выше. Такая ситуация повторилась несколько раз.

Сравнение со связкой Arduino Leonardo + модуль NRF24L01

Данный краткий обзор был бы совсем кратким, не выполни я пример gettingstarted на стандартной связке Arduino + NRFL01 и Raspberry + NRFL01

Схема подключения NRFL01 к Arduino Nano изображена в посте выше. У меня не было под рукой Arduino Nano, но была Arduino Leonardo, у которой SPI пины вынесены сбоку платы.

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

В конце поста, также покажу результат передачи информации о расстоянии до объекта, полученной с помощью имеющегося в наличии ультразвукового датчика, подключенного по схеме ( как подключается NRF24L01 модуль показано выше):

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loaderкод Arduino US.ino

Результат выполнения показан ниже. Время передачи значительно выше. С ходу не хватает знаний понять, почему так вышло и как улучшить результат.

Radio openreadingpipe 0 address что это. image loader. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-image loader. картинка Radio openreadingpipe 0 address что это. картинка image loader

Заключение

К сожалению мне сходу не удалось найти в интернете подробных гайдов по работе с Arduino RF, поэтому пришлось пару недель повозиться. Знакомство с библиотекой Mirf как-то сразу не задалось. После многих попыток разобраться в теме, получился вот такой вот гайд. Оказалось, что работать с Arduino RF интересно и не так уж и трудно. Надеюсь что мой опыт пригодится новичкам и желающим построить какой-либо проект на базе Arduino RF. Также хочу выразить благодарность авторам постов про NRF24L01, которых набралось уже не мало 🙂

Источник

arduinoLab

Radio openreadingpipe 0 address что это. IMG 2987 1. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-IMG 2987 1. картинка Radio openreadingpipe 0 address что это. картинка IMG 2987 1

Радиомодули nRF24L01+ и Arduino

Невероятно популярные беспроводные модули, идеальное, недорогое решение для объединение микроконтроллеров в беспроводную сеть, ниже код и дополнение к серии видео

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

Китайская промышленность выпускает несколько модификаций модулей на этих чипах, различающиеся способом монтажа, наличием усилителя мощности и коннектора для внешней антенны.

Radio openreadingpipe 0 address что это. IMG 2972. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-IMG 2972. картинка Radio openreadingpipe 0 address что это. картинка IMG 2972Radio openreadingpipe 0 address что это. nrf pa 1. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-nrf pa 1. картинка Radio openreadingpipe 0 address что это. картинка nrf pa 1

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

Основные характеристики модулей.

Рабочая частота: 2.4ггц
Выходная мощность передатчика: 0dBm (1mW), в версии с усилителем 20dBm (100mW)
Радиус действия в прямой видимости: до 30м, в версии с усилителем до 1000м
Скорость беспроводного соединения: 250kbps, 1Mbps или 2Mbps.
Количество каналов: 126

Распиновка модуля.

Radio openreadingpipe 0 address что это. IMG 2972 Edit. Radio openreadingpipe 0 address что это фото. Radio openreadingpipe 0 address что это-IMG 2972 Edit. картинка Radio openreadingpipe 0 address что это. картинка IMG 2972 Edit

Модуль работает с микроконтроллером по средствам интерфейса SPI, соответственно модуль должен подключатся к интерфейсу SPI ардуины, который находится на определенных контактах микроконтроллера, на фото указаны номера выходов для Arduino UNO или других, базирующихся на микроконтроллере ATMega328. Не забываем что у Arduino leonardo, Mega, и тд, интерфейс SPI находится на других контактах.

Питание модуля 3,3 вольта, вообще к питанию модуль очень привередлив, крайне желательно использовать отдельный от Arduino стабилизатор, например на микросхеме AMS1117-3.3, также желательно припаять дополнительный керамический конденсатор фильтра на контакты питания.

Для работы с модулем в среде Arduino написано несколько библиотек, мне понравилась библиотека RF24, скачать можно тут или тут, краткое описание функций библиотеки на английском языке тут.

Также существует более оптимизированное и полностью совместимое ответвление от основной версии RF24, находится тут.

Ниже исходные коды, которые были показаны в роликах на ютубе.
Радиомодули nRF24L01+ и Arduino, часть 1

Источник

Radio openreadingpipe 0 address что это

Driver class for nRF24L01(+) 2.4GHz Wireless Transceiver. More.

Public Member Functions

These are the main methods you need to operate the chip

RF24 (uint16_t _cepin, uint16_t _cspin, uint32_t _spi_speed=RF24_SPI_SPEED)RF24 (uint32_t _spi_speed=RF24_SPI_SPEED)boolbegin (void)boolbegin (_SPI *spiBus)boolbegin (_SPI *spiBus, uint16_t _cepin, uint16_t _cspin)boolbegin (uint16_t _cepin, uint16_t _cspin)boolisChipConnected ()voidstartListening (void)voidstopListening (void)boolavailable (void)voidread (void *buf, uint8_t len)boolwrite (const void *buf, uint8_t len)voidopenWritingPipe (const uint8_t *address)voidopenReadingPipe (uint8_t number, const uint8_t *address)

Methods provided for backwards compabibility.

voidopenReadingPipe (uint8_t number, uint64_t address)voidopenWritingPipe (uint64_t address)boolisAckPayloadAvailable (void)

Protected Member Functions

voidbeginTransaction ()
voidendTransaction ()
voidread_register (uint8_t reg, uint8_t *buf, uint8_t len)
uint8_tread_register (uint8_t reg)

Protected Attributes

Advanced Operation

Methods you can use to drive the chip in more advanced ways

boolfailureDetected
voidprintDetails (void)
voidprintPrettyDetails (void)
boolavailable (uint8_t *pipe_num)
boolrxFifoFull ()
voidpowerDown (void)
voidpowerUp (void)
boolwrite (const void *buf, uint8_t len, const bool multicast)
boolwriteFast (const void *buf, uint8_t len)
boolwriteFast (const void *buf, uint8_t len, const bool multicast)
boolwriteBlocking (const void *buf, uint8_t len, uint32_t timeout)
booltxStandBy ()
booltxStandBy (uint32_t timeout, bool startTx=0)
boolwriteAckPayload (uint8_t pipe, const void *buf, uint8_t len)
voidwhatHappened (bool &tx_ok, bool &tx_fail, bool &rx_ready)
voidstartFastWrite (const void *buf, uint8_t len, const bool multicast, bool startTx=1)
boolstartWrite (const void *buf, uint8_t len, const bool multicast)
voidreUseTX ()
uint8_tflush_tx (void)
uint8_tflush_rx (void)
booltestCarrier (void)
booltestRPD (void)
boolisValid ()
voidcloseReadingPipe (uint8_t pipe)

Optional Configurators

Methods you can use to get or set the configuration of the chip. None are required. Calling begin() sets up a reasonable set of defaults.

uint32_ttxDelay
uint32_tcsDelay
voidsetAddressWidth (uint8_t a_width)
voidsetRetries (uint8_t delay, uint8_t count)
voidsetChannel (uint8_t channel)
uint8_tgetChannel (void)
voidsetPayloadSize (uint8_t size)
uint8_tgetPayloadSize (void)
uint8_tgetDynamicPayloadSize (void)
voidenableAckPayload (void)
voiddisableAckPayload (void)
voidenableDynamicPayloads (void)
voiddisableDynamicPayloads (void)
voidenableDynamicAck ()
boolisPVariant (void)
voidsetAutoAck (bool enable)
voidsetAutoAck (uint8_t pipe, bool enable)
voidsetPALevel (uint8_t level, bool lnaEnable=1)
uint8_tgetPALevel (void)
uint8_tgetARC (void)
boolsetDataRate (rf24_datarate_e speed)
rf24_datarate_egetDataRate (void)
voidsetCRCLength (rf24_crclength_e length)
rf24_crclength_egetCRCLength (void)
voiddisableCRC (void)
voidmaskIRQ (bool tx_ok, bool tx_fail, bool rx_ready)
voidstartConstCarrier (rf24_pa_dbm_e level, uint8_t channel)
voidstopConstCarrier (void)
voidtoggleAllPipes (bool isEnabled)
Open or close all data pipes. More.
voidsetRadiation (uint8_t level, rf24_datarate_e speed, bool lnaEnable=true)
configure the RF_SETUP register in 1 transaction More.

Detailed Description

Driver class for nRF24L01(+) 2.4GHz Wireless Transceiver.

Definition at line 114 of file RF24.h.

Constructor & Destructor Documentation

◆ RF24() [1/2]

Creates a new instance of this driver. Before using, you create an instance and send in the unique pins that this chip is connected to.

See Related Pages for device specific information

Parameters

_cepinThe pin attached to Chip Enable on the RF module
_cspinThe pin attached to Chip Select (often labeled CSN) on the radio module.

For the Arduino Due board, the Arduino Due extended SPI feature is not supported. This means that the Due’s pins 4, 10, or 52 are not mandated options (can use any digital output pin) for the radio’s CSN pin.

_spi_speedThe SPI speed in Hz ie: 1000000 == 1Mhz

Definition at line 527 of file RF24.cpp.

◆ RF24() [2/2]

A constructor for initializing the radio’s hardware dynamically

Warning You MUST use begin(uint16_t, uint16_t) or begin(_SPI*, uint16_t, uint16_t) to pass both the digital output pin numbers connected to the radio’s CE and CSN pins. Parameters

_spi_speedThe SPI speed in Hz ie: 1000000 == 1Mhz

Definition at line 536 of file RF24.cpp.

Member Function Documentation

◆ beginTransaction()

For keeping track of pipe 0’s usage in user-triggered RX mode. SPI transactions

Common code for SPI transactions including CSN toggle

Definition at line 114 of file RF24.cpp.

◆ endTransaction()

Definition at line 132 of file RF24.cpp.

◆ read_register() [1/2]

void RF24::read_register(uint8_treg,
uint8_t *buf,
uint8_tlen
)
protected

Whether dynamic payloads are enabled. Read a chunk of data in from a register

Parameters

regWhich register. Use constants from nRF24L01.h
bufWhere to put the data
lenHow many bytes of data to transfer

Returns Nothing. Older versions of this function returned the status byte, but that it now saved to a private member on all SPI transactions.

Definition at line 146 of file RF24.cpp.

◆ read_register() [2/2]

Read single byte from a register

Parameters

regWhich register. Use constants from nRF24L01.h

Returns Current value of register reg

Definition at line 189 of file RF24.cpp.

◆ begin() [1/4]

Begin operation of the chip

Call this in setup(), before calling any other methods.

Definition at line 820 of file RF24.cpp.

◆ begin() [2/4]

Same as begin(), but allows specifying a non-default SPI bus to use.

Note This function assumes the SPI::begin() method was called before to calling this function. Warning This function is for the Arduino platform only Parameters

spiBusA pointer or reference to an instantiated SPI bus object.

Note The _SPI datatype is a «wrapped» definition that will represent various SPI implementations based on the specified platform. See also Review the Arduino support page. Returns same result as begin()

Definition at line 792 of file RF24.cpp.

◆ begin() [3/4]

Same as begin(), but allows dynamically specifying a SPI bus, CE pin, and CSN pin to use.

Note This function assumes the SPI::begin() method was called before to calling this function. Warning This function is for the Arduino platform only Parameters

spiBusA pointer or reference to an instantiated SPI bus object.
_cepinThe pin attached to Chip Enable on the RF module
_cspinThe pin attached to Chip Select (often labeled CSN) on the radio module.

For the Arduino Due board, the Arduino Due extended SPI feature is not supported. This means that the Due’s pins 4, 10, or 52 are not mandated options (can use any digital output pin) for the radio’s CSN pin.

Note The _SPI datatype is a «wrapped» definition that will represent various SPI implementations based on the specified platform. See also Review the Arduino support page. Returns same result as begin()

Definition at line 800 of file RF24.cpp.

◆ begin() [4/4]

Same as begin(), but allows dynamically specifying a CE pin and CSN pin to use.

Parameters

_cepinThe pin attached to Chip Enable on the RF module
_cspinThe pin attached to Chip Select (often labeled CSN) on the radio module.

For the Arduino Due board, the Arduino Due extended SPI feature is not supported. This means that the Due’s pins 4, 10, or 52 are not mandated options (can use any digital output pin) for the radio’s CSN pin.

Returns same result as begin()

Definition at line 811 of file RF24.cpp.

◆ isChipConnected()

Checks if the chip is connected to the SPI bus

Definition at line 984 of file RF24.cpp.

◆ startListening()

Start listening on the pipes opened for reading.

Open reading pipe 1 using address 0xCCCECCCECC

Definition at line 998 of file RF24.cpp.

◆ stopListening()

Stop listening for incoming messages, and switch to transmit mode.

Do this before calling write().

Definition at line 1020 of file RF24.cpp.

◆ available() [1/2]

Check whether there are bytes available to be read

Definition at line 1346 of file RF24.cpp.

Read payload data from the RX FIFO buffer(s).

The length of data read is usually the next available payload’s length

Definition at line 1369 of file RF24.cpp.

◆ write() [1/2]

Be sure to call openWritingPipe() first to set the destination of where to write to.

This blocks until the message is successfully acknowledged by the receiver or the timeout/retransmit maxima are reached. In the current configuration, the max delay here is 60-70ms.

The maximum size of data written is the fixed payload size, see getPayloadSize(). However, you can write less, and the remainder will just be filled with zeroes.

TX/RX/RT interrupt flags will be cleared every time write is called

Parameters

bufPointer to the data to be sent
lenNumber of bytes to be sent

Definition at line 1124 of file RF24.cpp.

◆ openWritingPipe() [1/2]

New: Open a pipe for writing via byte array. Old addressing format retained for compatibility.

Only one writing pipe can be opened at once, but this function changes the address that is used to transmit (ACK payloads/packets do not apply here). Be sure to call stopListening() prior to calling this function.

Addresses are assigned via a byte array, default is 5 byte address length

Definition at line 1406 of file RF24.cpp.

◆ openReadingPipe() [1/2]

Open a pipe for reading

Up to 6 pipes can be open for reading at once. Open all the required reading pipes, and then call startListening().

Warning If the reading pipe 0 is opened by this function, the address passed to this function (for pipe 0) will be restored at every call to startListening().
Read http://maniacalbits.blogspot.com/2013/04/rf24-addressing-nrf24l01-radios-require.html to understand how to avoid using malformed addresses. This address restoration is implemented because of the underlying neccessary functionality of openWritingPipe(). Parameters

numberWhich pipe to open. Only pipe numbers 0-5 are available, an address assigned to any pipe number not in that range will be ignored.
addressThe 24, 32 or 40 bit address of the pipe to open.

Remarks There is no address length parameter because this function will always write the number of bytes (for pipes 0 and 1) that the radio addresses are configured to use (set with setAddressWidth()).

Definition at line 1460 of file RF24.cpp.

◆ printDetails()

Print a giant block of debugging information to stdout

Warning Does nothing if stdout is not defined. See fdevopen in stdio.h The printf.h file is included with the library for Arduino.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *