Как заставить работать nRF24L01, Уроки Arduino

Поделиться
HTML-код
  • Опубликовано: 18 июл 2019
  • Уроки Arduino для начинающих, #8, Как заставить работать или почему не работают радиомодули nRF24L01
    🐾Оригинальные nRF24L01 на али: got.by/3kl1on got.by/3klqii
    лотерея или перемаркированные SI24R01: got.by/3klr07 got.by/3klqq3
    🐾Библиотека RF: tmrh20.github.io/RF24/index.html
    🐾Установка библиотеки в Arduino IDE: • Установка библиотеки в...
    🐾Старые примеры для модулей: arduinolab.pw/index.php/2015/1...
    Желающим оказать материальную поддержку.
    www.donationalerts.ru/r/arduin...
    #программирование #arduino #ардуино #уроки #nRF24L01
  • НаукаНаука

Комментарии • 84

  • @anatolytitov4169
    @anatolytitov4169 5 лет назад +5

    Спасибо, полезно!

  • @user-sd4gi7vj5f
    @user-sd4gi7vj5f 5 лет назад +7

    Спасибо. А то я иногда не понимал, почему на устройство передаётся команда, а ответа нет. Думал проблема в коде, а тут всё стало на свои места. Я эти модули покупал у разных продавцов - где подешевле, и никогда на маркировку не смотрел. Ещё раз спасибо - открыли глаза.

    • @dred77780
      @dred77780 5 лет назад

      Абсолютно те же грабли.

    • @-92tv47
      @-92tv47 2 года назад

      Спасибо вам и автору видио. Только думаю о данном модуле.

  • @1padlaxaker
    @1padlaxaker 5 лет назад

    спасибо за труд

  • @dizer3680
    @dizer3680 5 лет назад +2

    Посмотрел видос и чот интересно стало , кароч у меня оригинал, повезло

  • @alexey1119
    @alexey1119 5 лет назад

    спасибо. интересно

  • @user-dp8mr4jz8z
    @user-dp8mr4jz8z 5 лет назад

    Спасибо за подсказку, проверю все свои модули, ради интереса.., а то их штук 10 лежит.. ))

  • @TolyaBogomolov
    @TolyaBogomolov 5 лет назад +1

    Хм... Теперь я точно сделаю радио магнитолу на ардуино)

  • @gromitwoll6907
    @gromitwoll6907 2 года назад +2

    Решил проблему с задержкой delay.
    Для тех кто сталкивался с тем что модуль перестает работать после задержки больше 10 миллисекунд.
    Во-первых функция write в конце опускает питание модуля. Модуль может повторно не выйти из спящего режима. Питание нужно самому поднять.
    Но мне это не помогло. Оказалось что перед передачей числа нужно активировать две функции startListening() и stopListening().
    до сих пор не понимаю как они работают, но они пробуждают модуль после долгого сна.

  • @user-ov2ix1us3x
    @user-ov2ix1us3x 5 лет назад +31

    Интересно, я один жду шесть месяцев третий урок?)

    • @1two299
      @1two299 5 лет назад +1

      изв, 3й урок из чего ? иф не секрет

    • @manaevemil
      @manaevemil 3 года назад +1

      Третьего урока так и до сих пор нет . 2020

    • @bbnmn4800
      @bbnmn4800 2 года назад

      @@manaevemil все ещё нет. Сейчас2021

    • @PleerFol
      @PleerFol 2 года назад +1

      @@bbnmn4800уже 2022 так то

    • @smehopraym7916
      @smehopraym7916 Год назад

      @@PleerFol всё ещё ждём.2023

  • @dimapiter7586
    @dimapiter7586 5 лет назад +1

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

  • @spajalnikom
    @spajalnikom 5 лет назад +1

    Давно с ними работал.До сих пор лежит собранный проект😀

  • @sergt291
    @sergt291 5 лет назад +4

    Я также керамику напаиваю на них:-)

  • @iiiBog
    @iiiBog 10 месяцев назад +1

    У меня модули без усилителя - без текста на чипе, только точка. Модули с усилителем с оригинальной маркировкой. Но пока оба варианта работают без сбоев

  • @user-lc3oy3pj9v
    @user-lc3oy3pj9v 5 лет назад +13

    ну правильно... после шестого урока должен быть восьмой...

    • @dizer3680
      @dizer3680 5 лет назад +4

      А тоесть то что после 2 урока сразу 6 тебя вообще не смутило?!

    • @user-lc3oy3pj9v
      @user-lc3oy3pj9v 5 лет назад +1

      @@dizer3680 ну вообщето ожидалось что _шестой_ - последний.. потому что понятно что у автора с обучением - не очень...
      Но нет...
      а про нумерацию лучше всех сказал в своё время покойник задорнов..
      _"Пассажиры, у которых были билеты в девятый вагон, естественно, сели в первый из них. Потому что все нормальные люди с детства знают: девятый вагон тот, что сразу после восьмого. И никому в голову не может прийти, что после девятого вагона окажется снова девятый."_

  • @Sashka96963
    @Sashka96963 3 года назад

    У меня с Али пришли 2 модуля одной не разломанной платой. Точки на одной вплотную к буквам, на другой с краю платы. Текст напечатан четко. Но из 8 шт заказанных нашел 2шт. SI24L01.

  • @kostya1306
    @kostya1306 5 лет назад

    Спасибо. Меня давно мучает вопрос по этим модулям. У них есть режим подтверждения приема данных. У самого пока руки не дошли разобраться. Если расскажете будет здорово.

  • @user-he6vg3kk9l
    @user-he6vg3kk9l 5 лет назад +2

    Я бросил проект с радиомашинкой именно из-за проблем с этим модулем. Я уж думал, что я тупой и не могу нормально спаять все.

  • @2009wein
    @2009wein 4 месяца назад

    А что посоветуете, аналог или лучше модулей нрф24?

  • @smert_okupantam
    @smert_okupantam 5 лет назад +1

    сегодня нашел в клаве NRF24LE1H, хотя по даташиту там последняя буква максимум F. подделка?

  • @alexandernikolaev6838
    @alexandernikolaev6838 3 года назад +1

    Ссылка "Библиотека RF" не работает, ошибка 404 "File not found".

  • @dmaraptor
    @dmaraptor 5 лет назад +2

    Ссылка на оригинальные модули из описания ведет на магазин с какими то нереальными ценами.
    Можна почти за те же деньги взять лора модули

  • @StatistPL
    @StatistPL 5 лет назад +1

    Не знаю как Si24R1, я покупал SE8R01. Продают их под видом nRF24L01 mini. Такая же чушь совместимости. Ходят легенды, что при проектировании китайцы там перепутали порядок бит в байте, в одном из регистров. На самом деле они совместимы (по радиоданным), но не работает RX_PAYLOAD для ACK и сам ACK. Т.е. данные отправить и принять можно, но подтверждение получить невозможно. Как и отправить полезные данные в ACK... а это ооооочень полезная функция. Ну и скорость 500 оригинальный чип не поддерживает, естественно. Крайне не рекомендую покупать SE8R01.. у них хоть мощность чуть больше, но там целая простыня инициализации и калибровки. Информации по ней минимум, пришлось рыть китайские сайты. Да и жрет она значительно больше оригинала (актуально для батарейного питания).

    • @dizer3680
      @dizer3680 5 лет назад

      Не чего не понимаю но очень интересно...

  • @frmurafa3048
    @frmurafa3048 6 месяцев назад

    Здравствуйте! Подскажите пожалуйста, возможно ли сделать детектор вайфай сигнала на основе данной платы? Нужно сделать прибор сигнализирующий об обгаружении вайфай звуковым и световым сигналом.

    • @DGT67
      @DGT67 5 месяцев назад +1

      Да. См. функцию testCarrier();
      Назначение: Проверка наличия несущей частоты на выбранном канале (частоте).
      Синтаксис: testCarrier();
      Параметры: Нет.
      Возвращаемое значение: bool - наличие несущей на выбранном канале за все время его прослушивания.
      Примечание:
      Функция используется модулем в режиме приёмника, или после режима приёмника.
      Функцию можно использовать для проверки помех при выборе или смене канала. Если несущая обнаружена, значит на данном канале работает кто то другой и этот канал выбирать не стоит.
      При прослушивании канала для определения на нём сторонних устройств рекомендуется отключить автоматическую отправку подтверждения приёма данных вызвав функцию setAutoAck(false), чтоб не нарушать работу этих устройств.
      Функция не определяет факт наличия несущей в момент её вызова, а возвращает внутренний флаг библиотеки который устанавливается если за всё время прослушивания хоть раз была обнаружена несущая частота выбранного канала.
      Функция будет постоянно возвращать true если несущая была хоть раз обнаружена, пока не выйти из режима приёма функцией stopListening() и опять не начать прослушивание функцией startListening().
      Для обнаружения сторонних устройств можно использовать и функцию testRPD(), которая отличается от данной функции тем, что возвращает true при обнаружении только мощного сигнала на выбранном канале, а не любой несущей.

    • @DGT67
      @DGT67 5 месяцев назад +1

      Но testCarrier будет также ловить уровни от микроволновки, мышек, наушников

    • @frmurafa3048
      @frmurafa3048 5 месяцев назад

      @@DGT67 Большое спасибо!)

    • @frmurafa3048
      @frmurafa3048 5 месяцев назад

      @@DGT67 Можно ли редактировать сигнал функции setAutoAkc ?

    • @DGT67
      @DGT67 5 месяцев назад

      @@frmurafa3048 а что вы здесь хотите редактировать ? подтверждения - они либо есть либо их нет))) тем более setAutoAck() ничего не возвращает (void):
      void RF24::setAutoAck(bool enable)
      {
      if ( enable )
      write_register(EN_AA, 0b111111);
      else
      write_register(EN_AA, 0);
      }

  • @Ais_Hunt
    @Ais_Hunt 5 лет назад

    Когда-то пытался сделать простейшую мигалку на attiny13 и nRF в итоге потерпел неудачу. Причём Я пытался организовать передачу в одну сторону (не смотря на то что пины sck, miso, mosi нужня для перепрошивки. На тот момент Я не знал, что у тинки 13 - нет spi), т.е. замкнуть ногу CE на питание а csn по хитрой схеме через резистор и конденсатор.
    P.S. не повторяйте моих ошибок, лучше взять для передачи модуль на 433 мгц.

    • @indevor8337
      @indevor8337 5 лет назад

      сделал сигналку на attiny85 + nrf24l01 + pir-датчик)

  • @indevor8337
    @indevor8337 5 лет назад

    Данные можно передавать одновременно с чтением(слушанием), если соблюсти ряд условий:
    radio.setAutoAck(1); // режим подтверждения приёма, 1 вкл 0 выкл
    radio.enableAckPayload(); // разрешить отсылку данных в ответ на входящий сигнал
    radio.enableDynamicPayloads(); //разрешить динамический размер пакета в ответе
    ...
    radio.setDataRate(RF24_1MBPS); // скорость обмена должна быть > 250
    и в пакете "ответа" улетит ваша "нагрузка" (payload)
    ...
    radio.read(&recieved_data, sizeof(recieved_data));
    //читаем нашу структуру
    radio.writeAckPayload(pipeNo, &telemetry, sizeof(telemetry) ); //отправляем структуру в ответе
    А тот модуль с усилителем, но с керамической антенной, сколько кушает и дальность хотя бы 100м будет?..

    • @indevor8337
      @indevor8337 4 года назад

      @Planerful приемник отправит пакет в ответ на входящий сигнал от передатчика. Соответственно приемник должен слушать трубу передатчика.

    • @indevor8337
      @indevor8337 4 года назад

      @Planerful т.е сначала готовим данные которые отправим. Потом слушаем и в момент "приема" отправляе м в ответе данные. Описываемая вами ситуация выше произайти не может.

    • @indevor8337
      @indevor8337 4 года назад

      @Planerful реализуется просто: радио.врайтаскпейлоад(труба, массив отправки, ссылка на массив);
      радио.рид();

    • @indevor8337
      @indevor8337 4 года назад

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

    • @indevor8337
      @indevor8337 4 года назад

      @Planerful тут все очень подробно: wiki.iarduino.ru/page/NRF24L01-trema/ по функция.

  • @user-jc1cw7nm6s
    @user-jc1cw7nm6s 4 года назад +1

    Подскажите в чём может быть проблема. Заказывал 2-ве одинаковых ардуино нано, к ним 2-ва одинаковых модуля nRF24L01+, собрал и когда решил проверить столкнулся с такой проблемой - в режиме обзора оба модуля работают нормально, а вот в связке друг с другом работать не хотят (кто бы из них ни был передатчиком, другой не хочет принимать данные)

    • @cycymber1
      @cycymber1 3 года назад

      Такая же проблема

    • @murkotikus8383
      @murkotikus8383 3 года назад

      Ты же проблема. Уже несколько разных продавцов перебрал. Везде чипы немного отличаются друг от друга в способе нанесения маркировки.
      Эфир слушают все, а вместе заработали только 2 модуля и то это продлилось недолго. Хз кароч. Появилось впечатление, что это очень ненадёжное устройство и лучше осваивать блютус модули.

  • @SuperBatiskaf
    @SuperBatiskaf 5 лет назад

    Алексей подскажите что нибудь для моей хитрой задачи. Есть группа LoRa устройств объединенных в сеть, один в качестве раутера, остальные клиенты. У раутера есть соединение с интернетом через WiFi. Задача настроить передачу данных из устройств этой сети в интернет на MQTT сервер и обратно. Я так понимаю что нужно для PubSubClient предоставить свою имплементацию TCP Client - see PubSubClient::setClient(Client* client); Возможно есть уже готовая реализация клиента для LoRa модема, чтобы свою не писать? Там конечно класс небольшой, можно свое написать, тем более что в стандартной LoRa библиотеке уже есть реализация Stream, клиент к стриму несколько методов добавляет, типа connect по ай-пи адресу с хендшейком, запись чтение. Но с отладкой неделя уйдет легко. Возможно есть что то готовое?

    • @SuperBatiskaf
      @SuperBatiskaf 5 лет назад

      Похоже речь все таки идет про LoRaWAN, а LoRaStream все таки для пир ту пир. Задача значительно усложняется.

  • @startstopru
    @startstopru 4 года назад

    Подскажите, всю голову сломал, передатчик с усилителем, приемник без, при уровне передатчика low передача идет, при уровне max или high на приемнике пусто(. Передатчик подключен через стабилизатор, кондер на питании, вроде все по феншуй. Что я делаю не так.

    • @cycymber1
      @cycymber1 3 года назад

      Разобрались в чем проблема?

  • @iotmanager
    @iotmanager 5 лет назад +1

    А есть режим low power или deep sleep?

    • @iotmanager
      @iotmanager 5 лет назад

      Можно от батарейки запитать?

  • @Sherkhan_61
    @Sherkhan_61 Год назад

    Скажите, а если схема, которую я повторяю (используется как спектроанализатор) использует обычную плату (БЕЗ усилка), то плата с усилком не заработает??? Я слышал, что усилок нужно как то инициализировать. Повторюсь, у меня только прием используется.

    • @LpSts
      @LpSts 10 месяцев назад +1

      Модули с усилом и без работают вместе без напряга и доп.кода

    • @Sherkhan_61
      @Sherkhan_61 10 месяцев назад

      @@LpSts спасибо, буду знать. Я думал на свичик нужно давать команду отдельно, что бы он знал включить приёмник или передатчику. Ведь усилок должен подкилываться только к передатчику (причём в момент передачи) и убираться в момент приёма ( ну типа байпасса включаться, в обход усилка). Вероятно если делать спектроанализатор (где нрф-ка на приём работает) то тут проще, а вот если аппу радиоуправления делать, что бы ещё не только передавала, но и принимала телеметрию, то коммутация нужна, верно???

  • @user-ec7kq9hy9l
    @user-ec7kq9hy9l 5 лет назад +1

    а какой модуль порекомендуете для новичка?????

    • @arduinoLab
      @arduinoLab  5 лет назад +1

      JDY-40 может легко заменить nRFку

    • @user-nq1qx7qt5i
      @user-nq1qx7qt5i 3 года назад

      ...
      Ток передатчика: 40 мА
      Ток приёмника: 24 мА
      Ток покоя: 5 мкА
      Питание: 1.9-3.6 В
      ...
      cxemka.com/40-besprovodnoi-modul-2-4-ggc-jdy-40-uartdistancionnoe-upravlenie.html

  • @DmitryAvilkin
    @DmitryAvilkin 4 года назад

    Как smd версию заставить работать больше чем на 6 метров?

    • @Egor00f
      @Egor00f 4 месяца назад

      + Питание не от ардуины
      + Припаяй антену

  • @woffko5205
    @woffko5205 5 лет назад

    у меня NRF без усилителя около 20 метров пробивают, и конденсатор к ножкам обязательно.

  • @TEENASPECT
    @TEENASPECT 5 лет назад +2

    И всё-таки они очень капризные по питанию.))

  • @lucmal11
    @lucmal11 3 года назад +1

    а на каких модулях следует учиться ?

    • @MsMalets
      @MsMalets 3 года назад +1

      Что нибудь на ГУ-50

    • @lucmal11
      @lucmal11 3 года назад

      @@MsMalets что это ?

    • @user-nq1qx7qt5i
      @user-nq1qx7qt5i 3 года назад

      @@lucmal11
      Это лампово ;)

  • @gromitwoll6907
    @gromitwoll6907 2 года назад

    ссылка на библиотеку не работает

  • @exclight6820
    @exclight6820 5 лет назад +1

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

  • @PenuriaArt
    @PenuriaArt 10 месяцев назад

    То чувство, когда оригинал выглядит хуже клона

  • @arduinoLab
    @arduinoLab  5 лет назад +1

    а мог уехать в ПВД (

    • @user-mc6rv2pn2c
      @user-mc6rv2pn2c 5 лет назад +7

      в полиэтилен высокого давления?

    • @user-js4tr5sl2c
      @user-js4tr5sl2c 5 лет назад +2

      @@user-mc6rv2pn2c Поход Выходного Дня ?

    • @lebfrspb
      @lebfrspb 5 лет назад +2

      Летом надо ставить в приоритет ПВД. Хотя вот у нас дожди идут. Сижу дома. :(

    • @AlexeyBukreev
      @AlexeyBukreev 5 лет назад +1

      ruclips.net/video/q1T7ySrIzH0/видео.html

  • @romaVeber
    @romaVeber 5 лет назад

    на сколько я понял, данные можно ганять в обе стороны, но не одновременно

  • @Hedgehog_in_the_Fog
    @Hedgehog_in_the_Fog 5 лет назад

    *индитификатор :(

    • @arduinoLab
      @arduinoLab  5 лет назад

      не переживай, закончу уроки и закрою канал.

    • @Hedgehog_in_the_Fog
      @Hedgehog_in_the_Fog 5 лет назад

      Но я же про другое!

  • @zhuk462
    @zhuk462 4 года назад

    про трубы не правильно рассказал

  • @user-kx3cv4rc5w
    @user-kx3cv4rc5w 5 лет назад

    Было интересно, но ниуя не понял.