Самодельные диммеры для систем домашней автоматики

Привет всем! Эта статья про то, как собрать и применить диммеры для управления освещением. Схемы самые простые. Предназначены для сети 220 вольт переменного тока, управление — аналоговый сигнал 0-5 вольт (ардуино) или 0-3.3 вольта (esp8266).

Самодельные диммеры для систем домашней автоматики

1. Диммер для лампы накаливания, на транзисторе:

Схема:

Состав:
Q1 — IGBT транзистор IRG4BC30UD (необходим радиатор)
D1 — выпрямительный диод
D2 — диодный мост
Z 10V — диод зенера на 10 вольт
4N25 — оптопара
R 100K и R 10K — резисторы
C 4.7 — конденсатор

Принцип работы: усиление pwm сигнала с ардуино транзистором.

Пример работы:

2. Диммер на симисторе, подходит для ламп накала и светодиодных диммируемых ламп:

Схема:

Состав:
BT 139 — симистор
MOC 3021 и 4N25 — оптопары
R300, R10K, R50K — резисторы

Принцип работы: INT0 — вход на ардуино (pin2) настроенный на прерывание, на него приходит сигнал перехода фазы через ноль (детектор нуля).
OUT — выход с ардуины (pin3) с которого через задержку приходит сигнал на симистор.

Параметр диммирования задается через serial порт (0-255#)
Пример: 99#

Программа для arduino UNO

//#include  int dimming=100,ac_dimm; char incomB='0'; String openhab="";   void setup() { 	Serial.begin(9600); 	Serial.println("Setup..."); 	pinMode(3,OUTPUT);                        // Set AC Dimmer 	delay(1000); 	Serial.println("Start 0-255#"); 	attachInterrupt(0, start_dimming, RISING); //pin 2 	myPrint(); }  void loop() { 	myIncoming();  }  void myIncoming() { 	if(Serial.available()>0) 	{ 		incomB=Serial.read(); 		if(incomB=='n' || incomB=='#') 		{ 			if(openhab.toInt()>=0 && openhab.toInt()<256) 			{ 				dimming=openhab.toInt(); 			} 			openhab=""; 			myPrint(); 		} 		else 			openhab+=incomB; 	} }   void start_dimming() { 	if(dimming>ac_dimm) 		ac_dimm++; 	if(dimming1) 	{ 		delayMicroseconds(999); 		delayMicroseconds(31*(256-ac_dimm)); 		digitalWrite(3, HIGH); 		delayMicroseconds(20); 		digitalWrite(3, LOW); 		//Serial.println("test"); 	} }  void myPrint() { 	Serial.print("dimming = "); 	Serial.println(dimming); }  

Для более стабильной работы (например ложные сигналы прерывания) желательно добавить RC фильтр.

На этом все, спасибо за внимание, будте осторожны с электричеством.

 
Источник

Читайте также