Un gestor de potencia con Arduino mide en tiempo real el consumo eléctrico de la vivienda y, cuando se acerca a la potencia contratada, desconecta cargas no prioritarias mediante relés para que no salte el ICP. El sistema tiene dos partes: un medidor de energía fiable (contador DIN, pinza o módulo PZEM-004T) y una lógica de desconexión con prioridades, histéresis y tiempos de reconexión.
En la misma guía: Instalaciones domóticas y ahorro energético · Caja de control exterior con Arduino: diseño, estanqueidad y montaje · Control de persianas con Arduino: motores, relés y automatización
Qué es un gestor de potencia doméstico con Arduino
En electrónica, «control de potencia» suele significar PWM, potenciómetros o drivers de motores DC. Aquí se trata de otra cosa: gestionar la carga de una instalación de 230 V para no superar lo contratado.
El esquema mínimo:
- Un sensor que entregue la potencia en vatios de toda la vivienda.
- Un Arduino Uno (o ESP32 si quieres MQTT y Home Assistant) que compara esa potencia con un umbral.
- Un módulo de relés que gobierna contactores de los circuitos sacrificables: termo, radiadores, cargador del coche.
- Una pantalla LCD opcional para ver potencia instantánea, pico y energía acumulada.
Para el contexto general del ecosistema, consulta la guía de referencia de domótica con Arduino.
Cómo medir la energía eléctrica de la vivienda
Recomendación directa: si puedes tocar el cuadro, usa un contador de energía en carril DIN. Es la medida más precisa y la más estable a largo plazo.
| Método | Mide | Precisión | Instalación |
|---|---|---|---|
| Contador DIN (DDS238, SDM220) | Energía activa | Clase 1 (IEC 62053-21) | En el cuadro, en serie |
| SCT-013 + ZMPT101B | Corriente y tensión | Depende de la calibración | Pinza no invasiva |
| PZEM-004T | V, I, P, kWh, factor de potencia | Buena para uso doméstico | Módulo con transformador |
Contadores de carril DIN con salida de pulsos o Modbus
La salida de pulsos (SO+/SO−) es un colector abierto: SO+ a un pin con interrupción, SO− a GND y una resistencia pull-up. Cada impulso equivale a una cantidad fija de energía. Un DDS238-2 entrega 1600 impulsos por kWh, es decir, 0,625 Wh por impulso.
Para pasar a potencia instantánea, mide el tiempo entre dos impulsos:
- Energía por impulso: 1000 / 1600 = 0,625 Wh.
- Potencia (W) = 3 600 000 / (impulsos por kWh × segundos entre impulsos).
- Con el DDS238-2: P = 2250 / t. Un impulso cada 2 s son 1125 W.
A consumos bajos los impulsos llegan muy espaciados: promedia sobre una ventana o declara potencia cero si pasa demasiado tiempo sin flanco.
La opción Modbus RS485 (SDM220 y similares) evita esa latencia. Necesitas un transceptor MAX485 y una librería Modbus maestra; el Arduino interroga los registros de tensión, corriente, potencia activa y energía que indica el manual del fabricante. Cablea el bus con par trenzado y termina la línea en los extremos.
Pinzas SCT-013 y módulos PZEM-004T
La pinza amperimétrica no invasiva SCT-013 solo mide corriente. Multiplicarla por 230 V nominales da potencia aparente, no activa. Para la activa, añade un ZMPT101B y calcula V × I muestra a muestra. El PZEM-004T resuelve todo en un módulo y entrega los datos por serie. El ACS712 sirve para un aparato concreto, no para toda la vivienda; el INA219 es para corriente continua.
Desconexión de cargas por prioridad para que no salte el ICP
Ordena las cargas de menos a más imprescindible y desconecta siempre empezando por la primera. En las obras que acompaño, el orden habitual es: cargador del coche, termo eléctrico, radiadores, lavadora.
Lógica recomendada:
- Umbral de corte un margen por debajo de la potencia contratada.
- Si la potencia supera el umbral durante unos segundos, abre el relé de la carga de menor prioridad.
- Reconecta solo cuando la potencia libre supere el consumo previsto de esa carga más un margen (histéresis).
- Aplica un tiempo mínimo de reconexión de varios minutos para evitar oscilaciones.
Los relés del módulo nunca deben conmutar directamente un termo o un radiador: gobierna contactores dimensionados para la carga. Si alimentas bobinas desde transistores, añade diodo de flyback.
Tarifas por tramos horarios y autoconsumo solar
En España, la discriminación horaria divide el día en punta, llano y valle. Con la medida ya integrada, el gestor puede habilitar cargas diferibles (termo, coche, lavavajillas) solo en valle.
Con autoconsumo solar la lógica cambia de signo. El Real Decreto 244/2019 regula la compensación de excedentes: se descuentan del término de energía, pero la factura nunca queda en negativo, y su valor suele ser inferior al precio de compra. Consumir el excedente en casa casi siempre compensa más que verterlo.
Para gestionarlo necesitas medir el sentido del flujo: un contador bidireccional por Modbus o una pinza con referencia de tensión (el signo de la potencia activa indica importación o vertido). Cuando haya vertido sostenido, activa cargas por prioridad inversa; cuando vuelva la importación, desactívalas con la misma histéresis. Más casos prácticos en instalaciones domóticas orientadas al ahorro energético.
Seguridad en trabajos sobre la instalación de 230 V
Trabaja siempre sin tensión: corta el interruptor general, verifica ausencia de tensión con un comprobador y señaliza el cuadro.
- Todo elemento en contacto con 230 V va en envolvente cerrada o sobre carril DIN, nunca en una protoboard.
- Separa físicamente la parte de baja tensión del Arduino de la de corriente alterna.
- Protege cada circuito añadido con su magnetotérmico y respeta las secciones de cable.
- Las modificaciones en el cuadro de una vivienda deben cumplir el REBT; si no eres instalador autorizado, encárgalas a uno.
La pinza SCT-013 es la única vía que no exige abrir ningún circuito: se abraza al conductor de fase, nunca a fase y neutro juntos, porque las corrientes se anulan y la lectura sale a cero.
FAQ
¿Cómo se mide el consumo eléctrico de una casa con Arduino?
Con un contador DIN de pulsos o Modbus a la entrada del cuadro, con una pinza SCT-013 junto a un ZMPT101B, o con un PZEM-004T. El contador es lo más preciso: cuentas impulsos y conviertes. Con 1600 impulsos por kWh, cada impulso son 0,625 Wh. El código base y las librerías están en la sección de descargas.
¿Cómo evitar que salte el ICP desconectando electrodomésticos con Arduino?
Mide la potencia total, fija un umbral por debajo de lo contratado y abre mediante relé y contactor la carga de menor prioridad cuando se supere varios segundos. Reconecta solo con margen libre suficiente y tras un tiempo mínimo, para que el sistema no oscile.

