Dim12.JPG Три канала регулятора яркости светодиодной ленты на 12 вольт. Транзисторы - любые подходящие, я ставил IRF3205.
Dim220.JPG трехканальный регулятор для ламп накаливания 220 вольт. симмисторы любые, я просто просил продавца на 25 ампер 600 вольт. Оптопары - MOC3022. можно любые, главное - чтобы включались в любой момент синусоиды.
Вот одна из процедур регулировки яркости, такая - же идет на каждый канал
При выборе сценария в LED_set пишется число от 0 до 100, и значение LED_out плавно на него выходит. Дальше просто умножаем LED_out на 10 и отправляем в МУ110-6У.(*Регулювання яскравості*)
LED_set;
LED_inc:=Dis3.8;
LED_dec:=Dis3.9;
LED_bright_count(CU:=((LED_inc OR (LED_bright_count.CV<LED_set AND NOT(LED_dec))) AND Synhro AND (LED_bright_count.CV<100)), RESET:=FALSE, LOAD:=FALSE);
LED_bright_count(CD:=((LED_dec OR (LED_bright_count.CV>LED_set AND NOT(LED_inc))) AND Synhro AND (LED_bright_count.CV>=0)));
IF LED_inc OR LED_dec THEN LED_set:=WORD_TO_BYTE(LED_bright_count.CV); END_IF;
LED_out:=LED_bright_count.CV;
LED_inc и LED_dec - булевые переменные, соответственно плавный набор и понижение яркости вручную.
Скоростью регулировки рулит переменная Synhro, которая делается вот здесь:
(*Генератор імпульсів*)
PauseTimer(IN := ((NOT(StartValue))OR(Pulse)), PT:= INT_TO_TIME(25));
IF PauseTimer.Q THEN StartValue:=TRUE; Pause:=TRUE; Pulse:=FALSE; END_IF;
PulseTimer(IN := Pause, PT:= INT_TO_TIME(25));
IF PulseTimer.Q THEN Pause:=FALSE; Pulse:=TRUE; END_IF;
Synhro:=Pulse;