nRF24L01+ : побеждаем модуль.

Тема в разделе "Проводная и беспроводная связь", создана пользователем ИгорьК, 19 июн 2014.

  1. Oleg_Dr

    Oleg_Dr Нуб

    Здравствуйте. Читать то читать...но английским нужно владеть в совершенстве. Иначе слова то знаю, а смысл написанного не понять....
    Да, я нашел этот документ, Антон подсказал. Будем изучать....
    Вот интересно, автоматический подтверждающий ответ, Ack, без пейлоуд, можно какими то методами вывести на дерганье ног? Или это только через прочтение регистров?
    Да, картинки эти я видел в даташите. ну.....
     
  2. Oleg_Dr

    Oleg_Dr Нуб

    Почитал нормально переведенную статью про модули.
    Это получается, что если у меня передатчик отправляет телеметрию, темп/влажн, приемнику. Нужен всего один канал, т.е. нулевой!
    А в качестве бонуса, приемник в подтверждении приема с полезной нагрузкой, отправляет обратно, по этому же каналу один байт. Который я методом if (radio.isAckPayloadAvailable() зажигаю светодиод на ножке контроллера передатчика, сигнализируя о нормально принятых приемником данных. (Это для наглядности).
    Ну мне пока и этого достаточно....Всего один канал!
    Это сколько в скетче можно закомментировать!
     
  3. Oleg_Dr

    Oleg_Dr Нуб

    Интересная ситуация....Изменил канал приемника с первого на нулевой
    radio.openReadingPipe(1, address[0]); // открыть канал на приём
    radio.openReadingPipe(0, address[0]); // открыть канал на приём
    ...перепрошил приемник. Работает, передатчик принимает подтверждение. Значит приемник отправляет Подтверждение с Полезной нагрузкой по этому же каналу передатчику!
    Снял питание с приемника (в нем менял канал), вновь подал.....И...подтверждение уже не приходит на передатчик.??
    Пришлось заново устанавливать первый канал на прием в приемнике!!!
    radio.openReadingPipe(1, address[0]); // открыть канал на приём
    А как же приемник работает с шестью передатчиками с Подтверждениями???
    Может только Подтверждение с Полезной Нагрузкой нужен отдельный канал...
    Странно.
     
  4. parovoZZ

    parovoZZ Гуру

    ни разу не пользовался дуриновскими библиотеками - они все кривые. А из даташита мы узнаём, что в пакет подтверждения записывается адрес TX_ADDR приёмника. Поэтому, чтобы ACK ответ улетел передатчику, адрес RX_ADDR приёмника обязан совпадать с его же TX_ADDR. Это показано на картинке выше. И у передатчика один из pipe должен быть с этим же адресом.
     
  5. Oleg_Dr

    Oleg_Dr Нуб

    Все таки разбирался с функцией MultiCeiver.
    Это когда до шести передатчиков шлют нагрузку на один приемник. Приемник в ответ передает Подтверждение приема каждому передатчику, или вместе с подтверждением добавляет Полезную Нагрузку. Важно, что приемник в ответ подтверждает в туже самую трубу/канал из которого пришла нагрузка! Работа только с Подтверждениями. Без задачи передавать что то приемником для передатчиков специальным требованием.
    Вроде разобрался. Да, дуриновские бибиотеки, но вроде заработало. Хотя без танцев с бубном не обошлось. Очень помогла та картинка из даташита, которую выложил parovoZZ.

    Это первый передатчик.
    Multi Ceiver_один_перед+АСК.jpg

    Это один приемник.
    Multi Ceiver_прием+АСК.jpg