Возможно ли диммирование 220 с помощью ШИМ?

qwedhinet
Offline
Зарегистрирован: 15.08.2012

Всем доброго времени суток!

Кто нибудь знает, возможно ли ШИМом диммировать свет?

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

maksim
Offline
Зарегистрирован: 12.02.2012
qwedhinet
Offline
Зарегистрирован: 15.08.2012

Спасибо конечно, но ини на прерываниях, про ШИМ ни слова =(

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

qwedhinet пишет:

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

На симисторе ШИМ не получится, он при первом управляющем импульсе откроется и будет открытым весь полупериод. На полевом транзисторе (используя диодный мост) наверно можно сделать, только частоту ШИМа побольше сделать надо.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

qwedhinet пишет:

Спасибо конечно, но ини на прерываниях, про ШИМ ни слова =(

А что, если с прерыванием, то это уже и не шим? Частота 100 Гц (или 50), регулировка ширины импульса - получаем синхронизированный ШИМ с частотой сети. Лучше регулировать именно симистором - КПД намного выше, чем транзистором с обычным ШИМом.

maksim
Offline
Зарегистрирован: 12.02.2012

Evgen пишет:
На симисторе ШИМ не получится, он при первом управляющем импульсе откроется и будет открытым весь полупериод. 
Еще как получится. Симистор нужен без контроля перехода через ноль.
qwedhinet пишет:

Спасибо конечно, но ини на прерываниях, про ШИМ ни слова =(

Как вам уже написал AlexFisher это и есть ШИМ, через прерывания реализована синхронизация этого ШИМа. Без синхронизации свет будет мерцать.

Evgen
Evgen аватар
Offline
Зарегистрирован: 10.06.2011

maksim пишет:

[Еще как получится. Симистор нужен без контроля перехода через ноль.

Да не получится. Как я понял qwedhinet-у нужен ШИМ, чтоб без детектора нуля работало. А для этого частота шима должна быть как минимум десятки килогерц. На такой частоте симистор будет всегда открыт.

А если

maksim пишет:

через прерывания реализована синхронизация этого ШИМа

так это уже и не ШИМ, а фазовое управление получается. В нужное время подать импульс на открытие симистора, какой-же это ШИМ.

maksim
Offline
Зарегистрирован: 12.02.2012

Evgen пишет:

так это уже и не ШИМ, а фазовое управление получается. В нужное время подать импульс на открытие симистора, какой-же это ШИМ.

ШИМ будет на выводе дуины, понятно, что в итоге получится фазовое управление (см. ссылки выше).

 

Evgen пишет:

Да не получится. Как я понял qwedhinet-у нужен ШИМ, чтоб без детектора нуля работало. А для этого частота шима должна быть как минимум десятки килогерц. На такой частоте симистор будет всегда открыт.

Так не получится. Но и это тоже не ШИМ.

qwedhinet
Offline
Зарегистрирован: 15.08.2012

Спасибо господа!

Что то допонял с вашей помощью.

Получается, что  мы можем завести на один контакт прерывание сети, а на выходы поддерживающие шим повесить диммеры.

Осталось разобраться как это будет сочетаться с остальнами задачами МК.

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Давайте не будем уводить спор в теорию (шим - не шим), автор под "шим" подразумевает функцию analogWrite() - не больше, не меньше.

Я бы попробовал следующий путь:

1. Подобрать предделители таймера поближе к 100 Гц

2. Сделать детектор перехода через 0

3. От детектора по прерыванию сбрасывать счетчик таймера

В результате будет синхронизация шима. Далее - пользуемся штатной analogWrite() для задания фазы открывания симистора.

qwedhinet
Offline
Зарегистрирован: 15.08.2012

AlexFisher, все таки не понял как потом analogWrite() воспользоваться.

Расскажите поподробнее.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

У меня есть готовый скетч многоканального димера 220в

Если есть интерес могу выложить

qwedhinet
Offline
Зарегистрирован: 15.08.2012

carduino.ru, конечно, выкладывайте, очень интересно!

 

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

После выполнения вышеизложенных 3-х пунктов можно будет пользоваться analogWrite(), но она будет работать "наоборот" - минимальное значение будет соответствовать максимальному свечению (мощности), потому что чем меньше значение ШИМа, тем раньше, считая от начала полупериода, мы ведь в начале сбросили счетчик, включится симистор.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Схема

Код

#include "nanopins.h"
#include <TimerOne.h> 
volatile uint8_t tic, Dimmer1, Dimmer2, Dimmer3;

void setup()
{
D4_Out; //Настраиваем порт на выход Dimmer1
D5_Out; //Настраиваем порт на выход Dimmer2
D6_Out; //Настраиваем порт на выход Dimmer3
D4_Low; D5_Low; D6_Low; //установить на выходах низкий уровень сигнала
D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль

attachInterrupt(0, detect_up, FALLING); 

Timer1.initialize(40); 
Timer1.attachInterrupt(halfcycle); 
Timer1.stop();
}

void halfcycle() 
{
tic++; 
if(Dimmer1 < tic ) D4_High;
if(Dimmer2 < tic ) D5_High; 
if(Dimmer3 < tic ) D6_High; 
}

void detect_up() 
{
tic=0; 
Timer1.resume(); 
attachInterrupt(0, detect_down, RISING); 
}

void detect_down() 
{
Timer1.stop(); 
D4_Low; D5_Low; D6_Low; 
tic=0; 
attachInterrupt(0, detect_up, FALLING); 
}

void loop()
{
Dimmer1=200; //200=мин. 0=макс 255=выкл
Dimmer2=50; //200=мин. 0=макс 255=выкл
Dimmer3=90; //200=мин. 0=макс 255=выкл
}

Схему и код взял здесь

sail
Offline
Зарегистрирован: 26.12.2013

собрал контроллер отопления на ардуино, включает ИК обогреватели по температуре, схема:

в качестве семистора bt139 с радиатором 

http://easyelectronics.ru/upravlenie-moshhnoj-nagruzkoj-peremennogo-toka.html

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

так и не понял подойдет ли эта схема для постепенного увеличения, уменьшения нагрузки тэнов при помощи шим ардуино, нужно что то менять в ней?

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

Нужно делать детектор перехода через 0. И по нему управлять углом отпирания симисторов. И moc3041 не подойдет для развязки, т.к. у нее  встроенный детектор 0. Нужно брать обычный оптосимистор. И обычный ШИМ не пойдет.

А так как  у вас показано, можно только включть/выключать в обычном релейном режиме.

Посмотрите на форуме выкладывали схему+программу многоканального диммера.

carduino.ru
Offline
Зарегистрирован: 06.12.2011

Видео работы Arduino Dimmer , управление с ПК

Видео WiFi Dimmer, управляется с планшеты

В основе показаных на видео Dimmer, лежит схема и код выложенные выше

sail
Offline
Зарегистрирован: 26.12.2013

то есть если заменить moc3041 на moc3021 без контроля 0 в моей схеме и собрать детектор перехода через 0 для ардуины как в сжеме:

то все получится?

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

вон Carduino вам схему и программу показал(#14 пост) берите ее. Ну и эта схема тож пойдет, только на детальку больше(мост поставили). Да и RC цепочку надо на симистор.

 

sail
Offline
Зарегистрирован: 26.12.2013

прошу прощения ноу  меня не отображается схема с #14 поста, если не трудно можно ее заного разместить?

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

в самом конце поста ссылка на схему

sail
Offline
Зарегистрирован: 26.12.2013

и в правду, моя невнимательность после корпоратива,

Спасибо, буду собирать!