Про твердотельное реле для переменного тока
Твердотельное реле - электронное устройство, являющееся типом реле без механических движущихся частей, служащее для включения и выключения цепи с помощью низких напряжений, подаваемых на клеммы управления.
Основными элементами твердотельного реле для переменного тока являются симистор и драйвер.
Вырезка из документации на драйвер MOC3x6x-M
http://smart-chip.ru/upravlenie-nagruzk ... -bez-rele/
Симистор (TRIAC) выполняет роль ключа. В закрытом состоянии проводимость симистора отсутствует, нагрузка выключена.
Для отпирания симистора на его управляющий электрод подаётся напряжение. При этом между основными электродами симистора возникает проводимость, нагрузка оказывается включённой.
Особенностью симистора является то, что для его удержания в открытом состоянии нет необходимости постоянно подавать сигнал на управляющий электрод. Симистор остаётся открытым, пока протекающий через основные выводы ток превышает некоторую величину. Отсюда следует, что выключение нагрузки в цепи переменного тока происходит вблизи моментов времени, когда ток через основные электроды симистора меняет направление.
https://ru.wikipedia.org/wiki/Симистор
Для управления симистором применяется драйвер (PHOTOTRIAC DRIVER OPTOCOUPLER). В зависимости от типа драйвера, сигнал для открытия симистора может подаваться в произвольные моменты времени (левая осциллограмма ниже) или только в моменты смены полярности напряжения в сети (правая осциллограмма ниже). Соответственно и в зависимости от применяемого драйвера, твердотельное реле будет открываться в произвольные моменты времени (твердотельное реле Random-Phase) или при переходе напряжения через ноль (твердотельное реле Zero-Cross).
https://www.youtube.com/watch?v=kRrBL9sri10
Твердотельное реле Zero-Cross является предпочтительным, так как при его работе отсутствуют скоротечные нарастания тока, приводящие к возникновению помех в электрической сети.
Основными элементами твердотельного реле для переменного тока являются симистор и драйвер.
Вырезка из документации на драйвер MOC3x6x-M
http://smart-chip.ru/upravlenie-nagruzk ... -bez-rele/
Симистор (TRIAC) выполняет роль ключа. В закрытом состоянии проводимость симистора отсутствует, нагрузка выключена.
Для отпирания симистора на его управляющий электрод подаётся напряжение. При этом между основными электродами симистора возникает проводимость, нагрузка оказывается включённой.
Особенностью симистора является то, что для его удержания в открытом состоянии нет необходимости постоянно подавать сигнал на управляющий электрод. Симистор остаётся открытым, пока протекающий через основные выводы ток превышает некоторую величину. Отсюда следует, что выключение нагрузки в цепи переменного тока происходит вблизи моментов времени, когда ток через основные электроды симистора меняет направление.
https://ru.wikipedia.org/wiki/Симистор
Для управления симистором применяется драйвер (PHOTOTRIAC DRIVER OPTOCOUPLER). В зависимости от типа драйвера, сигнал для открытия симистора может подаваться в произвольные моменты времени (левая осциллограмма ниже) или только в моменты смены полярности напряжения в сети (правая осциллограмма ниже). Соответственно и в зависимости от применяемого драйвера, твердотельное реле будет открываться в произвольные моменты времени (твердотельное реле Random-Phase) или при переходе напряжения через ноль (твердотельное реле Zero-Cross).
https://www.youtube.com/watch?v=kRrBL9sri10
Твердотельное реле Zero-Cross является предпочтительным, так как при его работе отсутствуют скоротечные нарастания тока, приводящие к возникновению помех в электрической сети.
Регулировка мощности при помощи твердотельного реле
Твердотельное реле может позволить плавно регулировать мощность нагрузки, если в её роли выступает нагревательный элемент, например грелка.
В случае с твердотельным реле Random-Phase необходимо подавать импульсы управления с задержкой относительно моментов перехода напряжения через 0. Чем больше задержка, тем меньшая часть полупериода напряжения будет пропущена, и тем меньше получится мощность на выходе.
В случае с твердотельным реле Zero-Cross придётся пропускать полупериоды напряжения целиком, но уменьшая количество этих полупериодов в единицу времени будет получена разная мощность на выходе. Например, при частоте питающего напряжения 50 Гц будет 100 полупериодов за одну секунду. Если за секунду пропустить только 30 из них, мы получим 30% мощности.
В обоих случаях для корректной регулировки мощности необходимо синхронизировать сигнал управления и моменты перехода питающего напряжения через ноль.
Без синхронизации твердотельное реле Random-Phase будет иметь на выходе плавающую мощность от 0 до максимального значения. Этот негативный эффект уменьшается при понижении частоты ШИМ сигнала управления.
Твердотельное реле Zero-Cross будет иметь три состояния: закрыто, открыто и открыто для полупериода (т.е. с половиной мощности), причем это будет хаотично. Твердотельное реле пропустит только те полупериоды синусоидального напряжения питания, начало которых совпадёт с импульсами сигнала ШИМ от платы управления.
Например, при частоте питающего напряжения равной частоте ШИМ сигнала управления, т.е. 50 Гц, и коэффициентом заполнения сигнала управления отличным от 1, можно говорить лишь о вероятности одного из трех состояний твердотельного реле.
Ситуация имеет особенно негативный характер при низких значениях коэффициент заполнения сигнала управления. И наоборот, негативный эффект практически сходит на нет при коэффициенте заполнения близкой к единице, к чему и надо стремиться. Для этого необходимо использовать нагреватель с мощностью немного больше той, которая потребуется для поддержания рабочей температуры.
Если же мощность Вашего нагревателя превышает необходимую в несколько раз, Вам может помочь решение описанное далее.
В случае с твердотельным реле Random-Phase необходимо подавать импульсы управления с задержкой относительно моментов перехода напряжения через 0. Чем больше задержка, тем меньшая часть полупериода напряжения будет пропущена, и тем меньше получится мощность на выходе.
В случае с твердотельным реле Zero-Cross придётся пропускать полупериоды напряжения целиком, но уменьшая количество этих полупериодов в единицу времени будет получена разная мощность на выходе. Например, при частоте питающего напряжения 50 Гц будет 100 полупериодов за одну секунду. Если за секунду пропустить только 30 из них, мы получим 30% мощности.
В обоих случаях для корректной регулировки мощности необходимо синхронизировать сигнал управления и моменты перехода питающего напряжения через ноль.
Без синхронизации твердотельное реле Random-Phase будет иметь на выходе плавающую мощность от 0 до максимального значения. Этот негативный эффект уменьшается при понижении частоты ШИМ сигнала управления.
Твердотельное реле Zero-Cross будет иметь три состояния: закрыто, открыто и открыто для полупериода (т.е. с половиной мощности), причем это будет хаотично. Твердотельное реле пропустит только те полупериоды синусоидального напряжения питания, начало которых совпадёт с импульсами сигнала ШИМ от платы управления.
Например, при частоте питающего напряжения равной частоте ШИМ сигнала управления, т.е. 50 Гц, и коэффициентом заполнения сигнала управления отличным от 1, можно говорить лишь о вероятности одного из трех состояний твердотельного реле.
- Коэффициент заполнения = 1 - полная мощность
- Коэффициент заполнения ≥ 0.5 - половина или полная мощность
- Коэффициент заполнения < 0.5 - 0 или половина мощности
Ситуация имеет особенно негативный характер при низких значениях коэффициент заполнения сигнала управления. И наоборот, негативный эффект практически сходит на нет при коэффициенте заполнения близкой к единице, к чему и надо стремиться. Для этого необходимо использовать нагреватель с мощностью немного больше той, которая потребуется для поддержания рабочей температуры.
Если же мощность Вашего нагревателя превышает необходимую в несколько раз, Вам может помочь решение описанное далее.
- Arduino Nano.
- Плата опторазвязки обеспечивает изоляцию платы управления и Arduino.
- Димер осуществляет питание грелки и выдает сигнал перехода напряжения питания через ноль.
Платы (экспериментальный вариант)
Указанные комплектующие использовались только на первоначальным этапе.
Далее в теме присутствует более оптимальный вариант.
Arduino: https://aliexpress.ru/item/32241691182.html
Димер с определением перехода через 0: https://aliexpress.ru/item/32802025086.html
https://robotdyn.com/ac-light-dimmer-mo ... -110v.html
Плата опторазвязки: https://aliexpress.ru/item/32798185851.html
Далее в теме присутствует более оптимальный вариант.
Arduino: https://aliexpress.ru/item/32241691182.html
Димер с определением перехода через 0: https://aliexpress.ru/item/32802025086.html
https://robotdyn.com/ac-light-dimmer-mo ... -110v.html
Плата опторазвязки: https://aliexpress.ru/item/32798185851.html
Сигнал ШИМ с платы управления (в моём случае Lerdge-K) поступает через плату опторазвязки на вход Arduino, которая вычисляет длительность импульсов включения.
Димер подаёт на Arduino сигналы перехода синусоиды напряжения через 0. От этих временных меток определяется момент подачи сигнала для открытия симистора. Таким образом достигается синхронизация сигнала ШИМ от платы управления с синусоидальным напряжением питания.
Sketch - Версия 1 (экспериментальный вариант)
!!! Только для ознакомления. Не используйте этот вариант в реальном устройстве.
Последний актуальный рабочий вариант можно найти здесь: https://github.com/demonlibra/smart_ssr
Последний актуальный рабочий вариант можно найти здесь: https://github.com/demonlibra/smart_ssr
Код: Выделить всё
const byte pwm_in = 6; // Вход для сигнала ШИМ от Lerdge
const byte ZC_in = 3; // Вход контроля перехода синусоиды через ноль
const byte dimmer_out = 5; // Выход управления димером
int duty = 0;
uint32_t timeStart = micros();
uint32_t timeEnd = micros();
uint32_t timer1 = millis();
uint32_t start = micros();
byte stateInNow = 1;
byte stateInBefore = 1;
void setup() {
pinMode(pwm_in, INPUT_PULLUP);
pinMode(ZC_in, INPUT_PULLUP);
pinMode(dimmer_out, OUTPUT);
}
void loop() {
stateInNow = digitalRead(pwm_in);
if (!stateInNow && stateInBefore) {
timeStart = micros();
}
if (stateInNow && !stateInBefore) {
timeEnd = micros();
duty = timeEnd - timeStart;
}
if (!stateInNow && (micros() - timeStart > 20000)) {
duty = 20000;
}
if (stateInNow && (micros() - timeStart > 20000)) {
duty = 0;
}
if (duty < 0 ) {
duty = 0;
}
stateInBefore = stateInNow;
if (digitalRead(ZC_in)) {
digitalWrite(dimmer_out, LOW);
start = micros();
} else {
if ((micros() - start) > (10000 - duty/2)) {
digitalWrite(dimmer_out, HIGH);
}
}
}
желтые графики - напряжение после димера
синие графики - ШИМ с платы управления (после платы согласования)
Практической цели эксперимент не имеет. Просто было интересно это реализовать и повозиться с Arduino.