Dimmer buatan rumah untuk sistem otomasi rumah

Halo semuanya! Artikel ini membahas tentang cara merakit dan menerapkan dimmer untuk mengontrol pencahayaan. Skema adalah yang paling sederhana. Dirancang untuk listrik AC 220 volt, kontrol - sinyal analog 0-5 volt (arduino) atau 0-3,3 volt (esp8266).



1. Dimmer untuk lampu pijar, pada transistor:

Skema:



Komposisi:

Q1 - Transistor IGBT IRG4BC30UD (diperlukan radiator)
D1 - dioda penyearah
D2 - jembatan dioda
Z 10V - 10 volt dioda zener
4N25 - optocoupler
R 100K dan R 10K - resistor
C 4.7 - kapasitor

Prinsip operasi: amplifikasi sinyal PWM dengan transistor Arduino.

Contoh kerja:


2. Dimmer pada triac, cocok untuk lampu pijar dan LED dimmable:

Skema:



Komposisi:

BT 139 - Triac
MOC 3021 dan 4N25 - Optocouplers
R300, R10K, R50K - Resistor

Prinsip operasi: INT0 - input ke arduino (pin2) yang dikonfigurasi untuk menyela, ia menerima sinyal bahwa fase melewati nol (detektor nol).
OUT - output dari arduino (pin3) dari mana sinyal keterlambatan tiba di triac.

Parameter peredupan diatur melalui port serial (0-255 #)
Contoh: 99 #

Program untuk 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 .

, , .


-


Source: https://habr.com/ru/post/id410467/


All Articles