Home»Desarrollos»Medidor de consumo. Lectura de la corriente con Arduino

Medidor de consumo. Lectura de la corriente con Arduino

1
Shares
Pinterest WhatsApp

En este capítulo veremos como conectar la pinza amperímetra al arduino gracias al pequeño adaptador que construimos en el artículo anterior. Después, realizaremos un pequeño programa para probar todo nuestro montaje. Este pequeño programa los iremos mejorando hasta realizar el envío del consumo a un servidor para poder ir registrando las lecturas.

Conexión de la pinza amperímetra

Para conectar IMG_20151207_124054la pinza amperímetra al arduino deberemos primer dar corriente al adaptador. En el artículo donde construimos el adaptador marcamos 3 conectores: +,- y OUT. Conectaremos el «+» al pin 5V del arduino, el conector «-» lo conectaremos a «GND» y por último, el conector OUT a la entrada analógica A1.

No debemos olvidar que nuestra pinza permitirá realizar lecturas analógicas, con lo que debemos conectar la salida del adaptador a una de las entradas analógicas disponibles en el Arduino, no a una digital.

Solo nos queda conectar la pinza al jack del adaptador y ya tendremos todo preparado.

Hay que poner especial cuidado en la polaridad +/- del adaptador. Al tener un condensador electrolítico, un error en la polaridad hará que pase a mejor vida y tengamos que reemplazarlo.

 

Comprobación del funcionamiento

Vamos a programar el arduino con una primera versión del medidor de consumo para verificar las conexiones de nuestro montaje y probar la librería EmonLib que utilizaremos para obtener las lecturas.

  • Lo primero que debemos hacer es descargar la librería EmonLib del siguiente enlace  https://github.com/openenergymonitor/EmonLib y añadirla a la carpeta de librerías de nuestro Arduino IDE. Cerraremos y abriremos el IDE para que ya tengamos disponible la nueva librería.
  • Crearemos un nuevo proyecto y copiaremos el siguiente código fuente:
    #include <emonlib .h>;                    // Incluimos Emon Library
     
    EnergyMonitor emon1;                   // Creamos la instancia de la librería
     
    void setup() {
      Serial.begin(9600);
      emon1.current(1, 60.60);             // Inicializamos la librería: input pin, calibration.
    }
     
    void loop() {
      double Irms = emon1.calcIrms(1480);  // Calculamos el irms
     
      if(Irms &lt;0.20) Irms = 0.0;
     
      Serial.print(" Consumo: ");
      Serial.println(Irms*230);
     
    } 
     
    </emonlib>
  • Programaremos el arduino, como ya hemos visto en el anterior artículo, y conectaremos la pinza amperímetra para comprobar el funcionamiento.
  • Una vez inicie el arduino, podremos ver en la consola la corriente que está circulando por el cable. Para acceder a la consola deberemeos ir a «Herramientas->Monitor Serie» y seleccionar la misma velocidad que tengamos en nuestro programa. En el ejemplo, 9600 baudios.
    consola

 

Ahora veremos en detalle cada una de las partes del programa

  • En la parte de inclusión de ficheros de cabecera, tendremos que añadir la librería EmonLib.h
    #include <emonlib .h></emonlib>
  • En el método «setup» del programa inicializaremos la librería indicando el pin analógico donde hemos conectado la pinza (en el ejemplo en pin A1) y el valor de calibración.
    emon1.current(1, 60.60);

    El valor de calibración va a depender de la pinza que hayamos conectado:

    • SCT030-015 : 29
    • SCT030-000: 60.60

    Para el caso del medidor SCT030-00, el valor de 60.60 viene de la siguiente fórmula:

    (100A/50mA)/33 = 60.60

    La pinza amperímetra realiza una transformación de 100A a 50mA y hemos puesto en nuestro adaptador una resistencia «burden» de 33Ω.

  • En el método «loop» iremos realizando las lectura de la pinza y monstrándola por la consola.
    La pinza amperímetra devuelve valores positivos aunque no esté pasando corriente por el cable, esto se denomina ruido y es común en los sensores analógicos, con lo que asumiremos que el valor de la lectura es 0A si es menor de 0.20 para la pinza de 100A y 0.08 para la de 15A. Estos valores tendremos que ajustarlos a nuestro montaje.
    Aquí ya estamos viendo como la pinza  SCT030-015 es más precisa y es suficiente para medir el consumo de una casa.

      double Irms = emon1.calcIrms(1480);  // Obtenemos el irms
     
      if(Irms &lt;0.20) Irms = 0.0;
  • El valor Irms lo multiplicaremos por 230V para obtener el consumo.
      Serial.print(" Consumo: ");
      Serial.println(Irms*230);

 

Es recomendable probar todo el montaje con una bombilla o algún pequeño aparato que conozcamos su consumo. Si por consola vemos valores demasiado elevados o que no corresponden al consumo esperado, deberemos revisar todo el montaje para ver si no ha quedado nada suelto. Una vez que tengamos lecturas correctas, podremos ir ajustando los valores de calibración y límite.

Por último, un pequeño vídeo con el montaje funcionando. Se ha conectado una bombilla de 60W para ver como se refleja en la consola el consumo al encender y apagar el interruptor. Como podéis ver, con la pinza SCT030-000 de 100A el error que marca para pequeños consumos es elevado.

Previous post

Medidor de consumo con Arduino. El corazón del proyecto

Next post

Medidor de consumo. Conectamos a Internet

1 Comment

  1. Mateo
    15 marzo, 2017 at 12:54 pm — Responder

    Porque cuando obtienes el valor de Irms en:
    double Irms = emon1.calcIrms(1480); // Obtenemos el irms
    se indica en la función calcIrms que el número de muestras es de 1480; ese número porque precisamente. Es decir porque 1480 y no otro ????

Leave a reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *