Подтверждение получения пакета для nRF24L01
- Войдите на сайт для отправки комментариев
Ср, 22/01/2020 - 13:49
Всем привет! Говорят, что у этих модулей есть режим подтверждения получения пакета.
Может ли кто-нибудь объяснить, как это работает? Например я отправил данные с одно модуля на другой, и тот должен в ответ как-то передать подтверждение, а первый модуль его зафиксировать.
Зарнее спасибо всем.
Все так и есть, если режим подтверждения включён (его можно и выключить). Вопроса не понял. Вам нужен даташит на этот приёмо-передатчик, чтобы подробности почитать или что?
Хотелось бы понять, как его включать/выключать.
Но, что ещё более востребовано, хочеться понять, как получить данные о потдверждении?
Ну если совсем примитивно: приёмник получил команду, отправил подтверждение на передатчик. Передатчик вывел в Serial «Команда успешно передана».
Мне бы простейший пример в несколько строк.
Включать - выключать методом библиотеки RF24 "setAutoAck" - там всё прокомментировано.
Простейшие примерчики - опять же прилагаются к библиотеке, но в целом там всё просто. Если подтверждение включено, то метод write вернёт истину если успешно отправил и получил подтверждение и ложь в противном случае.
Спасибо за информацию! Буду разбираться.
На малых расстояниях до 20 м, ACK вполне хорошее решение. Но при больших (>100 м) он становится неэффективен. Мне больше понравилось работать без него. Тупо отправляю пакет, а второе устройство возвращает его мне. Если пакеты совпали , то все ОК, если нет шлю снова. И так до 50 раз. Если не получилось, то что-то не в порядке. Реально на 100 метров получается 1-10 попыток, на 500 метров 10-50. С включенным АСК на 100 метрах связь практически пропадает. Использование NRF с усилителем большого выигрыша не дает. Правда есть небольшой гемморой с подбором пауз между приемом и передачей, закономерности не нашел, но влияют очень сильно.
там же при настройке можно задать число попыток связи и тайм-аут между попытками.
там же при настройке можно задать число попыток связи и тайм-аут между попытками.
На небольших расстояниях, все работает нормально. Но у меня расстояние до курятника было 70 метров, и никакие танцы с бубном не помогали. Связь тупо обрывалась и помогло только перезагрузка по питанию или зажать NRFку пальцами. Может быть библиотеки кривые брал. А этим способом удалось в течении прошлого сезона управлять пятью диммерами обогрева и освещения и получать информацию о температуре в брудерах с цыплятами. Хотя там и автономно все работало, но контроль и возможность вмешаться в процесс и изменить параметры системы не помешает.
Я выше написал к тому, что
т.е. по умолчанию там какие-то параметры все одно стоят на число попыток и паузу.
и вы бы озвучили, что там у вас получились за волшебные цифры
между приемом и передачей. Тогда можно было бы что-то пытаться понять.
Я выше написал к тому, что
т.е. по умолчанию там какие-то параметры все одно стоят на число попыток и паузу.
и вы бы озвучили, что там у вас получились за волшебные цифры
между приемом и передачей. Тогда можно было бы что-то пытаться понять.
Извиняюсь немного подзабыл, оказывается авто ответ включен. А то что я писал просто для усиления эффекта. У меня ардуинка к которой подключена NRF ка используется чисто в качестве радиомоста между базой и устройством сбора информации и управления (СБУ). И связана с ним по UART. Наверное из за задержек в обмене между ними и появились эти волшебные цифры. Вот скетч самого моста, там все видно. В дополнение ко всему этому информация все время передается разная (устройство сбор информации добавляет в конце блока его № циклически от 1 до 100 и проверяет его при приеме) т.к. иногда проскакивала информация, которую NRF считает корректной, но она была из предыдущей посылки.