Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров57K
Привет всем! Эта статья про то, как собрать и применить диммеры для управления освещением. Схемы самые простые. Предназначены для сети 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 <EEPROM.h>
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(dimming<ac_dimm)
		ac_dimm--;
	if(ac_dimm>1)
	{
		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 фильтр.

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

Вдогонку еще схема
Симистор - бесконтактное реле


Теги:
Хабы:
Всего голосов 27: ↑22 и ↓5+17
Комментарии198

Публикации

Истории

Ближайшие события

2 – 18 декабря
Yandex DataLens Festival 2024
МоскваОнлайн
11 – 13 декабря
Международная конференция по AI/ML «AI Journey»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань