Зависает Ардуина при силовой коммутации

ivpo
Offline
Зарегистрирован: 07.01.2014

Здравствуйте

Купил такую штуку: https://amperka.ru/product/arduino-relay-shield

Пытаюсь использовать для включения и выключения ламп.

С люминисцентными лампами с пускателем зависает после первого же включения.

С лампами накаливания зависает на 5-7-й коммутации.

Правда не уверен на 100 % - может зависает, а может просто связь теряет по USB.

Подскажите, что я делаю не так?

Заранее спасибо!

rkit
Offline
Зарегистрирован: 23.11.2016

схема фото скетч

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

rkit пишет:

схема фото скетч

посмотри на дату регистрации ТС и реши, стоит ли участвовать в помощи. Я ни в коем случае не советую без спроса, просто информация к размышлению.

ivpo
Offline
Зарегистрирован: 07.01.2014

Важный момент. При опробовании всего этого дела вхолостую (без переменки 220 В, которые надо коммутировать релюхами) всё работает прекрасно.

1. Схема примитивная. Вышеуказанный шилд поверх Uno. Фаза рвется релюхой на этом шилде.

2. Фото тут: https://yadi.sk/i/WDRzS1fOuq5iaQ

3. Скетч:

String msg;
bool r1, r2, r3, r4;
long ts = 0;
long ts2 = 0;

#define RELAY_1 7
#define RELAY_2 6
#define RELAY_3 5
#define RELAY_4 4

void parse_com() {    
  if ((msg.indexOf("n1")) > -1) {
    Serial.print("relay 1");
    if (r1 == false) { digitalWrite(RELAY_1, HIGH); r1 = true; } 
    else { digitalWrite(RELAY_1, LOW); r1 = false; }
  }  
  if ((msg.indexOf("n2")) > -1) {
    Serial.print("relay 2");
    if (r2 == false) { digitalWrite(RELAY_2, HIGH); r2 = true; } 
    else { digitalWrite(RELAY_2, LOW); r2 = false; }
  }  
  if ((msg.indexOf("n3")) > -1) {
    Serial.print("relay 3");
    if (r3 == false) { digitalWrite(RELAY_3, HIGH); r3 = true; } 
    else { digitalWrite(RELAY_3, LOW); r3 = false; }
  }  
  if ((msg.indexOf("n4")) > -1) {
    Serial.print("relay 4");
    if (r4 == false) { digitalWrite(RELAY_4, HIGH); r4 = true; } 
    else { digitalWrite(RELAY_4, LOW); r4 = false; }
  }  

  if ((msg.indexOf("n_on")) > -1) {
    digitalWrite(RELAY_1, HIGH); r1 = true;
    digitalWrite(RELAY_2, HIGH); r2 = true;
    digitalWrite(RELAY_3, HIGH); r3 = true;
    digitalWrite(RELAY_4, HIGH); r4 = true;
    Serial.print("all ON");
  }    

  if ((msg.indexOf("n_off")) > -1) {
    digitalWrite(RELAY_1, LOW); r1 = false;
    digitalWrite(RELAY_2, LOW); r2 = false;
    digitalWrite(RELAY_3, LOW); r3 = false;
    digitalWrite(RELAY_4, LOW); r4 = false;
    Serial.print("all OFF");
  }      
}

void setup() {
  Serial.begin(9600);  
  
  for (int i = 4; i <= 7; ++i) {
    pinMode(i, OUTPUT);
  }
  r1 = false;
  r2 = false;
  r3 = false;
  r4 = false;  
}

void loop() {
  // чтение консоли
  while (Serial.available()) {
    char inChar = Serial.read();
    msg += inChar;
    if (inChar == '\n') {
      parse_com();      // парсим прочитанное
      msg = "";
    }
  }    

  // таймер
  if (millis() - ts > 10000) {    
    Serial.println("Ready");
    ts = millis();
  }

  if (millis() - ts2 > 60000) {    
    Serial.print("TSPA-FON v.0.9");
    ts2 = millis();
  }
  
  
}

 

ivpo
Offline
Зарегистрирован: 07.01.2014

Что не так с моей датой регистрации?

rkit
Offline
Зарегистрирован: 23.11.2016

Ну раз схема примитивная, да еще и не соответствующая фото, то теперь можно и игнорировать ветку форума.

nik182
Offline
Зарегистрирован: 04.05.2015

Ну да схема примитивная. Реле и ардуина хоть от разных источников питаются и не соединены по земле?  Если ответы не нет то так и будет. 

ivpo
Offline
Зарегистрирован: 07.01.2014

У этого шилда нет возможности запитать реле от отдельного источника:

https://bit.ly/30sBZrn

nik182
Offline
Зарегистрирован: 04.05.2015

У любого шилда есть такая возможность если руки прямые.

ivpo
Offline
Зарегистрирован: 07.01.2014

Да возможность-то есть, но это же колхозить надо.

Суть мне понятна, я просто не думал, что эта связка будет такая слабая по электромагнитной совместимости.

 

nik182
Offline
Зарегистрирован: 04.05.2015

Только при нидуктивной нагрузке. Любая схема при ней глючит МК если без развязки. Высоковольтные пики они такие, пролазят через любое соединение, даже землю. Иногда феритовые кольца помогают между шилдом и МК.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Конденсатор 4.7мкф 250в параллельно силовому выходу может решить эту проблему.

NeGagarin
Offline
Зарегистрирован: 21.12.2017

mykaida пишет:

Конденсатор 4.7мкф 250в параллельно силовому выходу может решить эту проблему.

только конденсатор на 400 В. 220 В действующее значение в розетке, 311 В амплитудное.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

NeGagarin пишет:

только конденсатор на 400 В. 220 В действующее значение в розетке, 311 В амплитудное.

Нет повода поспорить. 400!!!

ivpo
Offline
Зарегистрирован: 07.01.2014

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

Проверил на автономном скрипте. Речь идет ТОЛЬКО о потере связи по USB. Зависания нет.

 

 

NeGagarin
Offline
Зарегистрирован: 21.12.2017

Ну и "землю" (GND) общую как нибудь сделай.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а снабер на контакты релюшки повесили?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013
Продолжим.
-а опторазявязку сделали?
-а запитали реле от отдельного БП?
-а сделали фильтр (катушки, бусинки, итп) по питанию МК?
-а заэкранировали плату реле от контроллера?
 
PS: у меня как то раз с одной новой мышкой USB-порт повадился 
отключаться при включении в розетку чего-либо. Треньк-треньк, и снова включается.
Надоело. Одел мышке на хвост увесистый феррит от мониторного кабеля, сделал 
на нём пару оборотов кабеля, и всё, проблема исчезла.
 
Zauberer
Offline
Зарегистрирован: 15.11.2015

Делал управление двумя электродвигателями насосной станции по 30 квт каждый. Опторазвязка по входу-выходу,  раздельное питание контроллера и реле и экранизация контроллера (металлический корпус) решает проблемы с зависанием. Полностью согласен с dimax

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

SLKH
Offline
Зарегистрирован: 17.08.2015

dimax пишет:

Продолжим.
-а опторазявязку сделали?
-а запитали реле от отдельного БП?
-а сделали фильтр (катушки, бусинки, итп) по питанию МК?
-а заэкранировали плату реле от контроллера?
Там питание реле от клеммы +5v ардуины - одного этого достаточно. Хорошую плату амперка придумала.
ivpo
Offline
Зарегистрирован: 07.01.2014

Да, это главная проблема.

SLKH
Offline
Зарегистрирован: 17.08.2015

mykaida пишет:

Конденсатор 4.7мкф 250в параллельно силовому выходу может решить эту проблему.

поможет, кроме всего прочего, решить проблему конденсатор 0,001мкф 650 вольт с резистором 39 ом.

а пихать 5 микрофарад в 220 вольт - садизм извращенный.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

SLKH пишет:

Там питание реле от клеммы +5v ардуины - одного этого достаточно. Хорошую плату амперка придумала.

Неужто неотключаемое? Обнаглели... Рэзать надо!

SLKH
Offline
Зарегистрирован: 17.08.2015

mykaida пишет:

SLKH пишет:

Там питание реле от клеммы +5v ардуины - одного этого достаточно. Хорошую плату амперка придумала.

Неужто неотключаемое? Обнаглели... Рэзать надо!

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

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

SLKH пишет:

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

Так раньше они джамперы ставили под разные ситуации... А уж без опторазвязки...ищите нормальных производителей. А это ф топку!