Un Dimmer AC, también conocido como regulador o atenuador de intensidad, es un dispositivo de reducido tamaño cuya misión es la de regular el voltaje de entrada, 220 VAC en la mayoría de los casos, para obtener a su salida otros voltajes menores o como mucho iguales.
Este Dimmer AC puede funcionar sin necesidad de conectarle a un Arduino, gracias a que tiene integrado un microprocesador Atmel ATtiny85 configurable a través de programación ICSP, aunque en este POST, le vamos a controlar a través de pulsos PWM enviados desde el monitor serie del IDE de Arduino.
Gracias al MOC3023 (optoacoplador) del que dispone, se consigue separar la parte de control de la de potencia, para que no se queme ningún dispositivo debido a las corrientes transitorias que se puedan generar al manejar voltajes y corrientes elevados.
El encargado de manipular la señal de entrada para adecuarla a la salida que nos interesa va a ser el TRIAC BTA316, es decir, va a ser el encargado de disminuir el valor eficaz del voltaje en la bombilla recortando la señal en el momento de subida en el punto que queramos, por lo que si cortamos la señal cuando la onda llega a 60 V la bombilla se encenderá muy poco, mientras que si la cortamos al llegar a 200 V se encenderá casi al máximo.
Esto se consigue mandando pulsos PWM desde nuestro Arduino hacia el Dimmer AC, que hagan que el TRIAC conmute para que deje pasar o no la corriente y por lo tanto generar así una tensión AC regulada en su salida. Si aplicamos un pulso PWM al Dimmer AC, de un valor a partir de 15 (33VAC), la bombilla comenzará a brillar, hasta llegar al valor 90 (220VAC) con el que la bombilla tendrá el máximo brillo posible. Estos pulsos PWM se los vamos a enviar desde el monitor serie del IDE de Arduino.
Incluyendo Dimmers AC en las instalaciones eléctricas de nuestro hogar o negocio, mejoraremos la eficiencia energética del lugar, permitiendo un menor gasto en la factura eléctrica, aumentaremos la vida útil de las bombillas y cuidaremos de la vista de los usuarios adecuando la intensidad luminosa a la situación en la que nos encontremos (viendo la TV, leyendo, cocinando, trabajando con el PC…).
A través del monitor serie se va a ir mostrando el porcentaje de la señal de entrada que le estamos diciendo al Dimmer que deje pasar hacia la salida a través del TRIAC, como se puede observar en la siguiente imagen.
Lista de Materiales
- Arduino UNO Rev.3
- Cable USB tipo A-B
- Dimmer AC (50Hz/220V)
- Casquillo portalámparas de PVC
- Bombilla de 60W/220VAC
- Protoboard
- Cables de conexión
Código del programa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
/* TITULO: Control del brillo de una bombilla a través de un Dimmer AC AUTOR: MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia - TWITTER: https://twitter.com/MarianoCampoGa - CORREO: [email protected] DESCRIPCIÓN DEL PROGRAMA Con este programa regulamos el brillo de una bombilla de 60W/220VAC a través de un Dimmer AC, enviándole pulsos PWM, de un valor comprendido entre 15 y 90, desde el monitor serie del IDE de nuestro Arduino. ESQUEMA DE CONEXION +-----+ +----[PWR]-------------------| USB |--+ | +-----+ | | GND/RST2 [ ][ ] | | MOSI2/SCK2 [ ][ ] A5/SCL[ ] | | 5V/MISO2 [ ][ ] A4/SDA[ ] | | AREF[ ] | | GND[ ] | | [ ]N/C SCK/13[ ] | | [ ]IOREF MISO/12[ ] | | [ ]RST MOSI/11[ ]~| | [ ]3V3 +---+ 10[ ]~| | [ ]5v -| A |- 9[ ]~| Pin PWM del Dimmer AC | [ ]GND -| R |- 8[ ] | | [ ]GND -| D |- | | [ ]Vin -| U |- 7[ ] | | -| I |- 6[ ]~| | [ ]A0 -| N |- 5[ ]~| | [ ]A1 -| O |- 4[ ] | | [ ]A2 +---+ INT1/3[ ]~| | [ ]A3 INT0/2[ ] | | [ ]A4/SDA RST SCK MISO TX>1[ ] | | [ ]A5/SCL [ ] [ ] [ ] RX<0[ ] | | [ ] [ ] [ ] | | UNO_R3 GND MOSI 5V ____________/ \_______________________/ NOTAS: - Más conexiones del Dimmer AC. - Pin 5V --> +5V de Arduino - Pin GND --> GND de Arduino - Pin MODE --> +5V de Arduino (Para modo PWM del Dimmer AC) - Conector AC IN --> 220VAC - Conector AC LOAD --> Bombilla de 60W/220VAC */ // Variables del programa const int Pin_PWM = 9; // Pin digital para el pin PWM del Dimmer String entrada_PWM = ""; // Cadena para guardar el valor numérico que introducimos en el monitor serie char caracterEntrada; // Variable para almacenar un carácter leído del monitor serie boolean entradaCompleta = false; // Variable que comprueba el estado de la entrada por el monitor serie int salida_PWM = 0; // Variable que almacena el valor del PWM que aplicamos en el Dimmer void setup() { Serial.begin(9600); // Comienzo de la comunicación serie } void loop() { // Mandamos el valor del PWM al Dimmer analogWrite(Pin_PWM, salida_PWM); // Si tenemos una entrada completa (valor entre 15 y 90) if (entradaCompleta) { Serial.print("Dimmer activado al "); Serial.print(entrada_PWM); Serial.println("%"); salida_PWM = entrada_PWM.toInt(); // La salida nunca puede valer 0 if (salida_PWM == 0) { salida_PWM = 1; } // Vaciamos la cadena de entrada entrada_PWM = ""; // Cambiamos el estado de la entrada entradaCompleta = false; } } // Función que se ejecuta cada vez que se envían datos a través del monitor serie. void serialEvent() { while (Serial.available()) { // Se lee el carácter de entrada del monitor serie caracterEntrada = (char)Serial.read(); // Se añade el carácter a la cadena de entrada if (caracterEntrada != '\n') { entrada_PWM += caracterEntrada; } // La cadena se recibe cuando pulsamos "enter" desde el monitor serie if (caracterEntrada == '\n') { entradaCompleta = true; } } } |