Autor Tema: Dimmer programable con control remoto  (Leído 20580 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Dimmer programable con control remoto
« en: 12 de Abril de 2023, 13:40:37 »
Hola compañeros.
Ya llevaba tiempo sin acometer un proyecto nuevo que requiera diseño de hardware y de firmware desde cero, y me apetece ir echándole algunos ratitos a este que os voy a contar.

Se trata, como habéis visto en el título, de un Dimmer programable con control remoto que debe tener las siguientes características:
- debe regular cargas de hasta 2000W
- se alimenta a 220Vac y entrega la corriente regulada a su salida
- debe ser capaz de regular todo el rango entre 0W y 2000W con la máxima resolución posible
- se puede controlar la potencia de salida desde un móvil
- debe publicar sus servicios para poder integrarlo con Home Assistant

Teniendo en cuenta estos requerimientos creo que la plataforma más adecuada para llevarlo a cabo es un ESP8266/ESP32 ya que me proporciona conexión Wifi y suficiente capacidad de procesamiento. El primero (ESP8266) sólo tiene una entrada analógica, pero creo que será suficiente para este proyecto. Si necesitara alguna más tendría que optar por su hermano mayor ESP32.

Los distintos apartados que debo acometer en este proyecto son:
SALIDA
Para esta parte estoy considerando usar un Triac tipo BTA136 o compatible
Aguanta hasta 16A y 800V por lo que entiendo que será suficiente.
Si lo monto en encapsulado TO220 (seguramente será así porque es la opción más barata) tendré que pensar en qué tipo de disipador colocar.
https://eu.mouser.com/datasheet/2/848/bta316-800e-1520591.pdf

DETECCIÓN DEL CRUCE POR CERO
4 diodos conectados en modo rectificador de onda completa y un par de resistencias en serie, excitan el led de un optoacoplador, en cuya salida encontraré una señal cuadrada que ingreso directamente al micro.

MEDICIÓN DE CORRIENTE
Para medir la corriente una de las opciones que más me gusta es un chip SMD como este MCS1801GS-25-P, ya que no requiere colocar un toroide alrededor del cable.
Está basado en un sensor Hall de campo magnético que es capaz de entregar una salida en tensión de 0 a 3.3V proporcional a la corriente que lo atraviese, con un máximo de hasta 10.5A.
Me preocupa que indica que el aislamiento máximo es de 200Vrms y yo necesito alimentarlo con los 220Vac habituales. ¿Servirá o tengo que buscar otro?
https://eu.mouser.com/datasheet/2/277/MCS1801GS-2487854.pdf

PROTECCIÓN
Para proteger al usuario, además de seguir las recomendaciones de la datasheet del Triac y del medidor de corriente, incorporaré un fusible de 10A
https://eu.mouser.com/datasheet/2/643/ds_cp_5sf_5sfp_series-1313110.pdf

y tengo que buscar una caja que me permita alojarlo todo y dejarlo bien acomodado, y que no impida la refrigeración del Triac.

¿Tengo que tener en cuenta algún otro punto?

ALIMENTACIÓN
El circuito se alimentará directamente desde la red, a 220Vac, por lo que necesitaré extraer de ahí los 3.3V que utiliza el microcontrolador. Me gustaría hacerlo con un pequeño circuito de conversión AC/DC como los que traen los cargadores de móvil, ya que no necesito más que unos pocos mA a la salida. Exploraré opciones pero si alguien tiene por ahí algún esquema sencillo me vendría muy bien.

CONTROL REMOTO
Para poder controlarlo desde el móvil creo que la opción más sencilla será que el propio ESP haga de servidor web y puedas acceder a una página donde seleccionar la potencia que debe entregar.
Tengo que probar sobre todo la parte de configuración, que no lo he hecho nunca. Lo ideal es que el circuito, la primera vez que se enciende, genere un SSID Wifi al que te puedas conectar y pasarle los parámetros de tu router para que, tras un reinicio, forme parte de tu LAN.
Y otra cosa que tengo que investigar es cómo publicar los servicios para que sean detectados en Home Assistant. Esta parte sé hacerla con ESPHome, pero no tengo ni idea de cómo hacerlo en lenguaje C. Ya iré publicando avances


Cualquier aportación vuestra será bienvenida, queda abierto el hilo.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Dimmer programable con control remoto
« Respuesta #1 en: 12 de Abril de 2023, 16:26:01 »
Creo que te faltó indicar que tipo de carga deseas controlar (Puramente resistiva, inductiva, capacitiva, no lineal)
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #2 en: 12 de Abril de 2023, 16:35:51 »
Resistiva.  De hecho lo quiero para mi temo eléctrico.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Dimmer programable con control remoto
« Respuesta #3 en: 12 de Abril de 2023, 16:54:12 »
Resistiva.  De hecho lo quiero para mi temo eléctrico.

Entonces la variable a controlar es la temperatura y tal vez necesitas medir dicha variable para determinar que el error sea mínimo.

Medir la corriente me imagino que es sólo por protección

Si estoy en lo correcto, que es un control de temperatura, al ser una variable lenta con respecto al tiempo, tal vez sólo necesites un control tipo ON-OFF, en lugar de algo un poco más complejo como un PDI.
« Última modificación: 12 de Abril de 2023, 16:59:17 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #4 en: 12 de Abril de 2023, 17:49:19 »
No,  la temperatura ya la tengo controlada.  La variable a controlar es la potencia porque quiero alimentar el temo solo con la energía sobrante de mis placas fotovoltaicas.  Me da igual el tiempo que tarde en calentarse,  lo que quiero es hacerlo gratis.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Dimmer programable con control remoto
« Respuesta #5 en: 12 de Abril de 2023, 17:54:15 »
No,  la temperatura ya la tengo controlada.  La variable a controlar es la potencia porque quiero alimentar el temo solo con la energía sobrante de mis placas fotovoltaicas.  Me da igual el tiempo que tarde en calentarse,  lo que quiero es hacerlo gratis.

Comparte un diagrama esquemático simplificado de lo que quieres hacer para tener una idea más claro y seguir tu proyecto.
« Última modificación: 12 de Abril de 2023, 17:57:06 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #6 en: 12 de Abril de 2023, 18:03:51 »
Claro,  en cuanto lo dibuje,  jajaja.
De momento todo lo que he hecho del proyecto es este hilo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #7 en: 14 de Abril de 2023, 18:28:14 »
Primeros pasos. He montado un ESP8266, una placa perforada con los optoacopladores y un Triac que tenía en un dimmer analógico, al que le he anulado la parte analógica para conectarlo directamente al optoacoplador.





En la parte del firmware, he instalado las siguientes librerías:
  • AsyncElegantOTA.h Con esta librería consigo actualizar el ESP8266 por Wifi, mucho más rápidamente que usando la conexión usb-serie y con la comodidad de no tenerlo conectado al PC, simplemente alimentado.
  • RBDdimmer.h Esta librería implementa un Dimmer que se puede regular entre 0 y 100

Con esto hecho, el código me queda así:
Código: C++
  1. void setup() {  
  2.   USE_SERIAL.begin(115200);
  3.  
  4.  
  5.   WiFi.mode(WIFI_STA);
  6.   WiFi.begin(ssid, password);
  7.   Serial.println("");
  8.  
  9.   // Wait for connection
  10.   while (WiFi.status() != WL_CONNECTED) {
  11.     delay(500);
  12.     Serial.print(".");
  13.   }
  14.   Serial.println("");
  15.   Serial.print("Connected to ");
  16.   Serial.println(ssid);
  17.   Serial.print("IP address: ");
  18.   Serial.println(WiFi.localIP());
  19.  
  20.   server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
  21.     request->send(200, "text/plain", "Hi! I am ESP8266.");
  22.   });
  23.  
  24.   AsyncElegantOTA.begin(&server);    // Start ElegantOTA
  25.   server.begin();
  26.   Serial.println("HTTP server started");
  27.  
  28.   dimmer.begin(NORMAL_MODE, ON);
  29.   Serial.println("Dimmer started");
  30.  
  31.   dimmer.begin(NORMAL_MODE, ON); //dimmer initialisation: name.begin(MODE, STATE)
  32.   USE_SERIAL.println("Dimmer Program is starting...");
  33.   USE_SERIAL.println("Set value");
  34. }
  35.  
  36. void printSpace(int val)
  37. {
  38.   if ((val / 100) == 0) USE_SERIAL.print(" ");
  39.   if ((val / 10) == 0) USE_SERIAL.print(" ");
  40. }
  41.  
  42. void loop() {
  43.   int preVal = outVal;
  44.  
  45.   if (USE_SERIAL.available())
  46.   {
  47.     int buf = USE_SERIAL.parseInt();
  48.     if (buf != 0) outVal = buf;
  49.     delay(200);
  50.   }
  51.   dimmer.setPower(outVal); // setPower(0-100%);
  52.  
  53.   if (preVal != outVal)
  54.   {
  55.     USE_SERIAL.print("lampValue -> ");
  56.     printSpace(dimmer.getPower());
  57.     USE_SERIAL.print(dimmer.getPower());
  58.     USE_SERIAL.println("%");
  59.  
  60.   }
  61.   delay(50);
  62.  
  63. }

Con este código, envío con el terminal serie un número entre 0 y 100 y el dimmer regula la salida en ese rango.
Esta parte ya la tengo funcionando. Ahora voy a intentar añadir la medición de potencia de salida y continuamos para bingo.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #8 en: 15 de Abril de 2023, 02:24:01 »
He modificado el primer mensaje del hilo para meter los bloques ALIMENTACIÓN y DETECCIÓN DEL CRUCE POR CERO.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #9 en: 15 de Abril de 2023, 02:32:09 »
Una opción interesante para tener la alimentación y de paso un detector de cruce por cero integrado es este circuito:
https://www.electronics-lab.com/project/ac-voltage-zero-cross-detector/

La página viene perfectamente documentada, e incluye esquemático, PCB, gerbers, lista de componentes...





Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Dimmer programable con control remoto
« Respuesta #10 en: 15 de Abril de 2023, 10:57:53 »
Ese circuito no está aislado de línea, hay que tenerlo en cuenta en el disparo del triac  (debe ser a través de un opto) y en alguna eventual conexión por USB.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #11 en: 15 de Abril de 2023, 11:17:31 »
Sí, completamente de acuerdo, Eduardo. Muchas gracias

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
Re:Dimmer programable con control remoto
« Respuesta #12 en: 16 de Abril de 2023, 02:49:38 »
pero como averiguaras  la potencia que le sobran a las placas ?

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #13 en: 16 de Abril de 2023, 03:42:53 »
Eso lo tengo resuelto,  maestro.  Hablo con el inversor por Modbus. Tengo que preparar un video al respecto,  te avisaré

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Dimmer programable con control remoto
« Respuesta #14 en: 17 de Abril de 2023, 05:16:59 »
Seguimos avanzando.
Ya he conseguido integrar un servidor web que me pregunte por el valor que quiero aplicar al Dimmer:


Y me resulta muy cómodo probar distintos valores del dimmer:






Ahora me voy a poner con el medidor de potencia.


 

anything