¿Quieres saber cuánta corriente está consumiendo un aparato eléctrico sin cortar cables ni conectar directamente el ESP32 a la red eléctrica? Con un ESP32 y una pinza amperimétrica SCT-013 puedes construir un pequeño detector de corriente capaz de mostrar en tiempo real cuántos amperios está utilizando una carga.
|
|
Sensor SCT-013 conectado a ESP32 para detectar y medir corriente
eléctrica |
Este proyecto es especialmente interesante porque combina electrónica, sensores, programación e Internet de las cosas (IoT) en un dispositivo relativamente sencillo.
Y lo mejor es que la medición se realiza de forma no invasiva: la pinza se coloca alrededor de un solo conductor y detecta el campo magnético generado por la corriente que circula por él.
¿Qué vamos a construir?
El objetivo es crear un detector que pueda:
- Detectar la corriente alterna que consume un aparato.
- Procesar la señal mediante el ADC del ESP32.
- Calcular el valor RMS de la corriente.
- Mostrar el resultado en el monitor serie.
- Servir como base para posteriormente añadir una pantalla OLED, Wi-Fi, gráficos y registro histórico.
El resultado inicial será algo parecido a esto:
¿Qué es el SCT-013?
El SCT-013 pertenece a una familia de transformadores de corriente diseñados para medir corriente alterna sin realizar una conexión eléctrica directa con el conductor.
Físicamente parece una pequeña pinza. Al cerrarla alrededor de un conductor, el campo magnético generado por la corriente induce una señal en el interior del transformador.
Una de sus ventajas es precisamente esta: no necesitamos cortar el cable para realizar la medición.
Pero hay algo que debes tener muy presente: existen diferentes modelos SCT-013 y no todos funcionan igual.
|
| Sensor de corriente SCT-013 transformador de corriente 100A 50mA para proyectos electrónicos |
El SCT-013 que utilizaremos
Para este tutorial utilizaremos como referencia el SCT-013-030 de salida de voltaje, especificado para una corriente de entrada de hasta 30 A y una salida de aproximadamente 0–1 V. La documentación del modelo indica una abertura de aproximadamente 13 × 13 mm y una relación de transformación de 1800:1. :contentReference[oaicite:1]{index=1}
Esta versión resulta cómoda para principiantes porque incorpora la resistencia de carga necesaria para obtener una salida de voltaje.
Materiales necesarios
- 1 × ESP32 DevKit
- 1 × SCT-013-030 de salida 0–1 V
- 2 × resistencias de 100 kΩ
- 1 × resistencia de 1 kΩ
- 1 × condensador electrolítico de 10 µF
- 1 × condensador cerámico de 100 nF
- Protoboard
- Cables Dupont
- Cable USB para alimentar el ESP32
¿Por qué necesitamos modificar la señal?
El SCT-013 produce una señal de corriente alterna. Esa señal cambia continuamente de polaridad alrededor de un punto de referencia.
El problema es que el ADC del ESP32 no está diseñado para recibir directamente una tensión negativa.
Por eso vamos a desplazar la señal hacia aproximadamente la mitad de la alimentación del ESP32.
Con una alimentación de 3,3 V, nuestro punto de referencia será aproximadamente:
3,3 V ÷ 2 = 1,65 V
Las dos resistencias de 100 kΩ crean ese punto medio.
Cómo crear el punto medio de 1,65 V
Conecta las resistencias de esta manera:
3.3 V|100 kΩ|+-------- 1.65 V|100 kΩ|GND
El punto situado entre las dos resistencias será nuestra referencia para la señal del SCT-013.
El condensador de 10 µF se conecta entre este punto y GND para ayudar a estabilizar la referencia.
|
|
Circuito con sensor SCT-013 en protoboard para medición de corriente con
Arduino |
Conexión del SCT-013 al ESP32
Para este ejemplo utilizaremos el GPIO 34 como entrada analógica.
La conexión básica queda así:
SCT-013Cable de señal|+---- 1 kΩ ---- GPIO 34 ESP32Cable de referencia|+-------------- Punto medio 1,65 V
El condensador de 100 nF puede colocarse entre la entrada analógica y GND para ayudar a reducir ruido de alta frecuencia.
Esquema completo
ESP32┌─────────────────┐│ │3.3 V ────┤ ││ │100 kΩ ││ │├───────┐ ││ │ │100 kΩ 10 µF ││ │ │GND GND ││ │└────┐ ││ │SCT-013 ─────── 1 kΩ ─────────┴── GPIO 34│100 nF│GND
La idea es que la señal alterna del sensor oscile alrededor del punto de 1,65 V en lugar de intentar cruzar por debajo de 0 V.
|
|
Sensor SCT-013 conectado a ESP32 para medir corriente mediante GPIO
34 |
¿Por qué usamos el GPIO 34?
El ESP32 incorpora convertidores analógico-digitales (ADC) que permiten convertir una tensión analógica en valores digitales que el programa puede procesar.
En el ESP32 clásico, el ADC puede trabajar con una resolución de hasta 12 bits, lo que proporciona valores de 0 a 4095. La configuración de atenuación permite adaptar el rango de tensión que puede medir la entrada. :contentReference[oaicite:2]{index=2}
El GPIO 34 resulta práctico para este proyecto porque puede utilizarse como entrada analógica en el ESP32 clásico.
El código para medir la corriente
Ahora viene la parte interesante. El ESP32 no debe leer una sola muestra y convertirla directamente en amperios.
La corriente alterna está cambiando constantemente, por lo que necesitamos tomar muchas muestras, calcular la desviación respecto al punto medio y obtener el valor RMS.
Utilizaremos el siguiente programa:
#include <Arduino.h>#include <math.h>#define SCT_PIN 34 // SCT-013-030 de salida de voltaje // 1 V RMS aproximadamente a 30 A RMS const float SCT_VOLTAGE_AT_MAX = 1.0; const float SCT_CURRENT_AT_MAX = 30.0; void setup() { Serial.begin(115200); analogReadResolution(12); analogSetPinAttenuation( SCT_PIN, ADC_11db ); Serial.println("Detector de corriente"); Serial.println("ESP32 + SCT-013"); } void loop() { const int samples = 2000; double sum = 0; // Primera pasada: // calculamos el valor medio del ADC for (int i = 0; i < samples; i++) { sum += analogRead(SCT_PIN); delayMicroseconds(200); } double offset = sum / samples; // Segunda pasada: // calculamos RMS double sumSquares = 0; for (int i = 0; i < samples; i++) { double sample = analogRead(SCT_PIN); double centered = sample - offset; sumSquares += centered * centered; delayMicroseconds(200); } double rmsADC = sqrt(sumSquares / samples); // Conversión aproximada del ADC double voltageRMS = (rmsADC / 4095.0) * 3.1; // Conversión a amperios double currentRMS = voltageRMS * (SCT_CURRENT_AT_MAX / SCT_VOLTAGE_AT_MAX); Serial.print("Corriente: "); Serial.print(currentRMS, 2); Serial.println(" A"); delay(1000);}
Nota: el valor de conversión del ADC es una aproximación. El ESP32 no debe tratarse como un multímetro de precisión. Espressif documenta métodos de calibración del ADC y señala que la referencia interna real puede variar entre chips. :contentReference[oaicite:3]{index=3}
¿Qué significa RMS?
Si nunca has trabajado con corriente alterna, esta parte puede parecer complicada, pero la idea es sencilla.
La corriente alterna sube, baja y cambia de sentido muchas veces por segundo. No podemos simplemente leer el valor máximo y decir que esa es la corriente.
El valor RMS proporciona una medida equivalente que resulta mucho más útil para describir la corriente alterna.
Por eso el programa toma miles de muestras y realiza un cálculo matemático para obtener la corriente RMS.
Primer encendido
Antes de colocar la pinza alrededor de cualquier conductor, conecta únicamente el ESP32 por USB y abre el Monitor Serie del Arduino IDE.
Selecciona:
115200 baudios
Deberías comenzar a recibir valores de corriente.
Sin ninguna carga alrededor de la pinza, el resultado idealmente debería estar cerca de cero, aunque pequeñas lecturas pueden aparecer debido al ruido eléctrico y a las características del ADC.
Cómo colocar correctamente la pinza
Esta es probablemente la parte más importante del experimento.
La pinza debe rodear un solo conductor.
Por ejemplo:
CORRECTO┌─────────────┐│ SCT ││ ◯ │└──────┬──────┘│FASE│APARATO
No debes colocar la pinza alrededor simultáneamente de fase y neutro:
INCORRECTO┌─────────────┐│ SCT ││ ◯◯◯ │└─────┬─┬─────┘│ │FASE NEUTRO│ │APARATO
Cuando ambos conductores están dentro de la pinza, los campos magnéticos asociados pueden cancelarse y la lectura será muy pequeña o incorrecta.
|
|
Pinza SCT-013 colocada correctamente sobre un solo conductor de fase y
posición incorrecta sobre fase y neutro |
¿Qué puedes medir?
Una vez que el detector funciona, puedes utilizarlo para observar diferentes cargas, siempre mediante una configuración segura.
- Ventiladores.
- Bombillas.
- Televisores.
- Computadores.
- Herramientas eléctricas.
- Pequeños electrodomésticos.
- Cargadores.
Una de las cosas más interesantes es observar cómo cambia la corriente cuando un aparato cambia de estado.
Por ejemplo, un motor puede consumir una corriente diferente durante el arranque y durante su funcionamiento normal.
¿Puedo convertir amperios en watts?
Sí, pero aquí hay que tener cuidado.
Una fórmula sencilla es:
Potencia ≈ Voltaje × Corriente
Sin embargo, esta fórmula no siempre proporciona la potencia activa real de un aparato de corriente alterna.
En cargas como motores, fuentes conmutadas y determinados dispositivos electrónicos existe un factor de potencia que debe tenerse en cuenta.
Por eso este proyecto se centra primero en algo más sencillo y fiable: medir corriente RMS.
En un proyecto posterior podemos añadir una medición aislada de tensión y calcular potencia activa, factor de potencia y consumo acumulado en kWh.
Cómo calibrar el detector
La calibración es importante si quieres que el valor mostrado por el ESP32 se aproxime al de un instrumento de referencia.
La forma más práctica es utilizar un medidor de corriente o energía comercial como referencia.
Por ejemplo, si el medidor de referencia indica:
Referencia: 2,00 AESP32: 2,18 A
El programa está mostrando un valor demasiado alto y debemos aplicar un factor de corrección.
Una vez obtenido experimentalmente el factor, puedes incorporarlo al código:
const float CALIBRATION_FACTOR = 0.917;currentRMS *= CALIBRATION_FACTOR;
El valor exacto dependerá de tu sensor, tu placa ESP32 y tu circuito.
Un proyecto sencillo que puede convertirse en algo mucho más grande
Aquí está una de las ventajas de utilizar un ESP32.
Una vez que conseguimos medir corriente, podemos aprovechar la conectividad del microcontrolador para convertir este pequeño detector en un sistema de monitorización mucho más completo.
Por ejemplo:
- Mostrar la corriente en una pantalla OLED.
- Enviar los datos por Wi-Fi.
- Crear una página web local.
- Guardar un historial de mediciones.
- Crear gráficas de consumo.
- Enviar alertas al teléfono.
- Detectar cuándo se enciende un aparato.
- Calcular consumo acumulado.
¿Se puede detectar el consumo de toda una vivienda?
El concepto también puede utilizarse para monitorización eléctrica de mayor escala, pero el sensor debe seleccionarse según la corriente máxima que se quiera medir.
Un SCT-013 diseñado para 30 A no debe utilizarse simplemente porque "parece suficiente" para cualquier instalación.
Para circuitos de mayor corriente se necesitan sensores con un rango apropiado y una instalación realizada de forma segura.
Errores que debes evitar
Conectar el SCT-013 directamente a 3,3 V
El SCT-013 es un sensor de corriente. No necesita que le apliques tensión de alimentación como si fuera un sensor digital.
Conectar la red eléctrica al GPIO
Nunca lo hagas. El GPIO del ESP32 está diseñado para señales de baja tensión.
Rodear fase y neutro simultáneamente
Esto puede hacer que los campos magnéticos se cancelen y la lectura sea incorrecta.
Confundir las versiones del SCT-013
Antes de construir el circuito comprueba si tu modelo tiene salida de voltaje o salida de corriente. Los modelos de salida de corriente requieren una resistencia burden correctamente dimensionada; el modelo utilizado aquí es una versión de salida de voltaje.
Esperar precisión de laboratorio
El ESP32 y el SCT-013 permiten construir un excelente proyecto educativo y de monitorización, pero no sustituyen un instrumento eléctrico certificado.
¿Qué aprenderás con este proyecto?
Más allá de conseguir que aparezca un número en el monitor serie, este proyecto permite aprender varios conceptos importantes de electrónica:
- Funcionamiento de un transformador de corriente.
- Medición no invasiva.
- Señales de corriente alterna.
- Valor RMS.
- Conversión analógico-digital.
- Lectura del ADC del ESP32.
- Filtrado y reducción de ruido.
- Calibración de sensores.
- Procesamiento de señales mediante software.
Construir un detector de corriente con ESP32 y SCT-013 es una de esas pequeñas ideas que terminan convirtiéndose en proyectos mucho más interesantes.
Con una placa ESP32 y una pinza amperimétrica podemos observar la corriente de una carga sin tener que cortar el cable ni realizar una conexión eléctrica directa con el conductor.
La primera versión es sencilla: SCT-013 → ADC del ESP32 → cálculo RMS → corriente en amperios.
Pero a partir de ahí podemos añadir una pantalla, Wi-Fi, almacenamiento de datos y gráficos hasta convertirlo en un verdadero sistema de monitorización energética.
Y lo mejor es que el mismo circuito que construyes para aprender puede convertirse en la base de un proyecto IoT mucho más avanzado.


.webp)

