Hola a todos! Este artículo trata sobre cómo ensamblar y aplicar atenuadores para controlar la iluminación. Los esquemas son los más simples. Diseñado para una red de corriente alterna de 220 voltios, control - señal analógica de 0-5 voltios (arduino) o 0-3.3 voltios (esp8266).

1. Atenuador para una lámpara incandescente, en un transistor:
Esquema:

Composición:
Q1 - Transistor IGBT IRG4BC30UD (se requiere radiador)
D1 - diodo rectificador
D2 - puente de diodos
Z 10V - diodo zener de 10 voltios
4N25 - optoacoplador
R 100K y R 10K - resistencias
C 4.7 - condensador
Principio de funcionamiento: amplificación de una señal pwm con un transistor arduino.
Ejemplo de trabajo:
2. Atenuador en el triac, adecuado para lámparas incandescentes y LED regulables:
Esquema:

Composición:
BT 139 - Triac
MOC 3021 y 4N25 - Optoacopladores
R300, R10K, R50K - Resistencias
Principio de funcionamiento: INT0: la entrada al arduino (pin2) configurada para interrumpir, recibe una señal de que la fase pasa por cero (detector cero).
OUT - salida del arduino (pin3) desde el cual la señal de retardo llega al triac.
El parámetro de atenuación se establece a través del puerto serie (0-255 #)
Ejemplo: 99 #
Programa para 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 .
, , .