Arduino виснет

dts
Offline
Зарегистрирован: 01.04.2013

Arduino uno с ethernet шилдом W5100 подключена к реле модулю. Реле разрывает и замыкает провод в розетке 220В, нагрузка мелочная - роутер. Питается ардуина из соседней розетки от usb блока питания. Проблема - стоит, например,  коснуться щупом мультиметра контакта управляемой розетки - ардуино виснет.

Полагаю надо где-то поставить фильтр, но не силен в схемотехнике, подскажите что и как.

реле модуль вот такой

Клапауций
Offline
Зарегистрирован: 10.02.2013

dts пишет:

Arduino uno с ethernet шилдом W5100 подключена к реле модулю. Реле разрывает и замыкает провод в розетке 220В, нагрузка мелочная - роутер. Питается ардуина из соседней розетки от usb блока питания. Проблема - стоит, например,  коснуться щупом мультиметра контакта управляемой розетки - ардуино виснет.

Полагаю надо где-то поставить фильтр, но не силен в схемотехнике, подскажите что и как.

реле модуль вот такой

- реле управлять через оптопару.

- мк питание: отдельной дорожкой +5V, далее отдельной дорожкой на VCC через дроссель 100мкГн, и конденсатор 0,1 мкФ у ноги микросхемы на землю. AVCC - аналогично VCC разводим(раздельно c VCC).

Все блоки питания должны быть остащены фильтрами эми.

пример использования фильтра, нужное выделил.

 

зы

С вот этим не понятно "Arduino uno с ethernet шилдом W5100 подключена к реле модулю." - оно питается через один блок питания? Если "да", то при наличии неполадок - пытаться развести питание реле и питание контроллеров.

dts
Offline
Зарегистрирован: 01.04.2013

похоже не из питания приходит помеха.

если питать ардуину от батареи ноутбука, всё равно виснет.

В зависшем состоянии нормально шьется и продолжает работу.

В модуле реле есть оптрон. 

Может ethernet шилд ловит помехи? Индикатор линка перед зависанием мигает, но продолжает гореть.

Клапауций
Offline
Зарегистрирован: 10.02.2013

dts пишет:
Проблема - стоит, например,  коснуться щупом мультиметра контакта управляемой розетки - ардуино виснет.

Конечно - "не по питанию" и не "виснет".

dts
Offline
Зарегистрирован: 01.04.2013

действительно, виснет только ethernet shield, проверил - serialprint в цикле не перестает работать, хотя пинг не идет.

Dima85
Offline
Зарегистрирован: 07.01.2013

Знаете у меня аналогичная проблема, так же использую ethernet шилдом W5100 + Реле модуль который включает и выключает ночьник. 

Иногда почему-то все зависает. Тоесть я не могу зайти на страничку arduino, она так же не пингуется. Пробовал различные конфигурации кода, не помогло.

dts
Offline
Зарегистрирован: 01.04.2013

Dima85 пишет:

Знаете у меня аналогичная проблема, так же использую ethernet шилдом W5100 + Реле модуль который включает и выключает ночьник. 

Иногда почему-то все зависает. Тоесть я не могу зайти на страничку arduino, она так же не пингуется. Пробовал различные конфигурации кода, не помогло.

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

у вас оригинальный шилд или китайский клон? 

у меня клон вот такой

может китайцы выкинули какие фильтры?

Dima85
Offline
Зарегистрирован: 07.01.2013

Видимо у меня Китайский клон, он такой же как на вашей картинке.

Но arduino не всегда сразу виснет. Он может проработать и 2-3 дня, а иногда и только 1-2 часа.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

нужно понимать, что никто так и не выяснил почему он виснет?...

будем искать

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

ардуиновские платы разведены через ж...у. Была уже тема по реле-шилду, ардуина тупо хватала  помеху от включаемой/выключаемой нагрузки... подозреваю что и в вашем случае на цифру идет шум

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

а вот вы зря так категорично волну подняли на железо :)

буржуи пишут что нужно иметь буфер для странички, иначе это все дело будет виснуть постоянно.

сейчас попробуем

Клапауций
Offline
Зарегистрирован: 10.02.2013

Puhlyaviy пишет:
а вот вы зря так категорично волну подняли на железо :)

буржуи пишут что нужно иметь буфер для странички, иначе это все дело будет виснуть постоянно.

Буфер для искры в соседней розетке?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

Puhlyaviy пишет:
а вот вы зря так категорично волну подняли на железо :)

буржуи пишут что нужно иметь буфер для странички, иначе это все дело будет виснуть постоянно.

Буфер для искры в соседней розетке?

канечно.. вот вы например где искру храните? небось по старинке в ведрах? а мы вот буферы для них строим...


byte Ethernet::buffer[1000]; //        if you increase the size of the HTML code you may need to increase the buffer size (or it will stop working) //TODO
BufferFiller bfill;
Клапауций
Offline
Зарегистрирован: 10.02.2013

Puhlyaviy пишет:
канечно.. вот вы например где искру храните?

Ну, как грится кесарю-кесарево(с) - электрики искру хранят в конденсаторах.

Какие там byte Ethernet::buffer[1000]; если МК ардуино намертво защёлкивается от индуктивной помехи и ничем, кроме общего ресета её с места не сдвинешь?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

Puhlyaviy пишет:
канечно.. вот вы например где искру храните?

Ну, как грится кесарю-кесарево(с) - электрики искру хранят в конденсаторах.

Какие там byte Ethernet::buffer[1000]; если МК ардуино намертво защёлкивается от индуктивной помехи и ничем, кроме общего ресета её с места не сдвинешь?

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

а вы пока сделали бы платы с хорошей разводкой.. ну как професионал.. мы бы их с радостью покупали..

Клапауций
Offline
Зарегистрирован: 10.02.2013

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

Вы тему с какого места читаете?

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

Puhlyaviy пишет:
а вы пока сделали бы платы с хорошей разводкой.. ну как професионал.. мы бы их с радостью покупали..

Вы и без моей помощи можете покупать промышленные блоки питания и фильтры.

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

зы

Коммерческое предложение:

Принудительная установка фильтрующих элементов в цепи питания Ардуино и управляемых ея девайсов на дому у клиента, дорого.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

Вы тему с какого места читаете?

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

Вы и без моей помощи можете покупать промышленные блоки питания и фильтры.

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

зы

Коммерческое предложение:

Принудительная установка фильтрующих элементов в цепи питания Ардуино и управляемых ея девайсов на дому у клиента, дорого.

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

причем все это происходит на примере из базовой библиотеки... и поиск по буржуиским ресурсам дает идею о том что проблема с библиотекой.

 

axill
Offline
Зарегистрирован: 05.09.2011

dts пишет:

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

А если не касаться - работает как задумано?

прикосновение щупом это статика, покажите свою схем

dts
Offline
Зарегистрирован: 01.04.2013

мои дроссели и кондеры на 0,1мкф застряли в недрах почты россии, пока не пробовал.

пустое реле щелкает нормально, щупами коммутируемую розетку трогаю нормально в 7 из 10 случаев. Реле развязано оптроном.

Виснет обычно езернет шилд, сама ардуина не виснет в большинстве случаев, serial.print() в цикле продолжает выполнятся

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

Питается всё от батарейки Крона, не понимаю, ведь это должно исключать помехи со стороны питания. Но всё же попробую зафильтровать позднее.

А как зафильтровать помехи на езернет шилде? куда подоткнуть кондер 0,1мкф?

Или может патчкорд ловит чего?

видел еще шилд немного другой схемотехники, но пока жалко на него денег ;)

вот такой:

про езернет модули на ENC28J60 тоже нехорошие отзывы в плане стабильности.

axill
Offline
Зарегистрирован: 05.09.2011

dts пишет:

мои дроссели и кондеры на 0,1мкф застряли в недрах почты россии, пока не пробовал.

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

Цитата:
Виснет обычно езернет шилд, сама ардуина не виснет в большинстве случаев, serial.print() в цикле продолжает выполнятся

ethernet шилд пачкордом куда подключен?

Цитата:

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

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

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

Цитата:

про езернет модули на ENC28J60 тоже нехорошие отзывы в плане стабильности.

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

maksim
Offline
Зарегистрирован: 12.02.2012

А SD-карта у вас случайно не воткнута в шилд?

И если у вас УНО-подобная плата, то в момент зависания что происходит со светодиодом 13 вывода?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

у меня мега2560, виснет и с картой и без карты...

Samodelkin
Offline
Зарегистрирован: 07.06.2012

Использую мегу 2560 + китайский эзернет шилд на визнете. На меге куча обвеса, 3 температурных датчика, 1 влажности, 1 давления, часы, lcd дисплей, радиомодуль, управление нагрузкой 220 на твердотельном реле, пишется лог данных на флешку, ну и веб страница на которую выводятся показания и управление нагрузкой. Никаких фильтров не ставил, библиотека стандартная. По началу то же были "глюки". Заменил блок питания, раньше использовал импульсник, потом собрал "по-старинке" на трансформаторе :) Естественно надо смотреть какие пины использует езернет шилд, что бы случайно не повесить на них еще чтонибудь. Все датчики, нагрузка, часы и т.д. на расстоянии 2х метров от меги, все провода экранированые, ну кроме питания :) Все работает стабильно 24/7, хотя очень редко, но бывает что подвисает, может раз в месяц. Для этого собрал на ардуино нано пинговалку, если "сайт" завис, то щелкает релюха, которая делает тупо ресет меге. Возможно такое решение избыточно и является костылем, но времени нет разбираться более детально.

И еще совет, при инициализации библиотеки лучше вручную задавать ip, mac, gateway, mask. Еще можно посоветовать делать программный ресет ардуине, например раз в сутки.

Вобщем я не профи, все делал понаитию, надо послушать наших гуру форума :)

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

гуру тут как то нет... видимо не выросли еще...

на оригинальном форуме за создание подобной темы уже баны раздают :)

изыскание показали примерно следующее...

сама мега2560 продолжает работать.. по радио каналу продолжает общатся с другой мегой2560...

изернет шильд продолжает радостно мигать лампочками...

по комп порту отзывается только выдачей своего ИП

в баузер вообще ничего не хочет выдавать...

на родном форуме пишут что это симптомы когда клиент отключился раньше чем закончилась передача... и соотвествено все ушло в цикл...

советуют такой код

// connectLoop controls the hardware fail timeout
  int connectLoop = 0;

  while(client.connected())
  {
    while(client.available())
    {
      inChar = client.read();
      Serial.write(inChar);
      // set connectLoop to zero if a packet arrives
      connectLoop = 0;
    }

    connectLoop++;

    // if more than 10000 milliseconds since the last packet
    if(connectLoop > 10000)
    {
      // then close the connection from this end.
      Serial.println();
      Serial.println(F("Timeout"));
      client.stop();
    }
    // this is a delay for the connectLoop timing
    delay(1);
  }

  Serial.println();
  Serial.println(F("disconnecting."));
  // close client end
  client.stop();

 

axill
Offline
Зарегистрирован: 05.09.2011

Samodelkin пишет:

Использую мегу 2560

внешний ресет тоже вариант, но можно настроить на самой меге watchdog, так что если мега зависнет то сама себя перезапустит

скорее всего нужно будет поменять загрузчик, на форуме писали, что optiboot нормально работает с watchdog

maksim
Offline
Зарегистрирован: 12.02.2012

На шилде есть перемычка D3 RST_W, видать не просто так сделана. Повесте соплю припоя на нее и сможете ресетить визнет. Дальше остается только выявить зависание.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Мда, 12 часов полет нормальный... все что требовалось это отключить шлюз наружу из домашней сети...  теперь работает стабильно, но доступ только внутри домашней сети.. :(

alexey_and
Offline
Зарегистрирован: 03.03.2013

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

maksim
Offline
Зарегистрирован: 12.02.2012

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

UPD оказывается уже писал выше....

alexey_and
Offline
Зарегистрирован: 03.03.2013

это понятно, но как детектить зависание на самой дуине? самого себя пинговать? 

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

maksim
Offline
Зарегистрирован: 12.02.2012

Можно когда нет клиентов некоторое время ресетить визнет.
Умеете сам визнет пинговать - пингуйте, нет ответа - ресетите.

alexey_and
Offline
Зарегистрирован: 03.03.2013

вот вроде как сделали ресет с помощью внешней схемы, без геморов с перешиванием бутлоадера: http://forum.arduino.cc/index.php/topic,94676.0.html

только не могу осилить куда подключать pulse. так то мне кажется - шикарный выход из ситуации

Oregon
Offline
Зарегистрирован: 19.10.2013

Puhlyaviy пишет:

Мда, 12 часов полет нормальный... все что требовалось это отключить шлюз наружу из домашней сети...  теперь работает стабильно, но доступ только внутри домашней сети.. :(

Заметил вот что - дома, сеть плоская, 3 компа - работает нормально. На работе несколько подсетей - зависает. Не в курсе, с чем это может быть связано?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Oregon пишет:

Заметил вот что - дома, сеть плоская, 3 компа - работает нормально. На работе несколько подсетей - зависает. Не в курсе, с чем это может быть связано?

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

alexey_and
Offline
Зарегистрирован: 03.03.2013

кто-нибудь пробовал Wiznet 5200? может там исправили этот глюк?

 http://www.dfrobot.com/index.php?route=product/product&product_id=1028#.UrHJH2QW1jg

alexey_and
Offline
Зарегистрирован: 03.03.2013

ВРОДЕ забороли этот глюк!

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

всем юзать этот код http://playground.arduino.cc/Code/WebServerST

9ser
Offline
Зарегистрирован: 18.11.2012

Использую w5100 в проекте.

У меня зависание сервера происходит в среднем после 7 дней работы

alexey_and
Offline
Зарегистрирован: 03.03.2013

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

art100
Offline
Зарегистрирован: 09.03.2014

dts пишет:

P.S. упс какая-то старая тема

зачем огород то такой с 220в наворотил

а 12 вольт 5 вольт почему не рвешь?

.

.

Andrey-S
Offline
Зарегистрирован: 02.01.2015

Что-то и я попал на эти грабли... Ситуация следующая: Мега 2560 + Эзернет шилд W5100 + 4х реле шилд (контакты с 22 по 25) + светодиоды (контакты с 26 по 29) + часы 1307 (конаты 20 и 21) + ЖСМ модем (контакты 14 и 15 они же Serial3) + Кнопка (контакт D5) + Фотодиод (контакт А14) + 3 датчика температура ds18b20 (контакт D2) + Датчик CO (контакт А15) + D13 контакт раз в 3 секунды меняет свое состояние (рядом стоит УНО и шлет СМС с текстом PING LOST если состояние 13 пина меги перестает меняться, свидетельствуя о зависании последней)... Питание пробовал аж в трех вариациях различных менять, но не помогло... Подключенные библиотек следующее:

#include <OneWire.h>
#include <SPI.h>
#include <Ethernet.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "RTClib.h"
#include <Metro.h>
#include <EEPROM.h>

Сегодня за 2 часа СМСка "PING LOST" пришла аж 3 раза... Месяц назад раз суток в 3е только приходила. Что я еще сделал: снял все провода с меги, кроме питания и переключил их на новенькую УНО, немного переписав скетч в плане пинов... Результат пока за 6 часов и то и другое работает без глюков (6 часов это не срок конечно для выводов)... В связи с этим возник вопрос: Может быть где-то происходит конфликт библиотек с пинами меги? Знаю только, что для работы W5100 необходим 10ый пин - он пустует специально, а в остальных нюансах я не силен ... Вот прошу совета в чем может быть трабл?