Saltar al contenido
Cursos Ladetec

2020 – 2021Prototipo

Metrocontador de energía

Medidor de consumo eléctrico sobre un STM32: mide tensión y corriente eficaces reales, calcula potencia y factor de potencia, y guarda los kWh acumulados en memoria no volátil para que un apagón no se lleve la cuenta.

Un multímetro Fluke marca 115.1 V y, al lado, el medidor sobre protoboard muestra en su pantalla OLED la misma cifra, 115.1 Vrms, con la forma de onda de la red dibujada encima
La comprobación: el multímetro de referencia marca 115,1 V y el medidor, 115,1 Vrms. La onda dibujada arriba es la ventana de muestras, achatada en los picos — así llega la red, no como la senoidal del libro.
Placa STM32 y dos módulos montados sobre una placa perforada, con una pantalla OLED encendida que muestra 111 V, 1.0 A, 75 W, 34.6 C y 000.27 mAh
Ya fuera de la protoboard: el mismo circuito soldado en placa perforada, midiendo 111 V, 1,0 A y 75 W.
Diagrama de conexiones en protoboard: placa STM32F103, módulo de sensor de corriente de efecto Hall, divisor resistivo de tensión, condensadores electrolíticos y pantalla OLED conectada por I²C
Las conexiones del medidor: el sensor de corriente arriba a la derecha, el divisor de tensión sobre la protoboard, el STM32 y la pantalla OLED por I²C.

Un medidor de energía se juega todo en dos cosas: medir el valor eficaz de verdad y no perder la cuenta. Lo primero porque la carga de una casa no consume una senoidal limpia — fuentes conmutadas, motores, cargadores — y un promedio simple de la corriente miente sobre lo que se está pagando. Lo segundo porque un contador que se pone a cero cada vez que parpadea la luz no cuenta nada.

El hardware es un sensor de corriente de efecto Hall ACS712, un divisor resistivo para la tensión de red, una placa STM32F103 con convertidor de 12 bits y una pantalla OLED por I²C. Se desarrolló sobre protoboard, y el montaje que quedó midiendo pasó a una placa perforada.

El firmware toma 128 muestras por ventana, una cada 150 µs — unos 19 ms, del orden de un ciclo de la red — y promedia 50 ventanas antes de refrescar la pantalla y sumar energía. De ahí salen tensión eficaz, corriente eficaz, potencia real y factor de potencia, y la pantalla dibuja además la ventana de muestras: se ve la onda real de la red, achatada en los picos. El cálculo RMS se apoya en la librería TrueRMS (M. Stokroos, licencia MIT), con la adaptación a STM32 de Matthias Diro.

La energía acumulada se guarda como entero de 32 bits — kWh multiplicados por 10 000 — partido en dos palabras de 16 bits en la EEPROM emulada sobre la flash del microcontrolador. Escribe una vez por hora y, además, cuando la tensión eficaz cae por debajo de 80 V: eso es la luz yéndose, y hay que escribir antes de quedarse sin alimentación. Ese guardado no se arma hasta cinco segundos después del arranque, para no grabar basura mientras las lecturas se asientan. Un watchdog independiente reinicia la placa si el lazo se cuelga.

La calibración es la parte que decide si la cifra sirve de algo: diez puntos de tensión entre 92 y 131 V y nueve de corriente, medidos contra un instrumento de referencia, y una recta ajustada por mínimos cuadrados en Python con NumPy y Matplotlib. Las dos pendientes entran al firmware como constantes. Sin ese paso, un medidor es un generador de números bonitos; con él, el medidor y el multímetro de referencia marcan los mismos 115,1 V, que es la primera foto de arriba.

Lo que no hace

  • No comunica: la lectura se ve en la pantalla y no sale del aparato.
  • Una sola fase: un canal de tensión y uno de corriente.
  • No es un instrumento certificado. La exactitud es la de su calibración contra un medidor de referencia.

Proyecto de casa, no producto: mide y está comprobado contra un multímetro, pero se quedó en placa perforada, sin caja ni bornes fijos.

Código →