Отваливается NRF24

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Добрый вечер.

Оборудование:

                          - 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 включения перестает передаваться сигнал по радио. Без подключенной нагрузки, все работает замечательно. 

Как побороть эту проблему.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Доброго всем понедельничного утра!

 

MaksMS
Offline
Зарегистрирован: 11.03.2013

Утра ! Может через millis() сделать мигалку светодиодом и узнать работает ли м/к (не зависает ли) ? или использовать ватчог ?

Скорее всего помехи по питанию..

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

Утра ! Может через millis() сделать мигалку светодиодом и узнать работает ли м/к (не зависает ли) ? или использовать ватчог ?

Скорее всего помехи по питанию..

 

МК работает, отваливается только радио. Как проверил работу МК? Управление освещением с кнопки (пин2) работает.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Ну неужели нет больше мыслей? Как побороть помехи по питанию?

MaksMS
Offline
Зарегистрирован: 11.03.2013

100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?

можете схему наисовать? не совсем понял куда.

MaksMS
Offline
Зарегистрирован: 11.03.2013

А чего тут рисовать ? паралельно питанию +3.3 и земле подключаются ёмкости и все..

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

А чего тут рисовать ? паралельно питанию +3.3 и земле подключаются ёмкости и все..

100+0,1? просто какое то странное сочетание.... просто 100 не пойдет?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

На работе пояснили почему надо 100+0,1, советуют 2х0,1 ставить. попробую вечером. Отпишусь.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

100 мкф + 0.1 мкф керамика на 3.3в как можно ближе к к радиомодулю не помогает ?

 

сделал. помогло. Но через какое то время помеха все равно проходит. Вижу 2 варианта:

1. Собрать отдельную линию с питанием на 3.3v

2. При подключении питания от ардуино ставить 2 пары конденсаторов, в начале и конце линии, а между ними индуктивность.

Первый вариант предпочтительнее, т.к. при сборке на mini Pro 5v в любом случае линию 3.3v делать придеться. Но насколько 1 вариант будет надежным?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Можно попробовать питать реле от отдельного стабилизатора - не зря же там оптрон стоит и делит схему на 2 части,которые могут питаться от разных источников...Я сразу делал именно разные источники питания,Хотя и один БП,но стабилизаторы разные..

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

MaksMS пишет:

Можно попробовать питать реле от отдельного стабилизатора - не зря же там оптрон стоит и делит схему на 2 части,которые могут питаться от разных источников...Я сразу делал именно разные источники питания,Хотя и один БП,но стабилизаторы разные..

Скорее всего да, так логичнее. В принципе правилнее собрать отдельно 5v для устройств 5v, соответственно на 3.3v и 12v опционально, но от одного БП.

pmaster
Offline
Зарегистрирован: 23.05.2011

а ты 3.3 в с ардуины брал? они там крайне слабые и не стабильные, бери 5в, ставь стабилизатор и всё долно быть норм.  

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

pmaster пишет:

а ты 3.3 в с ардуины брал? они там крайне слабые и не стабильные, бери 5в, ставь стабилизатор и всё долно быть норм.  

Хм. попробую. Да, брал 3.3 от ардуино.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Сделал от одного блока питания разветвление на: отдельно питание NANO, отдельно линия 5v для кнопки и реле, а от 5v 3.3v для радиомодуля. На сам радиомодуль припаял фильтр из 2-х конденсаторов на 100 и 0,1mF. Проблема осталась. Вечером сделаю для радиомодуля питание вообще от отдельной батареи. Отпишусь.

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

ingener.solovyev, ну как успехи? Помогло?

Внимательно слежу за темой, имея практически такие же проблемы. Только у меня силовой части нет, но периодические отваливания наблюдаются. Очень хочется понять истину. Только у меня может отработать и неделю, а может каждый час отваливаться. Причем отваливается  именно сам NRF (ардуины по вачдогу не ресетятся).

Кондеры на месте, питания вроде хватает.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Согласен не счет 3.3в - на некоторых ардуинах там оно не особо хорош - можно установить отдельный стабилизатор.

На счет природы зависания-  возможно из-за помех по питанию в некоторые регистры nrf записывается мусор и соотвественно сбиваются настройки ,чтобы это исправить  можно begin и остальные команды иницилизации вставить в основной цикл ,но это конечно костыли...

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

MaksMS пишет:

Согласен не счет 3.3в - на некоторых ардуинах там оно не особо хорош - можно установить отдельный стабилизатор.

На счет природы зависания-  возможно из-за помех по питанию в некоторые регистры nrf записывается мусор и соотвественно сбиваются настройки ,чтобы это исправить  можно begin и остальные команды иницилизации вставить в основной цикл ,но это конечно костыли...

Я бы сказал - очень большие костыли.

По стабилизаторам - стоит отдельный БП (5А, но это и не важно в данном случае) на каждую ардуину. После БП - платка (специально вытравил) с двумя стабами - 5В и 3,3В (конечно же, увешанные кондерами). И уж с этой платки - 5В на ардуину, а 3,3 - на питание модуля (у модуля прямо на ногах висит еще 2 кондера по питанию - электролит и керамика). Замерял - все напряжения в норме.

Есть подозрение, что могут забивать канал WIFI-модемы (DSL), коевых у нас раздают каждому. Там дефолтом вайфай включен и динамически меняется канал на более всободный. Вот так (только предположение, но уж сильно похоже лично в моей ситуации) включит кто за стенкой модем, а он хорошо "лупит" по своему и соседним каналам. А сколько там нужно для NRF-ки чтоб повеситься и пытаться обработать не свою пачку?

MaksMS
Offline
Зарегистрирован: 11.03.2013

Одно дело,когда просто зависает и помогает перезагрузка,а другое дело что теряется связь и востанавливается само. Вроде,насколько я смотрел частоты wi-fi ,то они не пересекаются с каналамы nrf больше 84.. http://ru.wikipedia.org/wiki/Wi-fi

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

Все верно - есть запас частот. Но мне кажется, что у модемов (особенно китайских) есть большой разброс, "задевающий" и остальные частоты NRF-ок (лишь предположение - могу ошибаться). У меня висят они на 125-м канале (что максимально удалено от вайфай частот - 2525 MHz. У вайфая 14-й канал затухает на 2494 MHz), но все равно повисает и причем сумбурно - нет закономерностей (в крайнем случае, я не выявил пока).

Мало того, в некоторых модемах при настройке наблюдаю не 14, а 16 каналов - возможно как раз - расширение диапазона (не вдавался в подробности - просто предполагаю) - и тогда уже получается последний канал слишком близко по частоте.

У меня точно также "теряется связь и востанавливается само". Но чтоб не ждать восстановления - я отправляю в ребут ардуину импровизированным вачдогом по неприходу данных в определенный промежуток времени по NRF) - тоже помагает.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Отчитываюсь!

Стабильность работы при отсоединении от реле 220v 100% при полном питании всего от ардуино.

Зделал отдельно питание 5v, 3.3v стабилизаторами с конденсаторами. На 5v подцепил отдельно реле, на 3.3v отдельно NRF24L01, на NANO питание напрямую с БП 12v 2А, от него же и питание на стабилизаторы. Отработало часа 3-4 без сбоев. Стал все перекидывать на ProMini, т.к. конечное устройство планировал собрать на ней. Сжек МК. Почему то 12v поданые на VIN выжгли чип, хотя, подозреваю, что в запарке на VCC 5v кинул питание, сейчас и не упомню, т.к. все провода выдернул, как задымилось.

Сегодня продолжу испытания на ProMini уже целой, для исключения риска, подам на нее питание 5v от стабилизатора релейного модуля.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

З.Ы. теперь я кажется знаю, почему сжег miniPro: "RAW. Для подключения нерегулируемого напряжения." - вот куда надо было 12v втыкать, а я в "VCC. Для подключения регулируемых 3.3 В или 5 В." воткнул.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Собрал схему, которую удалось стабильно запустить на Nano,  на miniPro. Радиомодуль отваливается после первого же включения или выключения нагрузки... без нагрузки все работает как часы.

pmaster
Offline
Зарегистрирован: 23.05.2011

однозначно помехи по питани какие то. реле как подключено? комутирует что? 

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

pmaster пишет:

однозначно помехи по питани какие то. реле как подключено? комутирует что? 

реле через стабилизатор 5v от блока питания 12v. К реле подключено 220v с энергосберегающей лампой.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Подключил следующим образом:

12v от блока питания на RAW miniPro, оттуда же на стабилизатор 5v, с которого запитана кнопка и реле. Стабилизатор 3.3v воткнул в 5v на плате miniPro, отсюда питание пошло на NRF24L01. В течении 2-х часов все работало с первого запуска без сучка и задоринки. А потом что то пошло не так, после первого же вкл/выклю стал отваливаться радиомодуль.

Что предприму далее: Поменяю все конденсаторы на новые, сейчас использую выпоянные из Б/У мат.плат и проч железа. Возможно конд. на 0.1 куплю танталовые. Уменьшу провода подключения NRF24L01 до минимума, установлю фильтр на питание из 100+0,1mF. Если и это не поможет, попробую индуктивность добавить. Но если и тут останутся косяуи, хз что делать.... тащить на осцилограф?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Вы 7 Вольт в тепло на стабилизаторе превращаете. А теперь  посмотрите на его размер.

Я от 9 Вольт стабилизированного  УНО- МЕГА  с эзернетом питаю - и то греется, но работает.

Возьмите хотя-бы вольтметр. И не в длинне проводов дело. И кондёры виноваты если только они совсем трупы.

 

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

trembo пишет:

Вы 7 Вольт в тепло на стабилизаторе превращаете. А теперь  посмотрите на его размер.

Я от 9 Вольт стабилизированного  УНО- МЕГА  с эзернетом питаю - и то греется, но работает.

Возьмите хотя-бы вольтметр. И не в длинне проводов дело. И кондёры виноваты если только они совсем трупы.

 

Вольтметр в первую очердь брал. Напряжение в норме. 12v - блок питания взят не случайно, так сказать для унифицирования. Стабилизаторы имеют входящее напряжение больше чем 12v. Кстати 9v то же подключал.

Ваши рекоминдации какие?

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

ingener.solovyev, на реле стоит диод на на катушке?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

ПисАли про кондёр 100 микрофарад на питание NRF24L01. прямо на его разъём.

Я пробовал и без него, работало.

Кстати питание NRF24L01 брал прямо с платы, готовое. Без венешнего стабилизатора.

Вроде там выходной ток пару сотен миллиампер, а NRF24L01 потребляет окол 50(пишу по памяти, которой нет)

Я надеюсь земли NRF24L01, реле, Ардуины и блока питания сходятся в одной точке?

И про демпферный диод никогда не забывайте

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

CityCat пишет:

ingener.solovyev, на реле стоит диод на на катушке?

стандартный китайский шилд с опторазвязкой.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

trembo пишет:

ПисАли про кондёр 100 микрофарад на питание NRF24L01. прямо на его разъём.

Ставил, стало реже, но есть.

trembo пишет:

Я пробовал и без него, работало.

Мне не повезло.

trembo пишет:

Кстати питание NRF24L01 брал прямо с платы, готовое. Без венешнего стабилизатора.

Ставлю стабилизатор, т.к. буду использовать с miniPro

trembo пишет:

Вроде там выходной ток пару сотен миллиампер, а NRF24L01 потребляет окол 50(пишу по памяти, которой нет)

trembo пишет:

Я надеюсь земли NRF24L01, реле, Ардуины и блока питания сходятся в одной точке?

Да. Кстати, а что будет если в разных?

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

УНО, ЛСиДи шилд, этот самый блок на 2 реле. 9 Вольт адаптер.

Хлопает релюшкой с интервалами 2-5 минут на газовом котле у соседа круглосуточно (без вотчдога!!!) уже вторую зиму.

 

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

trembo пишет:

УНО, ЛСиДи шилд, этот самый блок на 2 реле. 9 Вольт адаптер.

Хлопает релюшкой с интервалами 2-5 минут на газовом котле у соседа круглосуточно (без вотчдога!!!) уже вторую зиму.

 

Сделаю платку, м.б проблема в плохих контактах на макетке....

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

ingener.solovyev пишет:

Да. Кстати, а что будет если в разных?

Ток, текущий по проводу с ненулевым сопротивлением, создаёт на нём падение напряжения.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Возможног я не так подключаю стабилизатор?

Для 3.3v использую LF33A T220. В даташите в "Test circuit" стоят 0,1мФ и 2.2мФ (электролитический)., а в схемах, ниже, где показаны примеры разводки, везде стоят вместо 2.2мФ, 10мФ.

Радиотехники, разжуйте, как правильно обвязать стабилизатор?

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013
ales2k
Offline
Зарегистрирован: 25.02.2013

Попробуй NRF24 по простому запитать от 2-х пальчиковых батареек. Если исчезать прекратит, значит у тебя неудачный линейный стабилизатор - замени его на пару диодов - падение на каждом примерно по вольту - итого 2 вольта 5-2= останется как раз 3.

Если продолжит исчезать значит проблема в сигнальных линиях - проверяй пайку, ставь на них подтягивающие резисторы.

P/S Кондей 100 мкф припаяй на сам модуль обязательно. У модуля пиковые токи длиной несколько мкс большие. Без кондея может вешаться.

P P S Проверь работу модуля на примерах - мож чего в коде намудрил.

repeat83
Offline
Зарегистрирован: 07.03.2015

Обязательно питайте модуль от 3.3v. Хоть и заявлено что он толерантен к 5v, модуль может перестать работать, или работать очень нестабильно. Убедился лично. Думал что спалил два модуля, не работали вообще никак. После подключения к 3.3v заработали без всяких проблем. Сейчас онлайн 12 часов без единой потери пакетов.

Запитал от Arduino pro mini 5v через AMS1117 3.3 (без обвязки с конденсаторами) принимающий модуль, передающий подключил так же, но вместо AMS1117 3.3 запитал модуль от 5v через диод (подобрал такой, чтобы он как раз понизил приблизительно до 3.3v)

omusman
Offline
Зарегистрирован: 21.09.2014

Экранировать модуль и провода к нему идущие  не пробовали?  Ну кроме антенны.....

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

По моему у него ВХОДЫ   толерантны к 5-ти Вольтам, а не питание.....

repeat83
Offline
Зарегистрирован: 07.03.2015

А что там кроме питания есть? Другие входы по стандарту согласованы. Только питание вызывает проблемы. Лично с этим столкнулся. На 3.3v проблем нет даже через 3 стены, а вот с 5v питания отваливался, пакеты терялись.

maratkh
Offline
Зарегистрирован: 13.03.2016

ingener.solovye Получилось что то  в итоге? 

maratkh
Offline
Зарегистрирован: 13.03.2016

Получилось справится с проблемой тогда? У нас тоже самое сейчас, при нагрузке за оптопарой - вырубается радил nrf24

repeat83
Offline
Зарегистрирован: 07.03.2015

maratkh пишет:
Получилось справится с проблемой тогда? У нас тоже самое сейчас, при нагрузке за оптопарой - вырубается радил nrf24

Два года уж прошло )) Пробовали питать модули отдельно от всего

maratkh
Offline
Зарегистрирован: 13.03.2016

Даже удивительно что еще ответили )) и что с отдельным питанием помогло? Мы сейчас попробовали еще один конденсатор поставить- вроде перестало вырубаться радио. У нас там через оптопару 110 вольт с 1.2 кГц ток идет - вот как только нагрузка по больше становится - радио вырубается...

repeat83
Offline
Зарегистрирован: 07.03.2015

Хз, я не разбираюсь. Но мне помогло норм питание. От батарейки и от бп разные результаты бывают.

Yu5422
Offline
Зарегистрирован: 01.04.2016

Анализируйте факторы которые приводят к зависанию модуля! Подсказка - реле и питание 220В! ;)

В общем все очень просто! У Вас при срабатывании реле под нагрузкой при большом токе нагрузки между контактами праскакивет искра, а искра по своей сути широкополосная помеха и не только по питанию но и по радиоканалу. Вот она то и выбивает модуль, а через некоторое время он очухивается и все востанавливается. Если переключение происходит в момент когда ток через нагрузку близок к нулю - искры нет. Бороться можно разными методами - по минимуму хорошо экранировать модуль, а по правильному переключать реле в момент перехода тока (или хотя бы напряжения) в нагрузке через 0. 

 

Yu5422
Offline
Зарегистрирован: 01.04.2016

Еще как вариант симистор или твердотельное реле в замен электромагнитного!