подключение люминесцентных ламп

artur739
Offline
Зарегистрирован: 07.05.2014

доброго времени суток. перевожу домашний свет на ардуино. подключил 3 реле и кнопки к ним для управления лампами накаливания. также имею сетевой инрефейс ENC28J60. идея работы всей системы такая: при нажатии на соответствующую кнопку или получении соответсвующего веб-запроса на сетевой интерфейс реле переключается: считывается текущее состояние реле и записывается противоположное, к примеру digitalWrite(22, !digitalRead(22) ). всё замечательно рабтало несколько дней, пока я не подключил 4е реле, которое управляет люминесцентными лампами. а проблема такого характера: появились самопроизвольные переключения остальных реле или самого 4го реле в момент "моргания" люминесцентных ламп при включении, также иногда перестаёт отвечать сетевой интерфейс (пока не сделаешь reset всего ардуино). в качестве эксперимента подключил к 4му реле вместо люминесцентных ламп обычные лампы накаливания - проблемы исчезли. пытался в скетче выставлять паузы при переключении реле - не помогло, самопроизвольные переключения происходили раньше, чем истекали паузы. подозреваю, что ардуино как-то реагирует на помехи в сети, которые выдают люминесцентные лампы в момент включения. я в электронике не силён, поэтому прошу рассказать как можно защититься от этих помех. ниже выкладываю принципиальную схему подключения реле и кнопок к ардуино. резисторы на схеме номиналом 10кОм.

artur739
Offline
Зарегистрирован: 07.05.2014

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

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

Поиском воспользоваться - не судьба?

artur739
Offline
Зарегистрирован: 07.05.2014

Andrey_Y_Ostanovsky пишет:

Поиском воспользоваться - не судьба?

воспользовался. ничего путного не нашёл.

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

artur739 пишет:

воспользовался. ничего путного не нашёл.

Необходимо развязать (диодами) питание на "моторы" и на контроллер, поставить конденсаторы, чтобы напряжение у Вас не проседало... Вобщем, как всегда, дело в качественном питании, вернее в отсутствии оного на контроллере.

В качестве диагностики - запитайте контроллер от отдельной батарейки. Если глюки уйдут - то это оно...

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

тот же wiznet ужасно боится наводок, требуется постоянная перезагрузка. люди жаловались. и тут и питание надо исправлять, опторазвязку, экранировка

artur739
Offline
Зарегистрирован: 07.05.2014

а если поставить паралельно светильникам конденсатор на 6 мкФ? это как-то спасёт ситуацию?

точнее я даже не знаю какой ёмкости конденсатор поставить. в одно статье прочитал что для светильников 18-36 ват используют конденсаторы на 3-5 мкФ. нашёл в магазине на 6 мкФ. как думаете, пойдёт такой вариант?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

паралельно? там вроде как переменка. или что вы имели в виду?

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

http://arduino.ru/forum/apparatnye-voprosy/vopros-po-rele-i-pitaniyu

Уже, вроде бы и про поиск сказал, и про питание...

artur739
Offline
Зарегистрирован: 07.05.2014

Andrey_Y_Ostanovsky пишет:

В качестве диагностики - запитайте контроллер от отдельной батарейки. Если глюки уйдут - то это оно...

пробовал запитать ардуину через USB от ноута на батареях (не включеного в розетку) - эфекту ноль.

попался под руку электролит на 4.7 мкФ, впаял его между GND и +5В - тоже ничего не дало.

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

artur739 пишет:

пробовал запитать ардуину через USB от ноута на батареях (не включеного в розетку) - эфекту ноль.

попался под руку электролит на 4.7 мкФ, впаял его между GND и +5В - тоже ничего не дало.

Тогда отключайте потребителей по очереди и проверяйте эффект. Например, отцепляем линии реле от ардуино и подаем на них сигнал вручную...

Кстати, откуда у Вас в сети 220V появляется GND? По-уму, система должна быть развязана на высоковольтную часть и низковольтную...

artur739
Offline
Зарегистрирован: 07.05.2014

Andrey_Y_Ostanovsky пишет:

Кстати, откуда у Вас в сети 220V появляется GND? По-уму, система должна быть развязана на высоковольтную часть и низковольтную...

если вы про мою схему, то я это я так упрощённо модуль с электромагнитным реле изобразил. т.е. конечноже там прямого соединения GND и 220в нет. подаётся 5 вольт на катушку и реле замыкается.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А еще опторазвязка не просто так там на модуле реле - может есть смысл запитать реле от отдельного источника питания, потому что в момент запуска ламп импульс 4...10 киловольт и я сомневаюсь что реле(катушка и контактная группа) обеспечивает изоляцию от него....

std
Offline
Зарегистрирован: 05.01.2012

NeiroN, так:

?

то что написано E0, E1 в дуине - не обращайте внимания, all - забыл закрасить (в оригинале это была какая-то микруха в протеусе).

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

На конденсаторах, понятное дело, решили сэкономить? Да и оптрон от ардуины без транзистора нормально зажигается - я тут где-то схемку постил.

std
Offline
Зарегистрирован: 05.01.2012

Эмм, азачем кондёры? в дуине есть входные; в блоках выходные. Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.

А про оптрон без транзистора не соглашусь, бо их обычно не один и не два. Каждый кушает 10 мА. и атмега не может отдать больше 40 мА.

artur739
Offline
Зарегистрирован: 07.05.2014

std пишет:

Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.

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

std
Offline
Зарегистрирован: 05.01.2012

0.1 мкФ (иначе обозначается 100n или 104)

Параллельно проводам питания микросхемы, допустим у корпуса dip14 это выводы 7 (минус) и 14 (плюс). (но вообще зависит от микросхемы, т. к. например у той же atmega8/168/328 в DIP корпусе это несколько выводов в середине корпуса). И такой конденсатор ставится в непосредственной близости от самого корпуса. То есть не надо ставить на другом краю платы и тащить по ней длинные провода.

А вообще я спрашивал. Не знаю чего NeiroN по этой схеме скажет.

Гриша
Offline
Зарегистрирован: 27.04.2014

std пишет:

0.1 мкФ (иначе обозначается 100n или 104)

Параллельно проводам питания микросхемы, допустим у корпуса dip14 это выводы 7 (минус) и 14 (плюс). (но вообще зависит от микросхемы, т. к. например у той же atmega8/168/328 в DIP корпусе это несколько выводов в середине корпуса). И такой конденсатор ставится в непосредственной близости от самого корпуса. То есть не надо ставить на другом краю платы и тащить по ней длинные провода.

 

Не мешает добавить для новечка. Конденсаторы НЕ ЭЛЕКТРОЛИТИЧЕСКИЕ.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

и дополнительно они же  керамические))

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Arduino и управление - в один блок, плата с 8-мью реле - как можно дальше от блока с Arduino....

И от реле - управляйте тем, что только придумать мона.... 

Люминисцентные лампы дают сильные помехи и наводки...

Моя система:

- Arduino + радиопульт + Икпульт + 2 х 8блокРеле

- нагрузки управляемые = глубинный насос, лампы ( накаливания, светодиодные, люминесцентные ), ЭД постоянного тока и трёхфазный

Нет проблем !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

в посте #13 - много развязок... ни одна не поможет от ЭМПомех...

т.е. там лишние - R1, Q1, R3, 4N35, R2, Q2, D1, RELAY :)

Достаточно Arduino и http://www.ebay.com/itm/5V-Eight-8-Channel-Relay-Module-With-optocoupler-For-PIC-AVR-DSP-ARM-Arduino-/310574415181?pt=LH_DefaultDomain_0&hash=item484fad7d4d

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

А зачем Вы прижали "Сигнал_Вход" через резисторы к GND ?

Обычно притягивается к VCC... Внутрикаменными резисторами...

 

pinMode( "пинКнопки" , INPUT );     

digitalWrite( "пинКнопки" , HIGH );

 

"пинКнопки" будет подтянут к VCC через резистор 20 kOm, но кнопка вторым контактом должна сидеть на GND.

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

В Вашей схеме - pin прижатый к GND - является приёмником ЭМИзлучений....

Навести уровень логической единицы на любом входе - не проблема....

Пин, притянутый к VCC, перевести к уровню логНуля наводками - очень трудно ( Нагасаки и Хиросима - может быть :(   )

Поменяйте схемотехнику.... 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Вход Arduino + резистор_на_GND + провод_до кнопки_разомкнутой.... Вот - провод_до кнопки_разомкнутой - ЭТО ЕСТЬ АНТЕННА для ЭМИзлучений от дросселя ЭЛЛамп :(

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

- пульт RF на 4 кнопки

- приёмник

- Arduino

- блок-реле на 8 каналов

- программное расширение на 16 каналов

Нормальненько всё работает...

// Nano , 8 Canal
// RF >>>   7    6    5    4    3    2    1
//          DA   D2   D0   D3   D1   VCC  GND
// Arduino  2    5    3    6    4    VCC  GND
#define Pause 1000
int n;
#define CanalInterruptPin 2
byte Canal[ ] = { 7, 8, 9, 10, 11, 12, 13, A0 };
byte CanalState[ ] = { 1, 1, 1, 1, 1, 1, 1, 1 };
volatile byte CodeBtnRF;
volatile byte CodeBtnRFCount;
int CodeBtn;
byte CodeBtnTemp1;
byte CodeBtnTemp2;
unsigned long Time;
int TimeStrobe = 2000;
//*********************************************************************
void setup()
{
//  Serial.begin(9600); 
 for ( n = 0; n < 8; n++ )
   {
     pinMode( Canal[ n ], OUTPUT );      
   }
  CodeBtnRFCount = 0;
  CodeBtnRF = 0;
  CodeBtnTemp1;
  CodeBtnTemp2;
  CodeBtn = 0;
  attachInterrupt( 0, ButtonPush, RISING );
}
//*********************************************************************
void ButtonPush()
{
  CodeBtnRF = PIND>>3;
  CodeBtnRF = CodeBtnRF & B00001111;
  CodeBtnRFCount++;
}
//*********************************************************************
void Otladka()
{
  Serial.println( CodeBtnRFCount, HEX ); 
  Serial.println( CodeBtnRF, HEX ); 
  Serial.println( CodeBtnTemp1, HEX );      
  Serial.println( CodeBtnTemp2, HEX );    
  Serial.println( CodeBtn, DEC );
  Serial.println( " " );  
  delay( Pause );
}
//*********************************************************************
void loop()
{
  digitalWrite( Canal[ 0 ], HIGH );
  delay( 300 );
  digitalWrite( Canal[ 0 ], LOW );
  delay( 300 );
  
  digitalWrite( Canal[ 1 ], HIGH );
  delay( 300 );
  digitalWrite( Canal[ 1 ], LOW );
  delay( 300 );
  
  digitalWrite( Canal[ 0 ], HIGH );
  delay( 100 );
  digitalWrite( Canal[ 0 ], LOW );
  delay( 100 );
  
  digitalWrite( Canal[ 1 ], HIGH );
  delay( 100 );
  digitalWrite( Canal[ 1 ], LOW );
  delay( 100 );
  
  delay( 3000 );
  
  if ( CodeBtnRFCount == 1 )
    {
      Time = millis();
      CodeBtnTemp1 = CodeBtnRF;
      CodeBtnRFCount++;
    }
  if ( CodeBtnRFCount == 2 )
    {
      if ( ( millis() - Time ) > TimeStrobe )
        {
          CodeBtnRFCount = 0;
        }
    }
  if ( CodeBtnRFCount == 3 )
    {
      CodeBtnTemp2 = CodeBtnRF;
      CodeBtn = ( CodeBtnTemp1<<4 ) | CodeBtnTemp2;
      CodeBtnRFCount = 0;
    }

//Otladka();

// канал 1
  if ( CodeBtn == 17 )
    {
      CanalState[ 0 ] = !CanalState[ 0 ];
      digitalWrite( Canal[ 0 ], CanalState[ 0 ] );
      CodeBtn = 0;
    }
// канал 2
  if ( CodeBtn == 18 )
    {
      CanalState[ 1 ] = !CanalState[ 1 ];
      digitalWrite( Canal[ 1 ], CanalState[ 1 ] );
      CodeBtn = 0;
    }
// канал 3
  if ( CodeBtn == 20 )
    {
      CanalState[ 2 ] = !CanalState[ 2 ];
      digitalWrite( Canal[ 2 ], CanalState[ 2 ] );
      CodeBtn = 0;
    }
// канал 4
  if ( CodeBtn == 24 )
    {
      CanalState[ 3 ] = !CanalState[ 3 ];
      digitalWrite( Canal[ 3 ], CanalState[ 3 ] );
      CodeBtn = 0;
    }
// канал 5
  if ( CodeBtn == 33 )
    {
      CanalState[ 4 ] = !CanalState[ 4 ];
      digitalWrite( Canal[ 4 ], CanalState[ 4 ] );
      CodeBtn = 0;
    }
// канал 6
  if ( CodeBtn == 34 )
    {
      CanalState[ 5 ] = !CanalState[ 5 ];
      digitalWrite( Canal[ 5 ], CanalState[ 5 ] );
      CodeBtn = 0;
    }
// канал 7
  if ( CodeBtn == 36 )
    {
      CanalState[ 6 ] = !CanalState[ 6 ];
      digitalWrite( Canal[ 6 ], CanalState[ 6 ] );
      CodeBtn = 0;
    }
// канал 8
  if ( CodeBtn == 40 )
    {
      CanalState[ 7 ] = !CanalState[ 7 ];
      digitalWrite( Canal[ 7 ], CanalState[ 7 ] );
      CodeBtn = 0;
    }
// канал AllOff
//  if ( CodeBtn == 136 )
//    {
//      PORTC = PORTC | B11111111;
//      for ( n = 0; n < 8; n++ )
//        {
//          CanalState[ n ] = 1;
//        }
//      CodeBtn = 0;
//    }
}
//*********************************************************************

 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Извините, пожста, кажися это промежуточный код :(

Но всё ясно же ? 

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

artur739 пишет:

а если поставить паралельно светильникам конденсатор на 6 мкФ? это как-то спасёт ситуацию?

точнее я даже не знаю какой ёмкости конденсатор поставить. в одно статье прочитал что для светильников 18-36 ват используют конденсаторы на 3-5 мкФ. нашёл в магазине на 6 мкФ. как думаете, пойдёт такой вариант?

такие конденсаторы всего лишь увеличивают светоотдачу ЛДС !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

есть какая-то зависимость номинала С от W_лампы... не помню, сами поищите.....

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

jeka_tm пишет:

 

мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?

Спасибо !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

artur739 пишет:

std пишет:

Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.

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

- электролитический - чем больше номинал и чем ближе к ножке камня - тем лучшЕЕЕЕЕЕЕ

- керамические - тут нужен набор на все гармоники изменения напруги питания....

- чем ближе к камню - тем и лучшЕЕЕЕЕЕ...

- номиналЫ - паяйте все, какие есть - от 0.18 pF до 0.47 pF - сколько хватит места на плате...

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

набор:

- 47mkF x 10 V

- 22 pF

на каждую ногу питания микропроцессора - вполне достаточно !

НО силовые устройства нуно питать по другим цепям-линиям !

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

SU-27-16 пишет:

jeka_tm пишет:

 

мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?

Спасибо !

шкодит. чем еще))

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

NeiroN пишет:

А еще опторазвязка не просто так там на модуле реле - может есть смысл запитать реле от отдельного источника питания, потому что в момент запуска ламп импульс 4...10 киловольт и я сомневаюсь что реле(катушка и контактная группа) обеспечивает изоляцию от него....

кроме наведённой ЭДС - никакой обратной связи нет ! рабочие контакты реле - это полная развязка устройства управления и испУстройства ! ...если нормально подключить.... НЕТ ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

jeka_tm пишет:

SU-27-16 пишет:

jeka_tm пишет:

 

мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?

Спасибо !

шкодит. чем еще))

спасибо

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

jeka_tm пишет:

Ваше мнение про пост #23......24 ?

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

std пишет:

Эмм, азачем кондёры? в дуине есть входные; в блоках выходные. Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.

А про оптрон без транзистора не соглашусь, бо их обычно не один и не два. Каждый кушает 10 мА. и атмега не может отдать больше 40 мА.

по каждому выходу ! нет ?

std
Offline
Зарегистрирован: 05.01.2012

Совершенно верно, ведь на этой плате то же самое, что и в схеме из поста 13, ну только первого транзистора нет (который включет оптрон). Только если будете питать этот модуль от того же самого источника, что и ардуину - словите лулзов таких же как и у автора первого поста :)

Транзистор желателен только для 4N**. новые оптроны могут жрать меньше, и им хватит прямо с вывода МК.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

SU-27-16 пишет:

jeka_tm пишет:

Ваше мнение про пост #23......24 ?

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

а вот если провод провод где то в воздухе болтается, тогда все легко наводится

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