Отваливается NRF24
- Войдите на сайт для отправки комментариев
Вс, 16/02/2014 - 18:34
Добрый вечер.
Оборудование:
- Arduini NANO
- NRF24L01
- Кнопка
- Realy modul 5v с оптообвязкой.
Скетч
#include <SPI.h> #include "RF24.h" RF24 radio(9, 10); const uint64_t pipes[2] = {0xF0F0F0F000LL, 0xF0F0F0F0FFLL}; // адреса каналов приема и передачи int i=0; int buttonstate = LOW; int buttonState = LOW; long interval = 500; long previousMillis = 0; void setup() { // Serial.begin (9600); radio.begin(); radio.setDataRate(RF24_250KBPS); radio.setChannel(100); radio.setRetries(15,15); radio.openWritingPipe(pipes[0]); radio.openReadingPipe(1, pipes[1]); radio.startListening(); pinMode (3, OUTPUT); digitalWrite (3, LOW); pinMode(2, INPUT); } void loop () { if(radio.available()){ char data[7] = ""; radio.read(&data, 6); //RM[0-9][0-9][0-9][0-2] delay (50); if (data[0] == 'R' && data[1] == 'M' && data[2] =='0' && data[3] =='1' && data[4] =='1' && data[5] =='1') { // Serial.println (data); buttonstate = digitalRead(2); High (); } else { if (data[0] == 'R' && data[1] == 'M' && data[2] =='0' && data[3] =='1' && data[4] =='1' && data[5] =='0') { // Serial.println (data); buttonstate = digitalRead(2); Low (); } else { if (data[0] == 'R' && data[1] == 'M' && data[2] =='0' && data[3] =='1' && data[4] =='1' && data[5] =='2') { switch (i) { case 0: radio.stopListening(); radio.write(&"$RM0110>", 8); radio.startListening(); break; case 1: radio.stopListening(); radio.write(&"$RM0111>", 8); radio.startListening(); break; } // Serial.println (data); } else { } } } } unsigned long currentMillis = millis(); if (currentMillis < previousMillis) {previousMillis = millis();} if(currentMillis - previousMillis > interval) { previousMillis = currentMillis; buttonState = digitalRead(2); if (buttonState != buttonstate) { buttonstate = digitalRead(2); switch (i) { case 0: High (); break; case 1: Low (); break; } } } } void High () { i = 1; digitalWrite (3, HIGH); radio.stopListening(); radio.write(&"$RM0111>", 8); radio.startListening(); } void Low () { i = 0; digitalWrite (3, LOW); radio.stopListening(); radio.write(&"$RM0110>", 8); radio.startListening(); }
Проблема, при подклчении лампы 220v к модулю реле, через 3-4 включения перестает передаваться сигнал по радио. Без подключенной нагрузки, все работает замечательно.
Как побороть эту проблему.
Доброго всем понедельничного утра!
Утра ! Может через millis() сделать мигалку светодиодом и узнать работает ли м/к (не зависает ли) ? или использовать ватчог ?
Скорее всего помехи по питанию..
Утра ! Может через millis() сделать мигалку светодиодом и узнать работает ли м/к (не зависает ли) ? или использовать ватчог ?
Скорее всего помехи по питанию..
МК работает, отваливается только радио. Как проверил работу МК? Управление освещением с кнопки (пин2) работает.
Ну неужели нет больше мыслей? Как побороть помехи по питанию?
100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?
100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?
можете схему наисовать? не совсем понял куда.
А чего тут рисовать ? паралельно питанию +3.3 и земле подключаются ёмкости и все..
А чего тут рисовать ? паралельно питанию +3.3 и земле подключаются ёмкости и все..
100+0,1? просто какое то странное сочетание.... просто 100 не пойдет?
На работе пояснили почему надо 100+0,1, советуют 2х0,1 ставить. попробую вечером. Отпишусь.
100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?
сделал. помогло. Но через какое то время помеха все равно проходит. Вижу 2 варианта:
1. Собрать отдельную линию с питанием на 3.3v
2. При подключении питания от ардуино ставить 2 пары конденсаторов, в начале и конце линии, а между ними индуктивность.
Первый вариант предпочтительнее, т.к. при сборке на mini Pro 5v в любом случае линию 3.3v делать придеться. Но насколько 1 вариант будет надежным?
Можно попробовать питать реле от отдельного стабилизатора - не зря же там оптрон стоит и делит схему на 2 части,которые могут питаться от разных источников...Я сразу делал именно разные источники питания,Хотя и один БП,но стабилизаторы разные..
Можно попробовать питать реле от отдельного стабилизатора - не зря же там оптрон стоит и делит схему на 2 части,которые могут питаться от разных источников...Я сразу делал именно разные источники питания,Хотя и один БП,но стабилизаторы разные..
Скорее всего да, так логичнее. В принципе правилнее собрать отдельно 5v для устройств 5v, соответственно на 3.3v и 12v опционально, но от одного БП.
а ты 3.3 в с ардуины брал? они там крайне слабые и не стабильные, бери 5в, ставь стабилизатор и всё долно быть норм.
а ты 3.3 в с ардуины брал? они там крайне слабые и не стабильные, бери 5в, ставь стабилизатор и всё долно быть норм.
Хм. попробую. Да, брал 3.3 от ардуино.
Сделал от одного блока питания разветвление на: отдельно питание NANO, отдельно линия 5v для кнопки и реле, а от 5v 3.3v для радиомодуля. На сам радиомодуль припаял фильтр из 2-х конденсаторов на 100 и 0,1mF. Проблема осталась. Вечером сделаю для радиомодуля питание вообще от отдельной батареи. Отпишусь.
ingener.solovyev, ну как успехи? Помогло?
Внимательно слежу за темой, имея практически такие же проблемы. Только у меня силовой части нет, но периодические отваливания наблюдаются. Очень хочется понять истину. Только у меня может отработать и неделю, а может каждый час отваливаться. Причем отваливается именно сам NRF (ардуины по вачдогу не ресетятся).
Кондеры на месте, питания вроде хватает.
Согласен не счет 3.3в - на некоторых ардуинах там оно не особо хорош - можно установить отдельный стабилизатор.
На счет природы зависания- возможно из-за помех по питанию в некоторые регистры nrf записывается мусор и соотвественно сбиваются настройки ,чтобы это исправить можно begin и остальные команды иницилизации вставить в основной цикл ,но это конечно костыли...
Согласен не счет 3.3в - на некоторых ардуинах там оно не особо хорош - можно установить отдельный стабилизатор.
На счет природы зависания- возможно из-за помех по питанию в некоторые регистры nrf записывается мусор и соотвественно сбиваются настройки ,чтобы это исправить можно begin и остальные команды иницилизации вставить в основной цикл ,но это конечно костыли...
Я бы сказал - очень большие костыли.
По стабилизаторам - стоит отдельный БП (5А, но это и не важно в данном случае) на каждую ардуину. После БП - платка (специально вытравил) с двумя стабами - 5В и 3,3В (конечно же, увешанные кондерами). И уж с этой платки - 5В на ардуину, а 3,3 - на питание модуля (у модуля прямо на ногах висит еще 2 кондера по питанию - электролит и керамика). Замерял - все напряжения в норме.
Есть подозрение, что могут забивать канал WIFI-модемы (DSL), коевых у нас раздают каждому. Там дефолтом вайфай включен и динамически меняется канал на более всободный. Вот так (только предположение, но уж сильно похоже лично в моей ситуации) включит кто за стенкой модем, а он хорошо "лупит" по своему и соседним каналам. А сколько там нужно для NRF-ки чтоб повеситься и пытаться обработать не свою пачку?
Одно дело,когда просто зависает и помогает перезагрузка,а другое дело что теряется связь и востанавливается само. Вроде,насколько я смотрел частоты wi-fi ,то они не пересекаются с каналамы nrf больше 84.. http://ru.wikipedia.org/wiki/Wi-fi
Все верно - есть запас частот. Но мне кажется, что у модемов (особенно китайских) есть большой разброс, "задевающий" и остальные частоты NRF-ок (лишь предположение - могу ошибаться). У меня висят они на 125-м канале (что максимально удалено от вайфай частот - 2525 MHz. У вайфая 14-й канал затухает на 2494 MHz), но все равно повисает и причем сумбурно - нет закономерностей (в крайнем случае, я не выявил пока).
Мало того, в некоторых модемах при настройке наблюдаю не 14, а 16 каналов - возможно как раз - расширение диапазона (не вдавался в подробности - просто предполагаю) - и тогда уже получается последний канал слишком близко по частоте.
У меня точно также "теряется связь и востанавливается само". Но чтоб не ждать восстановления - я отправляю в ребут ардуину импровизированным вачдогом по неприходу данных в определенный промежуток времени по NRF) - тоже помагает.
Отчитываюсь!
Стабильность работы при отсоединении от реле 220v 100% при полном питании всего от ардуино.
Зделал отдельно питание 5v, 3.3v стабилизаторами с конденсаторами. На 5v подцепил отдельно реле, на 3.3v отдельно NRF24L01, на NANO питание напрямую с БП 12v 2А, от него же и питание на стабилизаторы. Отработало часа 3-4 без сбоев. Стал все перекидывать на ProMini, т.к. конечное устройство планировал собрать на ней. Сжек МК. Почему то 12v поданые на VIN выжгли чип, хотя, подозреваю, что в запарке на VCC 5v кинул питание, сейчас и не упомню, т.к. все провода выдернул, как задымилось.
Сегодня продолжу испытания на ProMini уже целой, для исключения риска, подам на нее питание 5v от стабилизатора релейного модуля.
З.Ы. теперь я кажется знаю, почему сжег miniPro: "RAW. Для подключения нерегулируемого напряжения." - вот куда надо было 12v втыкать, а я в "VCC. Для подключения регулируемых 3.3 В или 5 В." воткнул.
Собрал схему, которую удалось стабильно запустить на Nano, на miniPro. Радиомодуль отваливается после первого же включения или выключения нагрузки... без нагрузки все работает как часы.
однозначно помехи по питани какие то. реле как подключено? комутирует что?
однозначно помехи по питани какие то. реле как подключено? комутирует что?
реле через стабилизатор 5v от блока питания 12v. К реле подключено 220v с энергосберегающей лампой.
Подключил следующим образом:
12v от блока питания на RAW miniPro, оттуда же на стабилизатор 5v, с которого запитана кнопка и реле. Стабилизатор 3.3v воткнул в 5v на плате miniPro, отсюда питание пошло на NRF24L01. В течении 2-х часов все работало с первого запуска без сучка и задоринки. А потом что то пошло не так, после первого же вкл/выклю стал отваливаться радиомодуль.
Что предприму далее: Поменяю все конденсаторы на новые, сейчас использую выпоянные из Б/У мат.плат и проч железа. Возможно конд. на 0.1 куплю танталовые. Уменьшу провода подключения NRF24L01 до минимума, установлю фильтр на питание из 100+0,1mF. Если и это не поможет, попробую индуктивность добавить. Но если и тут останутся косяуи, хз что делать.... тащить на осцилограф?
Вы 7 Вольт в тепло на стабилизаторе превращаете. А теперь посмотрите на его размер.
Я от 9 Вольт стабилизированного УНО- МЕГА с эзернетом питаю - и то греется, но работает.
Возьмите хотя-бы вольтметр. И не в длинне проводов дело. И кондёры виноваты если только они совсем трупы.
Вы 7 Вольт в тепло на стабилизаторе превращаете. А теперь посмотрите на его размер.
Я от 9 Вольт стабилизированного УНО- МЕГА с эзернетом питаю - и то греется, но работает.
Возьмите хотя-бы вольтметр. И не в длинне проводов дело. И кондёры виноваты если только они совсем трупы.
Вольтметр в первую очердь брал. Напряжение в норме. 12v - блок питания взят не случайно, так сказать для унифицирования. Стабилизаторы имеют входящее напряжение больше чем 12v. Кстати 9v то же подключал.
Ваши рекоминдации какие?
ingener.solovyev, на реле стоит диод на на катушке?
ПисАли про кондёр 100 микрофарад на питание NRF24L01. прямо на его разъём.
Я пробовал и без него, работало.
Кстати питание NRF24L01 брал прямо с платы, готовое. Без венешнего стабилизатора.
Вроде там выходной ток пару сотен миллиампер, а NRF24L01 потребляет окол 50(пишу по памяти, которой нет)
Я надеюсь земли NRF24L01, реле, Ардуины и блока питания сходятся в одной точке?
И про демпферный диод никогда не забывайте
ingener.solovyev, на реле стоит диод на на катушке?
стандартный китайский шилд с опторазвязкой.
ПисАли про кондёр 100 микрофарад на питание NRF24L01. прямо на его разъём.
Ставил, стало реже, но есть.
Я пробовал и без него, работало.
Мне не повезло.
Кстати питание NRF24L01 брал прямо с платы, готовое. Без венешнего стабилизатора.
Ставлю стабилизатор, т.к. буду использовать с miniPro
Вроде там выходной ток пару сотен миллиампер, а NRF24L01 потребляет окол 50(пишу по памяти, которой нет)
Я надеюсь земли NRF24L01, реле, Ардуины и блока питания сходятся в одной точке?
Да. Кстати, а что будет если в разных?
УНО, ЛСиДи шилд, этот самый блок на 2 реле. 9 Вольт адаптер.
Хлопает релюшкой с интервалами 2-5 минут на газовом котле у соседа круглосуточно (без вотчдога!!!) уже вторую зиму.
УНО, ЛСиДи шилд, этот самый блок на 2 реле. 9 Вольт адаптер.
Хлопает релюшкой с интервалами 2-5 минут на газовом котле у соседа круглосуточно (без вотчдога!!!) уже вторую зиму.
Сделаю платку, м.б проблема в плохих контактах на макетке....
Да. Кстати, а что будет если в разных?
Ток, текущий по проводу с ненулевым сопротивлением, создаёт на нём падение напряжения.
Возможног я не так подключаю стабилизатор?
Для 3.3v использую LF33A T220. В даташите в "Test circuit" стоят 0,1мФ и 2.2мФ (электролитический)., а в схемах, ниже, где показаны примеры разводки, везде стоят вместо 2.2мФ, 10мФ.
Радиотехники, разжуйте, как правильно обвязать стабилизатор?
!SOS · · · - - - · · · SOS!
Попробуй NRF24 по простому запитать от 2-х пальчиковых батареек. Если исчезать прекратит, значит у тебя неудачный линейный стабилизатор - замени его на пару диодов - падение на каждом примерно по вольту - итого 2 вольта 5-2= останется как раз 3.
Если продолжит исчезать значит проблема в сигнальных линиях - проверяй пайку, ставь на них подтягивающие резисторы.
P/S Кондей 100 мкф припаяй на сам модуль обязательно. У модуля пиковые токи длиной несколько мкс большие. Без кондея может вешаться.
P P S Проверь работу модуля на примерах - мож чего в коде намудрил.
Обязательно питайте модуль от 3.3v. Хоть и заявлено что он толерантен к 5v, модуль может перестать работать, или работать очень нестабильно. Убедился лично. Думал что спалил два модуля, не работали вообще никак. После подключения к 3.3v заработали без всяких проблем. Сейчас онлайн 12 часов без единой потери пакетов.
Запитал от Arduino pro mini 5v через AMS1117 3.3 (без обвязки с конденсаторами) принимающий модуль, передающий подключил так же, но вместо AMS1117 3.3 запитал модуль от 5v через диод (подобрал такой, чтобы он как раз понизил приблизительно до 3.3v)
Экранировать модуль и провода к нему идущие не пробовали? Ну кроме антенны.....
По моему у него ВХОДЫ толерантны к 5-ти Вольтам, а не питание.....
А что там кроме питания есть? Другие входы по стандарту согласованы. Только питание вызывает проблемы. Лично с этим столкнулся. На 3.3v проблем нет даже через 3 стены, а вот с 5v питания отваливался, пакеты терялись.
ingener.solovye Получилось что то в итоге?
Получилось справится с проблемой тогда? У нас тоже самое сейчас, при нагрузке за оптопарой - вырубается радил nrf24
Два года уж прошло )) Пробовали питать модули отдельно от всего
Даже удивительно что еще ответили )) и что с отдельным питанием помогло? Мы сейчас попробовали еще один конденсатор поставить- вроде перестало вырубаться радио. У нас там через оптопару 110 вольт с 1.2 кГц ток идет - вот как только нагрузка по больше становится - радио вырубается...
Хз, я не разбираюсь. Но мне помогло норм питание. От батарейки и от бп разные результаты бывают.
Анализируйте факторы которые приводят к зависанию модуля! Подсказка - реле и питание 220В! ;)
В общем все очень просто! У Вас при срабатывании реле под нагрузкой при большом токе нагрузки между контактами праскакивет искра, а искра по своей сути широкополосная помеха и не только по питанию но и по радиоканалу. Вот она то и выбивает модуль, а через некоторое время он очухивается и все востанавливается. Если переключение происходит в момент когда ток через нагрузку близок к нулю - искры нет. Бороться можно разными методами - по минимуму хорошо экранировать модуль, а по правильному переключать реле в момент перехода тока (или хотя бы напряжения) в нагрузке через 0.
Еще как вариант симистор или твердотельное реле в замен электромагнитного!