Inicio/Monitores de Energía/Medidor de Energía con ESP32 y Sensor SCT-013: Calibración y Precisión para Auditorías Energéticas
Monitores de Energía

Medidor de Energía con ESP32 y Sensor SCT-013: Calibración y Precisión para Auditorías Energéticas

Alex R.Escrito por: Alex R.
Fecha: 31 Ago 2026
Lectura de 9 min
Medidor de Energía con ESP32 y Sensor SCT-013: Calibración y Precisión para Auditorías Energéticas

La medición precisa del consumo eléctrico es fundamental en cualquier auditoría energética, ya sea para identificar ineficiencias, dimensionar sistemas de autoconsumo o simplemente para tomar conciencia del gasto real de cada dispositivo. En este contexto, el microcontrolador ESP32 y el sensor de corriente SCT-013 se han convertido en una de las combinaciones más populares entre aficionados y profesionales gracias a su bajo coste, versatilidad y la enorme comunidad que respalda su uso. Sin embargo, obtener lecturas fiables no es tan sencillo como conectar el sensor y leer un valor: la calibración es un paso crítico que determina la validez de los datos recogidos. En este artículo, exploraremos en profundidad cómo calibrar un medidor de energía con ESP32 y SCT-013, abordando desde los principios físicos subyacentes hasta los errores más comunes, pasando por una guía práctica de configuración y una comparativa detallada con otros métodos de medición.

Fundamentos de la Medición de Corriente con SCT-013

El SCT-013 es un transformador de corriente (CT) de tipo abierto que permite medir corriente alterna sin necesidad de interrumpir el circuito. Su funcionamiento se basa en la inducción electromagnética: el conductor por el que circula la corriente a medir actúa como primario, y la bobina interna del sensor, con un número elevado de espiras, genera una corriente proporcional en el secundario. Esta corriente secundaria es muy pequeña (típicamente 1V o 50mA a corriente nominal), por lo que debe ser acondicionada antes de ser leída por el ADC del ESP32.

Existen varias versiones del SCT-013: el SCT-013-000 (salida de corriente, 0-1V), el SCT-013-010 (salida de tensión, 0-1V) y el SCT-013-020 (salida de tensión, 0-20A). Para este artículo nos centraremos en el modelo más común, el SCT-013-000, que requiere un circuito de carga para convertir la corriente en tensión. La relación de vueltas típica es 1000:1, es decir, por cada amperio en el primario, circula 1mA en el secundario. Con una resistencia de carga de 33 ohmios, se obtiene una tensión de 33mV por amperio, que es una señal muy débil para el ADC del ESP32 (que tiene un rango de 0-3.3V). Por ello, es habitual añadir un circuito de acondicionamiento con un amplificador operacional o, más sencillamente, utilizar un módulo que ya lo incorpora, como el módulo de corriente SCT-013 con salida de tensión.

El ADC del ESP32 y sus Limitaciones

El ESP32 integra un convertidor analógico-digital (ADC) de 12 bits (0-4095) que puede operar en varios rangos de tensión, siendo el más común el de 0-3.3V. Sin embargo, el ADC del ESP32 no es lineal en toda su gama, especialmente en los extremos, y su impedancia de entrada puede afectar a la medición si el circuito de acondicionamiento no tiene una impedancia de salida baja. Además, el ADC tiene un ruido considerable y una precisión de ±6% en el peor de los casos, según la hoja de datos. Esto significa que, sin calibración, las lecturas pueden desviarse significativamente de la realidad.

Para mejorar la precisión, se recomienda utilizar el modo de atenuación de 11dB (que permite medir hasta 3.6V) y realizar múltiples lecturas para promediar. Pero la calibración es imprescindible para corregir tanto el offset (tensión en reposo) como el factor de escala (relación entre corriente real y tensión medida). En este artículo, te enseñaremos a calibrar tu medidor de forma sencilla y efectiva.

Guía Paso a Paso para la Calibración

La calibración de un medidor de energía con ESP32 y SCT-013 implica dos ajustes principales: el offset (cero) y el factor de calibración (ganancia). El offset compensa la tensión residual que existe en la salida del sensor cuando no hay corriente circulando (debido a la polarización del circuito). El factor de calibración ajusta la relación entre la tensión medida y la corriente real, teniendo en cuenta las tolerancias del sensor y del circuito.

Paso 1: Conexión del Hardware

Antes de calibrar, asegúrate de tener el hardware correctamente conectado. Para el SCT-013-000, necesitarás un circuito de carga como el siguiente: conecta el sensor a tierra y a una resistencia de carga (por ejemplo, 33 ohmios) en paralelo con un condensador de filtro (10µF) y un divisor de tensión para centrar la señal en 1.65V (la mitad de 3.3V). Este divisor se puede hacer con dos resistencias de 10kΩ. La salida del divisor se conecta al pin ADC del ESP32 (por ejemplo, GPIO34). Si usas un módulo ya preparado (como el que se vende en Amazon), la conexión es directa: VCC a 3.3V, GND a GND y OUT al pin ADC.

Es fundamental que el sensor esté correctamente orientado: la flecha del SCT-013 indica la dirección del flujo de corriente (de la fuente a la carga). Si lo colocas al revés, las lecturas serán negativas (aunque en AC no importa el signo para la magnitud, sí para el cálculo de potencia si se usa factor de potencia).

Paso 2: Código Base para la Lectura

El siguiente código de Arduino lee el valor del ADC y calcula la corriente RMS. Utiliza una muestra de 1000 lecturas para calcular el valor RMS y obtener una buena precisión. A continuación, se muestra una función para leer la corriente:

float readCurrent() {
const int numSamples = 1000;
float sumSquares = 0;
float offset = 0;
// Primero, calcular el offset (valor promedio)
for (int i = 0; i < numSamples; i++) {
offset += analogRead(ADC_PIN);
delayMicroseconds(100);
}
offset /= numSamples;
// Ahora, calcular la suma de cuadrados de las desviaciones
for (int i = 0; i < numSamples; i++) {
float sample = analogRead(ADC_PIN) - offset;
sumSquares += sample * sample;
delayMicroseconds(100);
}
float rms = sqrt(sumSquares / numSamples);
// Convertir a voltios (0-3.3V) y luego a amperios
float volts = (rms / 4095.0) * 3.3;
float amps = (volts - 0.5) * factor; // Ajustar según el circuito
return amps;
}

En este código, el offset se calcula en tiempo real, lo que ayuda a eliminar la deriva térmica. El factor de calibración se introduce manualmente después de la calibración.

Paso 3: Medición del Offset

Con el sensor instalado pero sin corriente circulando (carga desconectada), ejecuta el código y anota el valor promedio del ADC (offset). En teoría, debería ser 2048 (mitad de 4096), pero debido a las tolerancias, puede variar. Este valor se usará como referencia para la calibración del cero. En el código, ya se calcula automáticamente, pero es útil conocerlo para depurar.

Paso 4: Calibración con una Carga Conocida

Para calibrar la ganancia, necesitas una carga resistiva de valor conocido, como una lámpara incandescente de 100W o un calefactor de 1000W. Conecta la carga y mide la corriente real con una pinza amperimétrica de calidad (o un multímetro de verdadero RMS). Luego, ejecuta el código y anota la corriente medida por el ESP32. Calcula el factor de calibración como: factor = corriente_real / corriente_medida. Por ejemplo, si la corriente real es 0.45A y el ESP32 mide 0.40A, el factor sería 1.125. Actualiza el valor de 'factor' en el código y vuelve a probar.

AtenciónLa calibración debe realizarse con cargas resistivas puras (sin motores ni electrónica) para evitar errores debidos al factor de potencia. Si la carga tiene componente reactiva, la corriente medida por el sensor será la corriente total, pero la potencia real dependerá del factor de potencia, que no se está midiendo en este circuito básico.

Paso 5: Verificación y Ajuste Fino

Después de aplicar el factor, verifica con varias cargas de diferentes potencias (por ejemplo, 60W, 100W, 200W) y asegúrate de que las lecturas sean lineales. Si observas desviaciones no lineales, puede ser debido a la no linealidad del ADC o del sensor. En ese caso, puedes implementar una tabla de corrección o utilizar una regresión lineal con varios puntos. Para la mayoría de las aplicaciones de auditoría, una precisión del 2-5% es aceptable.

Errores Comunes y Limitaciones

A pesar de su popularidad, el uso del SCT-013 con ESP32 tiene varias trampas que pueden arruinar la precisión de tus mediciones. Conocerlas te ayudará a evitarlas.

Error 1: No Utilizar un Circuito de Acondicionamiento Adecuado

Muchos tutoriales simplifican la conexión conectando el sensor directamente al ADC, lo que produce lecturas erráticas y no lineales. El SCT-013-000 entrega una corriente, no una tensión, por lo que es imprescindible una resistencia de carga. Además, el ADC del ESP32 tiene una impedancia de entrada relativamente baja (alrededor de 100kΩ), que puede cargar el circuito si la impedancia de salida del sensor es alta. El uso de un amplificador operacional como seguidor de tensión resuelve este problema, pero no es imprescindible si se usa una resistencia de carga baja (33Ω) y un divisor de tensión de baja impedancia.

Error 2: Ignorar el Offset

El offset (tensión en reposo) puede variar con la temperatura y la tensión de alimentación. Si no se calcula dinámicamente, las lecturas de corriente se desplazarán, especialmente a corrientes bajas. En el código proporcionado, se calcula el offset en cada lectura, lo que mejora la estabilidad. Sin embargo, si el circuito tiene un offset fijo (por ejemplo, debido a la polarización), puedes restarlo manualmente.

Error 3: No Tener en Cuenta la No Linealidad del ADC

El ADC del ESP32 tiene una no linealidad integral (INL) que puede ser de ±6 LSB, y su ganancia puede variar hasta un 10% entre diferentes chips. Esto significa que el factor de calibración puede variar de un dispositivo a otro, por lo que es necesario calibrar cada unidad individualmente. Además, el ADC tiene un error de ganancia que puede corregirse con una calibración de dos puntos (por ejemplo, midiendo una tensión de referencia de 1V y 2V).

Error 4: Medir Corriente sin Medir Tensión

Para calcular la potencia real (vatios), necesitas medir tanto la corriente como la tensión y el factor de potencia. Si solo mides corriente, solo obtienes la corriente aparente (VA). En una auditoría energética, la potencia activa (W) es la que factura la compañía eléctrica, por lo que necesitas un medidor de tensión y un cálculo de fase. El ESP32 puede medir tensión con un transformador o un divisor resistivo, pero la sincronización de las muestras es crucial. En este artículo nos centramos en la calibración de corriente, pero ten en cuenta esta limitación.

AdvertenciaEl SCT-013 no está diseñado para medir corriente continua (DC). Solo funciona con corriente alterna (AC) de 50/60Hz. Además, no es un instrumento de precisión para uso profesional; su exactitud típica es del 1-2% si se calibra correctamente, pero puede degradarse con el tiempo y la temperatura.

Tabla Comparativa: SCT-013 vs. Otros Métodos de Medición

Para contextualizar la precisión del SCT-013, comparamos este sensor con otras soluciones comunes para medir energía en proyectos de domótica y auditoría.

MétodoPrecisiónCosteInstalaciónIdeal para
SCT-013 + ESP32±2-5%Bajo (10-15€)No invasivoProyectos DIY, monitorización básica
Pinza amperimétrica profesional±1%Alto (100-500€)No invasivoAuditorías profesionales
Medidor de energía con pinza (ej. Shelly EM)±1-2%Medio (30-60€)No invasivoDomótica, integración con plataformas
Medidor de energía con shunt (ej. INA219)±0.5%Bajo (5-10€)Invasivo (serie)DC, baja corriente
Contador eléctrico con salida de pulsos±0.5%Medio (20-40€)Invasivo (instalación)Medición oficial, alta precisión

Como se observa, el SCT-013 es una opción económica y no invasiva, pero su precisión es inferior a la de soluciones comerciales. Para auditorías energéticas informales o para monitorizar el consumo en tiempo real en una vivienda, es más que suficiente. Para aplicaciones profesionales, se recomienda invertir en equipos certificados.

Preguntas Frecuentes

¿Qué precisión puedo esperar después de una calibración cuidadosa?
Con una calibración cuidadosa (offset dinámico y factor de escala ajustado con una carga conocida), puedes esperar una precisión de ±2-3% en la medición de corriente para cargas lineales. Sin embargo, la precisión puede degradarse a corrientes muy bajas (por debajo de 0.1A) debido al ruido del ADC. Para mejorar la precisión, puedes aumentar el número de muestras y utilizar un filtro de media móvil. También es recomendable calibrar en el rango de corriente que más te interese medir.
¿Puedo usar el SCT-013 para medir corriente en un circuito trifásico?
Sí, puedes usar un SCT-013 por cada fase. Sin embargo, para calcular la potencia total en un sistema trifásico, necesitas medir también las tensiones de fase y conocer el ángulo de desfase. En una instalación trifásica de 4 hilos (3 fases + neutro), puedes medir cada fase con su sensor y sumar las potencias calculadas individualmente. Ten en cuenta que el SCT-013 no aísla galvánicamente si se usa en un sistema sin neutro a tierra, por lo que debes asegurarte de que el circuito de medición esté correctamente aislado para evitar riesgos eléctricos.
¿Qué hago si mis lecturas son inestables o fluctúan demasiado?
La inestabilidad puede deberse a varias causas: ruido eléctrico, mal contacto en las conexiones, o una fuente de alimentación con rizado. Para solucionarlo, asegúrate de que el ESP32 esté alimentado con una fuente estable (por ejemplo, una fuente de 5V con regulador de 3.3V). Añade un condensador de 100nF en el pin de alimentación del sensor y en el pin ADC. Además, realiza un promedio de más muestras (por ejemplo, 2000) y aplica un filtro de media móvil en el software. Si el problema persiste, verifica que el sensor no esté cerca de fuentes de interferencia electromagnética, como motores o transformadores.
¿Es necesario usar un amplificador operacional para el SCT-013?
No es estrictamente necesario si utilizas una resistencia de carga baja (33Ω) y un divisor de tensión con resistencias de bajo valor (por ejemplo, 1kΩ). Sin embargo, el uso de un amplificador operacional como seguidor de tensión (buffer) mejora la impedancia de salida y reduce la carga sobre el sensor, lo que puede mejorar la linealidad y la precisión. Si tienes experiencia con electrónica, te recomendamos añadir un opamp (como el LM358) configurado como seguidor de tensión. Para la mayoría de los proyectos DIY, el circuito simple funciona aceptablemente.
¿Cómo mido la potencia activa (vatios) con el ESP32?
Para medir la potencia activa, necesitas medir la tensión instantánea y la corriente instantánea simultáneamente, y calcular el promedio del producto. Para ello, puedes usar un divisor de tensión para medir la tensión de red (con un transformador de aislamiento o un optoacoplador) y el SCT-013 para la corriente. Muestrea ambos canales a una frecuencia alta (por ejemplo, 1000 muestras por segundo) y calcula la potencia promedio. También necesitas conocer el factor de potencia, que es el coseno del ángulo de desfase entre tensión y corriente. En un circuito con cargas resistivas, el factor de potencia es 1, por lo que la potencia activa es simplemente Vrms * Irms. Para cargas reactivas, necesitas un algoritmo más complejo, como el cálculo de la potencia instantánea. Te recomendamos usar librerías como 'EmonLib' que ya implementan estos cálculos.

Conclusión y Plan de Acción

La calibración de un medidor de energía con ESP32 y sensor SCT-013 es un proceso esencial para obtener datos fiables en auditorías energéticas. A lo largo de este artículo, hemos desglosado los fundamentos técnicos, los pasos necesarios para una calibración precisa, los errores más comunes y las limitaciones del sistema. Hemos visto que, aunque el SCT-013 no es un instrumento de precisión profesional, con una calibración cuidadosa puede ofrecer una precisión aceptable para la mayoría de los usos domésticos y de investigación.

Si estás pensando en implementar un sistema de monitorización energética en tu hogar o proyecto, te recomendamos seguir el siguiente plan de acción:

1Selecciona el hardware adecuado

Compra un SCT-013-000 (o el módulo con salida de tensión) y un ESP32 (cualquier placa, como el DevKit). Asegúrate de tener una fuente de alimentación estable y los componentes electrónicos necesarios (resistencias, condensadores, etc.).

2Monta el circuito con cuidado

Sigue las conexiones descritas en la guía. Si no tienes experiencia, utiliza un módulo ya preparado para evitar errores. Presta atención a la orientación del sensor.

3Implementa el código base

Sube el código proporcionado y verifica que las lecturas varíen al conectar una carga. Ajusta el número de muestras y los retardos según tu aplicación.

4Calibra con una carga conocida

Utiliza una lámpara incandescente o un calefactor para calibrar el factor de escala. Mide la corriente real con una pinza amperimétrica y ajusta el factor hasta que las lecturas coincidan.