En la domótica, es interesante poder manipular la corriente alterna para controlar diferentes aparatos eléctricos como lámparas o ventiladores. El variador de tensión CA es un módulo que permite variar la potencia de una corriente alterna. Tiene el mismo uso que un transistor en corriente continua. Permite variar la luminosidad de una lámpara alimentada con 220V o variar la velocidad de un ventilador, por ejemplo. Vamos a ver cómo gestionar el regulador de tensión de CA con un NodeMCU ESP32.
Material
- Ordenador
- NodeMCU ESP32
- Câble USB A Mâle/Micro B Mâle
- AC Light Dimmer
Principio de funcionamiento
El atenuador de luz de CA consta de un triac (equivalente a un transistor de CC) y un detector de paso por cero de fase para sincronizar la variación de tensión y la fase de la corriente de CA.
Esquema
Según el esquema de cableado, el módulo se conecta a la red a través de la regleta AC-IN y la bombilla se conecta a la regleta LOAD. En la parte electrónica, los pines se conectan de la siguiente manera:
- Vcc en el pin 5 o 3.3V del microcontrolador
- GND a tierra GND del microcontrolador
- Z-C an el pin 1 (GPIO possibles 0,1,2,4,5,7,12,13,14,15,16,17,18,19,21,22,23,25,26,27,32,33,34,35,36,39)
- PWM en el pin 2 (GPIO possibles 0,1,2,3,4,5,12,13,14,15,16,17,18,19,21,22,23,25,26,27,32,33 )
Si estás usando varios accionamientos, los pines Z-C se conectan todos al mismo pin del microcontrolador (en nuestro caso D1). La biblioteca RBDdimmer utiliza algunos pines en particular, dependiendo del microcontrolador utilizado. Consulta la documentación de la biblioteca para ver qué pines puedes utilizar.
Cuidado: Cuando se utiliza una NodeMCU, hay diferentes versiones de estas placas con diferentes pinouts y etiquetas que a veces pueden tener errores. Pregunte a su proveedor y compruebe la documentación de su placa.
Código
Antes de programar tu NodeMCU ESP32, asegúrate de que el gestor de placas está instalado en el IDE de Arduino. Para configurar el IDE, puedes seguir este tutorial.
Para utilizar el módulo AC Light Dimmer, utilizamos la biblioteca RBDdimmer.h. La biblioteca gestionará la sincronización entre la señal PWM, que establece la potencia, y la fase de la corriente alterna. Una vez importada la librería e inicializado el módulo, sólo tenemos que elegir el nivel de potencia entre 0 y 100%.
//Libraries #include <RBDdimmer.h>//https://github.com/RobotDynOfficial/RBDDimmer //Parameters const int zeroCrossPin = 1; const int acdPin = 2; int MIN_POWER = 0; int MAX_POWER = 80; int POWER_STEP = 2; //Variables int power = 0; //Objects dimmerLamp acd(acdPin,zeroCrossPin); void setup(){ //Init Serial USB Serial.begin(115200); Serial.println(F("ESP32 System")); acd.begin(NORMAL_MODE, ON); } void loop(){ testDimmer(); } void testDimmer(){/* function testDimmer */ ////Sweep light power to test dimmer for(power=MIN_POWER;power<=MAX_POWER;power+=POWER_STEP){ acd.setPower(power); // setPower(0-100%); Serial.print("lampValue -> "); Serial.print(acd.getPower()); Serial.println("%"); delay(100); } for(power=MAX_POWER;power>=MIN_POWER;power-=POWER_STEP){ acd.setPower(power); // setPower(0-100%); Serial.print("lampValue -> "); Serial.print(acd.getPower()); Serial.println("%"); delay(100); } }
Resultado
La luminosidad de la bombilla varía en función del valor de «potencia» enviado al módulo. Es bueno tener en cuenta que este módulo funciona con cargas regulables y funciona mejor con bombillas incandescentes. Yo uso una bombilla LED y la regulación funciona bien entre 6 y 40. Por debajo de 6, la lámpara se apaga, por encima de 6, no veo ningún cambio en la luminosidad y la bombilla se apaga por encima de 85.
Aplicaciones
- Crea una interfaz web o una aplicación Bluetooth para controlar los dispositivos eléctricos a distancia.