подключение люминесцентных ламп
- Войдите на сайт для отправки комментариев
доброго времени суток. перевожу домашний свет на ардуино. подключил 3 реле и кнопки к ним для управления лампами накаливания. также имею сетевой инрефейс ENC28J60. идея работы всей системы такая: при нажатии на соответствующую кнопку или получении соответсвующего веб-запроса на сетевой интерфейс реле переключается: считывается текущее состояние реле и записывается противоположное, к примеру digitalWrite(22, !digitalRead(22) ). всё замечательно рабтало несколько дней, пока я не подключил 4е реле, которое управляет люминесцентными лампами. а проблема такого характера: появились самопроизвольные переключения остальных реле или самого 4го реле в момент "моргания" люминесцентных ламп при включении, также иногда перестаёт отвечать сетевой интерфейс (пока не сделаешь reset всего ардуино). в качестве эксперимента подключил к 4му реле вместо люминесцентных ламп обычные лампы накаливания - проблемы исчезли. пытался в скетче выставлять паузы при переключении реле - не помогло, самопроизвольные переключения происходили раньше, чем истекали паузы. подозреваю, что ардуино как-то реагирует на помехи в сети, которые выдают люминесцентные лампы в момент включения. я в электронике не силён, поэтому прошу рассказать как можно защититься от этих помех. ниже выкладываю принципиальную схему подключения реле и кнопок к ардуино. резисторы на схеме номиналом 10кОм.
забыл дописать: синим прямоугольником на схеме изображено само ардуино. выводы "реле" и входы от кнопок "Сигнал" - цифровыве пины ардуино. соединение проводки от реле и выключателей реализовано при помощи клемных колодок, которые я изобразил на хеме соотвтетсвующими прямоугольниками.
Поиском воспользоваться - не судьба?
Поиском воспользоваться - не судьба?
воспользовался. ничего путного не нашёл.
воспользовался. ничего путного не нашёл.
Необходимо развязать (диодами) питание на "моторы" и на контроллер, поставить конденсаторы, чтобы напряжение у Вас не проседало... Вобщем, как всегда, дело в качественном питании, вернее в отсутствии оного на контроллере.
В качестве диагностики - запитайте контроллер от отдельной батарейки. Если глюки уйдут - то это оно...
тот же wiznet ужасно боится наводок, требуется постоянная перезагрузка. люди жаловались. и тут и питание надо исправлять, опторазвязку, экранировка
а если поставить паралельно светильникам конденсатор на 6 мкФ? это как-то спасёт ситуацию?
точнее я даже не знаю какой ёмкости конденсатор поставить. в одно статье прочитал что для светильников 18-36 ват используют конденсаторы на 3-5 мкФ. нашёл в магазине на 6 мкФ. как думаете, пойдёт такой вариант?
паралельно? там вроде как переменка. или что вы имели в виду?
http://arduino.ru/forum/apparatnye-voprosy/vopros-po-rele-i-pitaniyu
Уже, вроде бы и про поиск сказал, и про питание...
В качестве диагностики - запитайте контроллер от отдельной батарейки. Если глюки уйдут - то это оно...
пробовал запитать ардуину через USB от ноута на батареях (не включеного в розетку) - эфекту ноль.
попался под руку электролит на 4.7 мкФ, впаял его между GND и +5В - тоже ничего не дало.
пробовал запитать ардуину через USB от ноута на батареях (не включеного в розетку) - эфекту ноль.
попался под руку электролит на 4.7 мкФ, впаял его между GND и +5В - тоже ничего не дало.
Тогда отключайте потребителей по очереди и проверяйте эффект. Например, отцепляем линии реле от ардуино и подаем на них сигнал вручную...
Кстати, откуда у Вас в сети 220V появляется GND? По-уму, система должна быть развязана на высоковольтную часть и низковольтную...
Кстати, откуда у Вас в сети 220V появляется GND? По-уму, система должна быть развязана на высоковольтную часть и низковольтную...
если вы про мою схему, то я это я так упрощённо модуль с электромагнитным реле изобразил. т.е. конечноже там прямого соединения GND и 220в нет. подаётся 5 вольт на катушку и реле замыкается.
А еще опторазвязка не просто так там на модуле реле - может есть смысл запитать реле от отдельного источника питания, потому что в момент запуска ламп импульс 4...10 киловольт и я сомневаюсь что реле(катушка и контактная группа) обеспечивает изоляцию от него....
NeiroN, так:
?
то что написано E0, E1 в дуине - не обращайте внимания, all - забыл закрасить (в оригинале это была какая-то микруха в протеусе).
На конденсаторах, понятное дело, решили сэкономить? Да и оптрон от ардуины без транзистора нормально зажигается - я тут где-то схемку постил.
Эмм, азачем кондёры? в дуине есть входные; в блоках выходные. Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.
А про оптрон без транзистора не соглашусь, бо их обычно не один и не два. Каждый кушает 10 мА. и атмега не может отдать больше 40 мА.
Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.
не могли бы вы всёже уточнить какой ёмкости и в какие места поставить эти конденсаторы. извините, но я пока только учусь... (с)...
0.1 мкФ (иначе обозначается 100n или 104)
Параллельно проводам питания микросхемы, допустим у корпуса dip14 это выводы 7 (минус) и 14 (плюс). (но вообще зависит от микросхемы, т. к. например у той же atmega8/168/328 в DIP корпусе это несколько выводов в середине корпуса). И такой конденсатор ставится в непосредственной близости от самого корпуса. То есть не надо ставить на другом краю платы и тащить по ней длинные провода.
А вообще я спрашивал. Не знаю чего NeiroN по этой схеме скажет.
0.1 мкФ (иначе обозначается 100n или 104)
Параллельно проводам питания микросхемы, допустим у корпуса dip14 это выводы 7 (минус) и 14 (плюс). (но вообще зависит от микросхемы, т. к. например у той же atmega8/168/328 в DIP корпусе это несколько выводов в середине корпуса). И такой конденсатор ставится в непосредственной близости от самого корпуса. То есть не надо ставить на другом краю платы и тащить по ней длинные провода.
Не мешает добавить для новечка. Конденсаторы НЕ ЭЛЕКТРОЛИТИЧЕСКИЕ.
и дополнительно они же керамические))
Arduino и управление - в один блок, плата с 8-мью реле - как можно дальше от блока с Arduino....
И от реле - управляйте тем, что только придумать мона....
Люминисцентные лампы дают сильные помехи и наводки...
Моя система:
- Arduino + радиопульт + Икпульт + 2 х 8блокРеле
- нагрузки управляемые = глубинный насос, лампы ( накаливания, светодиодные, люминесцентные ), ЭД постоянного тока и трёхфазный
Нет проблем !
в посте #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
А зачем Вы прижали "Сигнал_Вход" через резисторы к GND ?
Обычно притягивается к VCC... Внутрикаменными резисторами...
pinMode( "пинКнопки" , INPUT );
digitalWrite( "пинКнопки" , HIGH );
"пинКнопки" будет подтянут к VCC через резистор 20 kOm, но кнопка вторым контактом должна сидеть на GND.
В Вашей схеме - pin прижатый к GND - является приёмником ЭМИзлучений....
Навести уровень логической единицы на любом входе - не проблема....
Пин, притянутый к VCC, перевести к уровню логНуля наводками - очень трудно ( Нагасаки и Хиросима - может быть :( )
Поменяйте схемотехнику....
Вход Arduino + резистор_на_GND + провод_до кнопки_разомкнутой.... Вот - провод_до кнопки_разомкнутой - ЭТО ЕСТЬ АНТЕННА для ЭМИзлучений от дросселя ЭЛЛамп :(
- пульт 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
006
int
n;
007
#define CanalInterruptPin 2
008
byte
Canal[ ] = { 7, 8, 9, 10, 11, 12, 13, A0 };
009
byte
CanalState[ ] = { 1, 1, 1, 1, 1, 1, 1, 1 };
010
volatile
byte
CodeBtnRF;
011
volatile
byte
CodeBtnRFCount;
012
int
CodeBtn;
013
byte
CodeBtnTemp1;
014
byte
CodeBtnTemp2;
015
unsigned
long
Time;
016
int
TimeStrobe = 2000;
017
//*********************************************************************
018
void
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
//*********************************************************************
033
void
ButtonPush()
034
{
035
CodeBtnRF = PIND>>3;
036
CodeBtnRF = CodeBtnRF & B00001111;
037
CodeBtnRFCount++;
038
}
039
//*********************************************************************
040
void
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
//*********************************************************************
051
void
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
//*********************************************************************
Извините, пожста, кажися это промежуточный код :(
Но всё ясно же ?
а если поставить паралельно светильникам конденсатор на 6 мкФ? это как-то спасёт ситуацию?
точнее я даже не знаю какой ёмкости конденсатор поставить. в одно статье прочитал что для светильников 18-36 ват используют конденсаторы на 3-5 мкФ. нашёл в магазине на 6 мкФ. как думаете, пойдёт такой вариант?
такие конденсаторы всего лишь увеличивают светоотдачу ЛДС !
есть какая-то зависимость номинала С от W_лампы... не помню, сами поищите.....
мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?
Спасибо !
Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.
не могли бы вы всёже уточнить какой ёмкости и в какие места поставить эти конденсаторы. извините, но я пока только учусь... (с)...
- электролитический - чем больше номинал и чем ближе к ножке камня - тем лучшЕЕЕЕЕЕЕ
- керамические - тут нужен набор на все гармоники изменения напруги питания....
- чем ближе к камню - тем и лучшЕЕЕЕЕЕ...
- номиналЫ - паяйте все, какие есть - от 0.18 pF до 0.47 pF - сколько хватит места на плате...
набор:
- 47mkF x 10 V
- 22 pF
на каждую ногу питания микропроцессора - вполне достаточно !
НО силовые устройства нуно питать по другим цепям-линиям !
мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?
Спасибо !
шкодит. чем еще))
А еще опторазвязка не просто так там на модуле реле - может есть смысл запитать реле от отдельного источника питания, потому что в момент запуска ламп импульс 4...10 киловольт и я сомневаюсь что реле(катушка и контактная группа) обеспечивает изоляцию от него....
кроме наведённой ЭДС - никакой обратной связи нет ! рабочие контакты реле - это полная развязка устройства управления и испУстройства ! ...если нормально подключить.... НЕТ ?
мой кот Скумбр интересуется - чем занят Ваш Кот на Вашей аватарке ?
Спасибо !
шкодит. чем еще))
спасибо
Ваше мнение про пост #23......24 ?
Эмм, азачем кондёры? в дуине есть входные; в блоках выходные. Ну и наваять керамики на каждый корпус - это уже привычка доведённая до автоматизма. Схема чисто так, заценить.
А про оптрон без транзистора не соглашусь, бо их обычно не один и не два. Каждый кушает 10 мА. и атмега не может отдать больше 40 мА.
по каждому выходу ! нет ?
Совершенно верно, ведь на этой плате то же самое, что и в схеме из поста 13, ну только первого транзистора нет (который включет оптрон). Только если будете питать этот модуль от того же самого источника, что и ардуину - словите лулзов таких же как и у автора первого поста :)
Транзистор желателен только для 4N**. новые оптроны могут жрать меньше, и им хватит прямо с вывода МК.
Ваше мнение про пост #23......24 ?
я лично согласен. но с одной оговоркой. провод проводу рознь. смотря как проведено. сигнальный провод в экране земли очень хорошо защищен, даже витая пара уже неплохо
а вот если провод провод где то в воздухе болтается, тогда все легко наводится
у меня подобная задача, только сложнее. ардуина будет управлять пушкой гаусса, вот там наводки страшные. конденсатор емкостью 680мкф заряженный до 330В разряжается чуть больше миллисекунды на катушку. таких ступени 4. наводки возникают даже на дорожках платы, приходится всю плату экранировать, есть над чем подумать короче