Включение реле при переходе через ноль

craper
Offline
Зарегистрирован: 13.11.2018

Доброго времени суток! Подскажите уважаемые гуру, так как в программировании почти нуб. Как включить реле при переходе через ноль. С учетом времени срабатывания реле, к примеру пропустив период, или два. Куда идти читать? 

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

а ничо, что время срабатывания реле больше сетевого периода?   мошт, в сторону симистора смотреть? 

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

craper
Offline
Зарегистрирован: 13.11.2018

Нет,индуктивная нагрузка. Тиристоры и оптопары с нулем не хочу ставить. Есть гора неплохих реле, время срабатывания около 10 мс. Есть прибор для снятий характеристик реле,то есть время реально могу узнать. Это сетевой стабилизатор.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

craper пишет:

Нет,индуктивная нагрузка.

То есть снабберы и варисторы запрещены ?

mixail844
Offline
Зарегистрирован: 30.04.2012

какое значение вы вкладываете в "переход через" ноль ? 

1. 

2. 

что значит "пропустив период или два",в вашем понимании,два периода между "чем" и "чем" ? 

с какой погрешностью детектировать ? милли-секунды? микро ? 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

craper, 10мС слишком много. Есть более быстрые реле, мне до 1мС встречались . Компаратором ловить Falling, и на отметке ~10 вольт включать реле. Как раз к моменту пока пройдёт через ноль и снова станет расти контакт установится.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

"Помогите установить на скуттер двигатель от трактора Беларусь! От дедушки осталсчя."

Для быстрого переключения при переходе через ноль используются симисторы с соотв. драйвером ("моська" - от MOC306x и т.п.). Все. Точка. Остальное - глупость.

Применение реле должно быть технически обосновано (пример - работа в условиях ЭМИ, для военных). "Не понимаю симистор, реле - бесплатно полный шкаф" и пр. - НЕ ЯВЛЯЮТСЯ техническим обоснованием.

Цена симистора и моськи настолько низка, что экономность и стесненное финансовое положение - тоже не являются обоснованием.

Очень высокие токи, 50А и более, потребуют работ по теплоотводу, это тоже может быть техническим обоснованием применения реле, но спорным, тут смотреть надо.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Так ему, небось, надо по току через 0, а не по напряжению.

А так, по идее, должно быть: 6.28*tреле/Т. Если коммутируется ~220 (амплитуда 310), 50 Гц, то похоже на правду.

Но вообще, это все попахивает авантюрой.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А я повторю, не поленюсь

DetSimen пишет:

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

Так ему, небось, надо по току через 0, а не по напряжению.

Во, блин! Никогда об этом не думал. По току разумно делать, чтобы контакты реле не подгорали, да? Или там ещё тонкости есть?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Да много чего - те же импульсные помехи. Раз через индуктивность не течет ток, то и неприятных последствий - никаких. А если нагрузка индуктивная, фазы тока и напряжения не совпадают.

Logik
Offline
Зарегистрирован: 05.08.2014

Идея то правильная, только ж не на реле делать. Чтоб размыкать при нулевом токе его детектить нужно, и быренько отключать. Детектировать 0 напряжения ничем не поможет, фаза тока от нагрузки зависит, а значить меняется. И знание времени срабатывания реле вобще ничем не поможет. "Моськи" тут действительно в самый раз. Правдв я чет туго представляю сетевой стабилизатор который целыми периодами оперирует, разве что переключатся между обмотками тр-ра.

craper
Offline
Зарегистрирован: 13.11.2018

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

nik182
Offline
Зарегистрирован: 04.05.2015

Делал я такую вещь. Уже лет 10 работает. Всё как Дима сказал. Ждем переход через 0. Включаем реле на активную нагрузку. Смотрим осцилографом когда замыкаются контакты реле. Неплохо статистику набрать - раз 10 щелкнуть. Добавляем задержку между переходом через 0 и командой на пуск реле что бы в сумме получилась величина кратная 10мс. Проверяем, что контакты реле закорачиваются при переходе через 0. Для отключения делаем ту же процедуру, но к задержке добавляем ещё задержку между током и напряжением для рабочей нагрузки, чтобы размыкание было как можно ближе к переходу через 0 тока. 

Встречал схемы, где включение идёт симмистором точно в 0 и сразу параллельно замыкается реле. Получается и включили правильно и всякие снабберы не нужны.

a5021
Offline
Зарегистрирован: 07.07.2013

nik182 пишет:
Делал я такую вещь. Уже лет 10 работает. Всё как Дима сказал. Ждем переход через 0. Включаем реле на активную нагрузку.

Хорошо бы не упукать из ввиду уточнение ТСа насчет индуктивной нагрузки. Иначе ерунда получится.

craper
Offline
Зарегистрирован: 13.11.2018

Вот то,насколько хватило моих познаний в программировании. Параметры диапазона срабатывания пока от фонаря. Как здесь реализовать синхронизацию от сети? И годится ли это вообще?

#define vin A0

int sig = 0;

void setup() {
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);

}

void relay()
{

 sig = analogRead(vin)*5;

if(sig>=0 && sig<200) {digitalWrite(2,LOW);}else { digitalWrite(2,HIGH);}
if(sig>=200 && sig<400) {digitalWrite(3,LOW);}else { digitalWrite(3,HIGH);}
if(sig>=400 && sig<600) {digitalWrite(4,LOW);}else { digitalWrite(4,HIGH);}
if(sig>=600) {digitalWrite(5,LOW);}else { digitalWrite(5,HIGH);}


}

void loop() {
 relay();
}

 

axill
Offline
Зарегистрирован: 05.09.2011

А ничего, что время включения кокретного реле может меняться со временем и в зависимости от параметров сети и нагрузки?

точного попадания добиться не получится. Целксообразность такой постановки задачи для меня под большим вопросом

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

если цель избежать помех при включении то делайте на 3Q семисторе, они работают на индуктивную нагрузку без снубера. Для пущей важности поставить симетричный электромагнитный фильтр на входе

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

nik182 пишет:

Встречал схемы, где включение идёт симмистором точно в 0 и сразу параллельно замыкается реле. Получается и включили правильно и всякие снабберы не нужны.


Снабберы, как и демпферные диоды,
нужны при размыкании ключа, а не при замыкании.

craper
Offline
Зарегистрирован: 13.11.2018

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

axill
Offline
Зарегистрирован: 05.09.2011

trembo пишет:
nik182 пишет:

Встречал схемы, где включение идёт симмистором точно в 0 и сразу параллельно замыкается реле. Получается и включили правильно и всякие снабберы не нужны.

Снабберы, как и демпферные диоды, нужны при размыкании ключа, а не при замыкании.

вот вот) но 3Q симистору снубер не нужен от слова совсем и сейчас есть их. Можно купить и в местном магазиге и в китае. Хотя все еще редкость

у чипдипа так и ищутся - snubberless

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Дак он же пишет, не нужны ему симисторы. Пишет, что его нада послать. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

нужна ещё одна процедура детектора нуля, её и вызывать, после  delay(taux_rx);

А начать видимо надо так:
 

#define vin A0

// Параметры реле
// время срабатывания в мс
#define taus_r1 10
#define taus_r2 10
#define taus_r3 10
#define taus_r4 10
// время отпускания в мс
#define tauo_r1 10
#define tauo_r2 10
#define tauo_r3 10
#define tauo_r4 10


unsigned int sig = 0; // хранить в беззнаковой переменной

void setup() {
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);

// Сюда добавить первичное включение реле
}

Да, и так сильно занижать чувствительность детектора - плохая идея,  надо принять, что 1000 единицам ацп должно соответствовать напряжение 250 вольт

 

craper
Offline
Зарегистрирован: 13.11.2018

ua6em,огромное спасибо! Буду пробовать. Параметры пока от фонаря,рекомендуемые значения принял к сведению.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

craper пишет:

ua6em,огромное спасибо! Буду пробовать. Параметры пока от фонаря,рекомендуемые значения принял к сведению.

Почитайте эту тему еще,  как раз Ваш случай обсуждают
Да, и для напряжений от 170 до 250 вольт диапазон входных значений составит 680 - 1000

тогда в setup добавить

sig = analogRead(vin);

int flag_rele = 0;

if(sig>=680 && sig<780) { (сюда вставить детектор нуля и процедуру задержки включения реле 1) digitalWrite(2,LOW);flag_rele=1;}
if(sig>=781 && sig<860&&flag_rele = 0;) { (сюда вставить детектор нуля и процедуру задержки включения реле 2) digitalWrite(3,LOW);flag_rele=2}
if(sig>=861 && sig<920&&flag_rele = 0;) { (сюда вставить детектор нуля и процедуру задержки включения реле 3) digitalWrite(4,LOW);flag_rele=3}
if(sig>=921&&flag_rele = 0;) { (сюда вставить детектор нуля и процедуру задержки включения реле 4) digitalWrite(5,LOW);flag_rele=4}

// На выходе в переменной flag_rele номер включенного реле

 

craper
Offline
Зарегистрирован: 13.11.2018

Благодарю! Изучаю.)