• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Прошу проверить схему 8-и канального реле через расширитель I2C

spalex

Member
в результате надо 5 пинов на вывод и 1 пин на ввод на пин ESP
Т.е. получается я от этого своего 5CH DIMMER к контроллеру потяну шлейф из 4-х контактов: SDA SCL ZC GND. ZC придет на ногу контроллера , на которой будет висеть прерывание для функции zcDetectISR()
Питание в модуль диммеров притяну отдельным кабелем от отдельного БП.
Контакты PWM[1..5] будут уже управляться через расширитель, внутри блока димеров.
Т.е. функция zcDetectISR() будет выглядеть как-то так:
Код:
void zcDetectISR() {
  if (zcState == 0) {
    zcState = 1;
    if (curBrightness1 < 255 && curBrightness1 > 0) {
      digitalWrite(pwmPin1, 0);
  
      int dimDelay1 = 30 * (255 - curBrightness) ;
      hw_timer_arm(dimDelay1);
    }
   if (curBrightness2 < 255 && curBrightness2 > 0) {
      digitalWrite(pwmPin2, 0);
 
      int dimDelay2 = 30 * (255 - curBrightness2) ;
      hw_timer_arm(dimDelay2);
    }
.....
  }
}
верно?

Со сдвиговыми регистрами поразбираюсь, пока эксперементировать не на чем, надо заказывать.
 

nikolz

Well-known member
Т.е. получается я от этого своего 5CH DIMMER к контроллеру потяну шлейф из 4-х контактов: SDA SCL ZC GND. ZC придет на ногу контроллера , на которой будет висеть прерывание для функции zcDetectISR()
Питание в модуль диммеров притяну отдельным кабелем от отдельного БП.
Контакты PWM[1..5] будут уже управляться через расширитель, внутри блока димеров.
Т.е. функция zcDetectISR() будет выглядеть как-то так:
Код:
void zcDetectISR() {
  if (zcState == 0) {
    zcState = 1;
    if (curBrightness1 < 255 && curBrightness1 > 0) {
      digitalWrite(pwmPin1, 0);
 
      int dimDelay1 = 30 * (255 - curBrightness) ;
      hw_timer_arm(dimDelay1);
    }
   if (curBrightness2 < 255 && curBrightness2 > 0) {
      digitalWrite(pwmPin2, 0);
 
      int dimDelay2 = 30 * (255 - curBrightness2) ;
      hw_timer_arm(dimDelay2);
    }
.....
  }
}
верно?

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

spalex

Member
про схему правильно, а относительно алгоритма внутри колбека сказать наскоком не берусь.
И так спасибо, сейчас собираю, получится, выложу код и схему.
Кстати, нашел тут описание , схему и код как раз для такого мультидиммера Multichannel Wireless Light Dimmer , попробую его разобрать.
 

nikolz

Well-known member
И так спасибо, сейчас собираю, получится, выложу код и схему.
Кстати, нашел тут описание , схему и код как раз для такого мультидиммера Multichannel Wireless Light Dimmer , попробую его разобрать.
про алгоритм диммера
алгоритм правильного диммера должен быть сложнее чем ток который обычно реализуют.
Надо реализовать режим плавного включения холодной лампы
если задача только включать и выключать без управления интенсивность свечения, то лучше включать и выключать в нуле
 

nikolz

Well-known member
у вас вроде бы модули на симисторе а в ссылке используются транзисторы
 

CodeNameHawk

Moderator
Команда форума
А чем реле лучше? Для десятка реле нужен приличный блок питания.
Симисторы не нравятся из за нагрева. Четыре реле потребляют около 0,8А (при питании от 5В), в принципе не мало.
У меня надпись moderator == антиспамер.
 

Bydenkin

Member
@CodeNameHawk
Вот бы автор рассекретил мощность линий освещения. У меня как раз на столе симисторы и оптроны с "0" включения. Похожую проблему решаю. И всевозможные расширители входов-выходов есть. Мог бы пригрузить и померить температуру симисторов с радиатором и без.
Но ... не судьба, видать.
 

spalex

Member
@CodeNameHawk
Вот бы автор рассекретил мощность линий освещения. У меня как раз на столе симисторы и оптроны с "0" включения. Похожую проблему решаю. И всевозможные расширители входов-выходов есть. Мог бы пригрузить и померить температуру симисторов с радиатором и без.
Но ... не судьба, видать.
У меня будут точечные светильники от 4-х до 10 штук на линию. Т.е. максимально , думаю, ватт 50 (5Wx10) на один канал.

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

nikolz

Well-known member
У меня будут точечные светильники от 4-х до 10 штук на линию. Т.е. максимально , думаю, ватт 50 (5Wx10) на один канал.


Да где бы его найти, этот правильный алгоритм. Сколько перерыл, все одно и то же.
самому написать
нужно, если лампа была выключена, то при включении изменять задержку импульса для симистора от максимальной 10 мс до 0 (задержки нужного освещения) за время нагрева лампы примерно 1-2 сек
-----------------------------------------
 

nikolz

Well-known member
что же касается нагрева симистора, то не сложно рассчитать
в даташит есть рассеиваемая мощность и падение в открытом состоянии.
Для 50-100 вт радиатор не требуется
 

nikolz

Well-known member
@nikolz
50 Ватт!!! Это примерно 0,25А. Для симистора ВТ138-600 это даже не холостой ход.
Вы откуда это взяли?
Читайте даташит
IGT Отпирающий ток управляющего электрода VD = 12 В; IT = 0.1 A; T2+ G+;
Tj = 25 °C; Рис. 7 2,5 10 мA
VD = 12 В; IT = 0.1 A; T2+ G-;
Tj = 25 °C; Рис. 7 4 10 мA
VD = 12 В; IT = 0.1 A; T2- G-;
Tj = 25 °C; Рис. 7 5 10 мA
VD = 12 В; IT = 0.1 A; T2- G+;
Tj = 25 °C; Рис. 7 11 25 мA
 

Bydenkin

Member
@nikolz
Я же образно!!!
А вопрос вот какой ...
Симистор выключить (закрыть) невозможно, пока он сам этого не захочет. Как же сделать плавность? Со спиралями (плитками, нагревателями) просто из-за инерционности процесса.
Через сколько то волн или секунд включать-выключать. А как со светом?
1 При включении с переходом через ноль и желаемом отключении по времени или напряжению волны ... не получится ... симистор не позволит выключить.
2 Выставить программно задержку включения по времени или напряжении, а выключится само переходом волны через ноль. Способ относительно простой ... вот только возможны образования помех в сети.
3 Для регулировки плавности использовать подходящий по параметрам полевик.
 

nikolz

Well-known member
@nikolz
Я же образно!!!
А вопрос вот какой ...
Симистор выключить (закрыть) невозможно, пока он сам этого не захочет. Как же сделать плавность? Со спиралями (плитками, нагревателями) просто из-за инерционности процесса.
Через сколько то волн или секунд включать-выключать. А как со светом?
1 При включении с переходом через ноль и желаемом отключении по времени или напряжению волны ... не получится ... симистор не позволит выключить.
2 Выставить программно задержку включения по времени или напряжении, а выключится само переходом волны через ноль. Способ относительно простой ... вот только возможны образования помех в сети.
3 Для регулировки плавности использовать подходящий по параметрам полевик.
почти все верно.
симистор выключается, когда ток становится меньше тока удержания
mosfet выключается напряжением управления
--------------------
Но речь шла о плавности включения ламп двигателей и т д
В этом случае не надо включать в переходе через ноль. Надо включать так чтобы длительность импульсов увеличивалась от 0 до максимума либо до требуемой длительности.
Это достигается изменением задержки открытия симистора в обратную сторону к пересечению нуля.
Т е в начале при переходе через ноль формируем задержку скажем на 9.9 мс Это приведет к открытию симистора на 0.1 мс
на следующем периоде задержка 9.8 импульс тока 0.2 мс ну и т д до 0.1 мс задержки
Т е от 9.9 до 0.1 за 2 секунды
ток в нагрузке будет возрастать от 10% до 90%
------------------
Вы об этом?
 

nikolz

Well-known member
если светодиодные, то никакой плавный старт там не нужен. И даже вреден.
у светодиодных светильников плавный старт нужен так как у них на входе мостик и емкость и при включении емкость коротит мостик и уля-ля
 

Bydenkin

Member
@nikolz
"МЫ" об этом. А как же с помехами быть? Если не в ноле включать.
А можно попросить на "вы" не обращаться. Не в бухгалтерии же. Мы же здесь как бы друзья по интересам. Какое выканье друзьям!? Извините если кого обижу. Выкать не буду.
 

Сергей_Ф

Moderator
Команда форума
у них на входе мостик и емкость и при включении емкость коротит мостик и уля-ля
Думаю, что термистор (типа 8s100l или 13s500l, подобрать по мощности) в цепи лампы 100% решит эту проблему, без усложнения программы. Либо использование нормальных ламп с гарантией на 3 года :)
 
Последнее редактирование:
Сверху Снизу