NRF24 - получить нулевую ошибку при перемещении модуля
Я использую 2 модуля NRF24L01 для отправки и получения данных. Оба они подключены с помощью адаптера.
Один подключен к Nano, а другой-к Wemos. Я использую библиотеку nRF24L01 для своего кода.
Код работает так, как ожидалось, но время от времени при перемещении вокруг NRF24L01, подключенного к Nano (или другому, подключенному к Wemos), во время работы кода он выплевывает длинную серию нулевых
, и отныне это только Tx-сообщения, а не Rx. Конечно, все провода DuPont несколько раз менялись на новые, чтобы исключить плохие провода. Поскольку это может происходить время от времени, а в некоторых случаях это происходит после нескольких хороших встряхиваний, я хочу, чтобы моя система знала, как бороться с такими случаями (идентифицировать и реагировать), а не - Избегать встряхивания.
Я знаю, что radio.begin()
решает эту проблему (для этого он использовал тест isChipConnected ()
, чтобы определить, что чип был вытащен, в моем случае - по назначению), и система вернулась к Tx и Rx, как и ожидалось.
Мне интересно, что может идентифицировать это состояние, чтобы вызвать radio.begin()
или другой обходной путь.
Пример: Выходные данные показывают
а) Состояние перед встряхиванием модуля NRF24L01.
б) нуль
-это из-за этой встряски.
в) Все сообщения отправлены и получены НОРМАЛЬНО, но никаких входящих сообщений ( а с другой стороны, отправленные сообщения не удалось отправить ).
14:54:22.444 -> <<[incoming] {"from":"Wemos","type":"ans","key0":"clk","key2":"2021-05-15 14:54:22"}
14:54:23.272 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:23.305 -> <<[incoming] {"from":"Wemos","type":"ans","key0":"clk","key2":"2021-05-15 14:54:22"}
14:54:23.371 -> nullnullnullnullnullnullnullnullnullnullnullnullnullnull>>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:24.927 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:25.722 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:26.516 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:27.344 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:28.139 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:28.934 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:29.762 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
14:54:30.557 -> >>[outgoing] {"from":"Arduino","type":"q","key0":"clk"}
@Guy . D, 👍0
Обсуждение0
- вопрос по трубке nRF24L01
- Как подключить NodeMCU к NRF24L01
- Переключение каналов NRF24l01
- Использование функции уровня сигнала модуля nRF24L01
- Как автоматически сбросить nrf24l01+ с кодом?
- NRF24L01+ PA не работает с Arduino Mega (работает с Nano)
- Пустое значение не игнорируется, как должно быть.
- Не получаем данные от NRF24L01
Значение нулевого указателя (или нулевого терминатора) не является точной ошибкой; как и почему вы его получаете или используете, полностью зависит от окружающего его кода. У нас нет такого контекста., @timemage
Соединительные кабели "Дюпон" не прочные. Они не *предназначены* для перемещения. Если вы размахиваете ими, значит, что-то не так с вашим дизайном., @Majenko
@Majenko - Если меня неправильно поняли, я не думаю, что это имеет какое-то отношение к переезду..., @Guy . D
@timemage почему вы думаете, что это как-то связано с кодом ?, @Guy . D
@Guy.D, ** я так думаю?, @timemage
@timemage, а не аппаратная вещь ?, @Guy . D