Selbstgemachte Dimmer für Hausautomationssysteme

Hallo an alle! In diesem Artikel erfahren Sie, wie Sie Dimmer zur Steuerung der Beleuchtung zusammenbauen und anwenden. Die Schemata sind die einfachsten. Entwickelt für 220-Volt-Wechselstromnetz, Steuerung - 0-5-Volt-Analogsignal (Arduino) oder 0-3,3 Volt (esp8266).



1. Dimmer für eine Glühlampe an einem Transistor:

Schema:



Zusammensetzung:

Q1 - IGBT-Transistor IRG4BC30UD (Kühler erforderlich)
D1 - Gleichrichterdiode
D2 - Diodenbrücke
Z 10V - 10 Volt Zenerdiode
4N25 - Optokoppler
R 100K und R 10K - Widerstände
C 4.7 - Kondensator

Funktionsprinzip: Verstärkung eines PWM-Signals mit einem Arduino-Transistor.

Arbeitsbeispiel:


2. Dimmer am Triac, geeignet für Glühlampen und LED-Dimmlampen:

Schema:



Zusammensetzung:

BT 139 - Triac
MOC 3021 und 4N25 - Optokoppler
R300, R10K, R50K - Widerstände

Funktionsprinzip: INT0 - Der Eingang zum Arduino (Pin2) ist so konfiguriert, dass er unterbricht. Er empfängt ein Signal, dass die Phase durch Null geht (Nulldetektor).
OUT - Ausgang vom Arduino (Pin3), von dem das Verzögerungssignal am Triac ankommt.

Der Dimmparameter wird über die serielle Schnittstelle eingestellt (0-255 #).
Beispiel: 99 #

Programm für 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/de410467/


All Articles