Arduino UNO с Ethernet Shield и nRF24l01 не общается стабильно по радиоканалу
- Войдите на сайт для отправки комментариев
Пт, 09/02/2018 - 13:15
Добрый день, друзья!
При работе Arduino UNO с Ethernet Shield и nRF24l01. Ардуино УНО спустя некоторое время работы перестает общаться с остальными модулями по радиоканалу nRF24l01. Чтобы УНО снова начал общаться по радиоканалу приходится перезагрузить Ethernet shield. Для nRF24l01 использую библиотеку https://github.com/shnae/rf24_plus_softSPI
Данная библиотека рекомендована на сайте http://shanes.net/how-to-use-an-nrf24l01-rf24-with-an-arduino-ethernet-shield/
Что можно сделать, чтобы ардуино стабильно общался с другими модулями по радиоканалу?
Связь между УНО и сервером стабильна.
Спасибо за ранее!
1. Убрать трансивер с software SPI и повесить на родной, не забыв выделить отдельный выход для SS/CS. Какой это из его выводов - CSN или CE - не помню.
2. В цикле работать с сетью, поднимать на SS проводе шилда единицу, опускать SS трансивера в ноль, работать с трансивером, менять 0 и 1 на проводах SS местами (вернуть как было), повторять в цикле. Короче по очереди опрашивать сеть-трансивеер-сеть-трансивер-сеть... и т п.
Посмотреть чо будет. Убрать функционал сервера, сделать сервером компьютер. Заставить UNO только запрашивать состояние с компьютера (это надёжнее в плане целостности пакетов).
3. Оставить так, то есть не с компьютера опрашивать Uno, но обеспечить провайдинг информации с компкутора, на уно. Чтобы она могла быть клиентом, тогда будет без разницы, сколько времени заниматься сетью, сколько радио. В противном случае активный запрос может прийтись как раз на время когда опрашивались трансиверы, отсюда ненадёжность работы с сетью. Если в сетевом интерфейсе только нажимались кнопки - выдавать документ (HTML, текст, json - что душеньке угодно), в котором эти кнопки имеют последнее состояние, пока их пользователь нажимал мышкой. По запросу сбрасывать. По воздействию из web-интерфейса выставлять. Как флаг в процессорах x86.
Если всё вышенаписанное не устраивает, то
функционирование, а затем как по волшебству, отлетание функционала через некоторое время, это явный и однозначный симптом вполне конкретной проблемы - утечки памяти. I'm strongly recommend you reconsider using this library, как говорится. Если библиотека написана не обезьяной, вообще, физически, не бывает такого, вообще с корнями, чтобы программа работала, работала а потом чпок и всё сломалось. Утечка памяти. Либо вы пользуетесь библиотекой не предусмотренным в ней способом. Копайте, может быть добьётесь внятной безглючной работы. Нет - выше предложено, как по классике.
Если всё вышенаписанное непонятно - не могу помочь. Реализация eth+rf24 у меня была, но потом исходника не осталось т. к. заказчики решили от этого варианта отказаться. А вспоминать, какой из проводов - CSN или CE, мне реально лень.
Спасибо за ответ. Вы можете исправить данную ошибку, если вам отправлю все скечти и доступ к сайту? Конечно, не бесплатно. Подробнее можем обсудить в личке https://vk.com/id405785241
Вы уверены, что перезагружаете только Ethernet Shield? Насколько мне известно - кнопка на нем ребутит всю систему целиком.
Этот человек мне уже 3 недели обещает заплатить за выполненную работу. Ещё, просил помочь в продолжении выполненной работы.
Так, что берите предоплату 100%. Можете с него еще и мою часть потребовать)
На Амперке у него тоже несколько аккаунтов и имен)