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

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 каналов

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

001// Nano , 8 Canal
002// RF >>>   7    6    5    4    3    2    1
003//          DA   D2   D0   D3   D1   VCC  GND
004// Arduino  2    5    3    6    4    VCC  GND
005#define Pause 1000
006int n;
007#define CanalInterruptPin 2
008byte Canal[ ] = { 7, 8, 9, 10, 11, 12, 13, A0 };
009byte CanalState[ ] = { 1, 1, 1, 1, 1, 1, 1, 1 };
010volatile byte CodeBtnRF;
011volatile byte CodeBtnRFCount;
012int CodeBtn;
013byte CodeBtnTemp1;
014byte CodeBtnTemp2;
015unsigned long Time;
016int TimeStrobe = 2000;
017//*********************************************************************
018void setup()
019{
020//  Serial.begin(9600);
021 for ( n = 0; n < 8; n++ )
022   {
023     pinMode( Canal[ n ], OUTPUT );     
024   }
025  CodeBtnRFCount = 0;
026  CodeBtnRF = 0;
027  CodeBtnTemp1;
028  CodeBtnTemp2;
029  CodeBtn = 0;
030  attachInterrupt( 0, ButtonPush, RISING );
031}
032//*********************************************************************
033void ButtonPush()
034{
035  CodeBtnRF = PIND>>3;
036  CodeBtnRF = CodeBtnRF & B00001111;
037  CodeBtnRFCount++;
038}
039//*********************************************************************
040void Otladka()
041{
042  Serial.println( CodeBtnRFCount, HEX );
043  Serial.println( CodeBtnRF, HEX );
044  Serial.println( CodeBtnTemp1, HEX );     
045  Serial.println( CodeBtnTemp2, HEX );   
046  Serial.println( CodeBtn, DEC );
047  Serial.println( " " ); 
048  delay( Pause );
049}
050//*********************************************************************
051void loop()
052{
053  digitalWrite( Canal[ 0 ], HIGH );
054  delay( 300 );
055  digitalWrite( Canal[ 0 ], LOW );
056  delay( 300 );
057   
058  digitalWrite( Canal[ 1 ], HIGH );
059  delay( 300 );
060  digitalWrite( Canal[ 1 ], LOW );
061  delay( 300 );
062   
063  digitalWrite( Canal[ 0 ], HIGH );
064  delay( 100 );
065  digitalWrite( Canal[ 0 ], LOW );
066  delay( 100 );
067   
068  digitalWrite( Canal[ 1 ], HIGH );
069  delay( 100 );
070  digitalWrite( Canal[ 1 ], LOW );
071  delay( 100 );
072   
073  delay( 3000 );
074   
075  if ( CodeBtnRFCount == 1 )
076    {
077      Time = millis();
078      CodeBtnTemp1 = CodeBtnRF;
079      CodeBtnRFCount++;
080    }
081  if ( CodeBtnRFCount == 2 )
082    {
083      if ( ( millis() - Time ) > TimeStrobe )
084        {
085          CodeBtnRFCount = 0;
086        }
087    }
088  if ( CodeBtnRFCount == 3 )
089    {
090      CodeBtnTemp2 = CodeBtnRF;
091      CodeBtn = ( CodeBtnTemp1<<4 ) | CodeBtnTemp2;
092      CodeBtnRFCount = 0;
093    }
094 
095//Otladka();
096 
097// канал 1
098  if ( CodeBtn == 17 )
099    {
100      CanalState[ 0 ] = !CanalState[ 0 ];
101      digitalWrite( Canal[ 0 ], CanalState[ 0 ] );
102      CodeBtn = 0;
103    }
104// канал 2
105  if ( CodeBtn == 18 )
106    {
107      CanalState[ 1 ] = !CanalState[ 1 ];
108      digitalWrite( Canal[ 1 ], CanalState[ 1 ] );
109      CodeBtn = 0;
110    }
111// канал 3
112  if ( CodeBtn == 20 )
113    {
114      CanalState[ 2 ] = !CanalState[ 2 ];
115      digitalWrite( Canal[ 2 ], CanalState[ 2 ] );
116      CodeBtn = 0;
117    }
118// канал 4
119  if ( CodeBtn == 24 )
120    {
121      CanalState[ 3 ] = !CanalState[ 3 ];
122      digitalWrite( Canal[ 3 ], CanalState[ 3 ] );
123      CodeBtn = 0;
124    }
125// канал 5
126  if ( CodeBtn == 33 )
127    {
128      CanalState[ 4 ] = !CanalState[ 4 ];
129      digitalWrite( Canal[ 4 ], CanalState[ 4 ] );
130      CodeBtn = 0;
131    }
132// канал 6
133  if ( CodeBtn == 34 )
134    {
135      CanalState[ 5 ] = !CanalState[ 5 ];
136      digitalWrite( Canal[ 5 ], CanalState[ 5 ] );
137      CodeBtn = 0;
138    }
139// канал 7
140  if ( CodeBtn == 36 )
141    {
142      CanalState[ 6 ] = !CanalState[ 6 ];
143      digitalWrite( Canal[ 6 ], CanalState[ 6 ] );
144      CodeBtn = 0;
145    }
146// канал 8
147  if ( CodeBtn == 40 )
148    {
149      CanalState[ 7 ] = !CanalState[ 7 ];
150      digitalWrite( Canal[ 7 ], CanalState[ 7 ] );
151      CodeBtn = 0;
152    }
153// канал AllOff
154//  if ( CodeBtn == 136 )
155//    {
156//      PORTC = PORTC | B11111111;
157//      for ( n = 0; n < 8; n++ )
158//        {
159//          CanalState[ n ] = 1;
160//        }
161//      CodeBtn = 0;
162//    }
163}
164//*********************************************************************

 

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. наводки возникают даже на дорожках платы, приходится всю плату экранировать, есть над чем подумать короче