Download Tutorial - Olimex Chile

Document related concepts
no text concepts found
Transcript
Tutorial
[Arduino Energy Shield]
Rev. [1.0]
MCI-TU-0003
INGENIERÍA MCI LTDA.
Luis Thayer Ojeda 0115. Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 2 of 38
TUTORIAL
MCI Ltda.
Luis Thayer Ojeda 0115. Oficina 1105
Santiago, Chile
www.olimex.cl
Tel: +56 2 23339579
Fax: +56 2 23350589
® MCI Ltda. 2013
Desarrollado por Cesar Muñoz para MCI
Atención: Cambios y modificaciones hechas en el dispositivo, no autorizados expresamente por
MCI, anularán su garantía.
Código Manual: MCI – TU – 0003
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 3 of 38
TUTORIAL
Tabla de Contenidos
Descripción .......................................................................................................................................... 4
Recursos Necesarios............................................................................................................................ 5
Configuraciones y Esquema Eléctrico ................................................................................................. 6
Conexionado ................................................................................................................................... 6
Procedimiento de Armado .................................................................................................................. 8
Procedimiento de Ejecución del experimento ................................................................................ 8
Instalar XCTU ................................................................................................................................. 10
Instalar Xbee Explorer USB............................................................................................................ 10
Configurar los módulos Xbee ........................................................................................................ 11
Como configurar la red Xbee Serie 1............................................................................................. 13
Como configurar la red Xbee Serie 2............................................................................................. 16
Como programar la tarjeta Arduino Energy Shield ........................................................................... 19
Instalar plataforma Arduino .......................................................................................................... 20
Bajar el Código fuente ................................................................................................................... 21
Compilar y Cargar .......................................................................................................................... 21
Extra 1: Introducción a Sistemas Electromecánicos...................................................................... 26
Cómo medir el consumo de un equipo usando la tarjeta Arduino Energy Shield ............................ 32
ANEXO 1: ........................................................................................................................................... 35
Como modificar el código y algunos tips sobre su implementación............................................. 35
Relación de vueltas del transformador de voltaje (referencia de cruce por cero) ....................... 36
Numero de vueltas del cable de medición de corriente ............................................................... 37
Como modificar el cruce por cero y dejar el chip en lazo abierto ................................................ 38
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 4 of 38
TUTORIAL
Descripción
La tarjeta Arduino Energy Shield nos permite medir el nivel de consumo eléctrico de cualquier
dispositivo conectado a la red domiciliaria, a través de un sencillo conexionado.
Por medio de esta plataforma se puede monitorear un dispositivo eléctrico y enviar los datos
medidos a través de una interfaz serial y/o comunicar todo por la red Zigbee usando los módulos
Xbee Serie 1 (para comunicación punto a punto), o mediante una red distribuida (mesh) usando
los módulos Xbee Serie 2.
Además se puede incorporar una pantalla LCD para desplegar las mediciones en forma local y
crear un sistema de medición de características profesionales.
Entre las ventajas que presenta esta tarjeta podemos mencionar: la capacidad de usar las librerías
Arduino, el monitoreo en tiempo real de variables por medio de una red inalámbrica, el monitoreo
constante de los valores medidos a través de la pantalla LCD.
Las limitaciones de esta tarjeta son que no permite el uso de los pines de la tarjeta Arduino de
manera directa, sin embargo es bastante fácil acceder a ellos por medio de un conector
intermedio o a través de cables. Además debemos tener en cuenta que las mediciones realizadas
son referenciales y representan una aproximación de los valores reales que se están midiendo. De
todas formas, los resultados nos entregarán información suficientemente certera para tomar
decisiones y a un costo muy reducido de las alternativas de mercado.
La tarjeta Arduino Energy Shield cuenta con las siguientes características:
Entrada para sensor de Voltaje
Entrada para sensor de Corriente
Reloj de Tiempo Real
Comunicación inalámbrica
Socket para XBee
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 5 of 38
TUTORIAL
Recursos Necesarios
Arduino Energy Shield
Arduino UNO o Arduino Leonardo
Xbee Explorer USB
2 Xbee ‘Serie 1’ o ‘Serie 2’
GLCD con interfaz serializada
Programas
Arduino
XCTU1 (www.digi.com ->Support -> XCTU)
Driver FTDI2
Putty o Hércules (para manejar el puerto serie)
PC O Notebook
1
Es conveniente asegurarse que la versión que vayamos a instalar sea una reciente o actualizada.
2
Solo para Windows 7, las versiones anteriores de Windows pueden encontrar el driver de manera
automática en Windows Update.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 6 of 38
TUTORIAL
Configuraciones y Esquema Eléctrico
En esta sección describiremos como realizar el conexionado completo.
Conexionado
El siguiente diagrama describe la tarjeta Arduino Energy Shield de manera esquemática, en ella
indicaremos donde debemos conectar los sensores para realizar las mediciones de consumo.
En cada uno de los sectores marcados, encontramos:
N°
1
2
3
4
5
6
Descripción
Arduino Energy Shield
Arduino UNO (montada con la anterior)
Transformador (220/12 VAC)
Sensor de Corriente
Enchufe macho (a red eléctrica)
Enchufe hembra (dispositivo a medir)
1
2
6
3
4
5
A LA RED ELECTRICA
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 7 of 38
TUTORIAL
La razón por la cual debemos conectar el circuito a la red eléctrica se debe a que el chip que
realiza las mediciones de energía y cálculos de potencia necesita tener una referencia contra que
medir, para nuestro caso esto se realiza cada vez que la onda eléctrica cruza el cero, con lo cual se
miden los ciclos. Así, para realizar una medición de 50 ciclos (o 1 segundo para una red eléctrica de
50 [Hz]), se necesitan medir 100 cruces por cero*.
*Recordar que un periodo completo tiene dos cruces por cero, uno que define la parte donde la
onda se encuentra por sobre el cero y el otro que define la parte donde la onda está por debajo
del cero.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 8 of 38
TUTORIAL
Procedimiento de Armado
Procedimiento de Ejecución del experimento
Nuestro experimento completo incluye el uso de un GLCD con interfaz serializada y de un módulo
de transmisión inalámbrico Xbee, con lo cual podemos realizar un monitoreo local y/o remoto: por
ejemplo podemos centralizar el monitoreo de diversas unidades de congelamiento en una oficina
central, o colocar el visor GLCD de un camión frigorífico en la cabina.
Si se desea pasar directo a la sección de las mediciones, solo debemos ir a la sección “Mediciones”.
XBEE
Si hemos optado por hacer uso de Xbee, debemos realizar la configuración de nuestros
dispositivos de comunicación Módulos Xbee Serie 1 o Xbee Serie 2. Según sea la elección que se
haya hecho se debemos proseguir en la sección que corresponda (las que siguen a continuación).
RTC (Real Time Clock)
Una parte importante de la operación de la tarjeta, es configurar el RTC. Para esto, debemos ir a la
página de la tarjeta Arduino Energy Shield y descargar el código llamado ‘DemoConfigureRTC’. El
procedimiento de carga es el mismo que usaremos para subir el código del presente tutorial a la
tarjeta Arduino Energy Shield y que se describe a continuación; una vez que tengamos cargado el
código para configurar el RTC se desplegará un menú en la consola serial que nos permitirá
ingresar la fecha y hora.
CONECTAR EL LCD
Para conectar el LCD haremos uso de la interfaz SoftwareSerial de la plataforma Arduino, con lo
cual deberemos conectar nuestra tarjeta Arduino (UNO R3 o Leonardo) hacia el GLCD Backpack,
solo necesitaremos un pin (TX de la tarjeta Arduino conectado al RX del GLCD Backpack). Para el
caso de nuestro ejemplo se ha seleccionado el PIN 8 para este trabajo. Debido a las restricciones
propias del diseño, esta conexión deberemos realizarla por medio de algún cable o algún otro tipo
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 9 of 38
TUTORIAL
de intervención (para una instalación permanente es una buena opción soldar un cable al pin, y
recubrirlo con termoretráctil, para mayor resistencia mecánica).
*Como no usaremos el PIN RX en la tarjeta Arduino (el GLCD Backpack no tiene TX), podemos asignar el valor
0 a ese pin cuando definamos nuestra interfaz SoftwareSerial, con lo cual dejamos un pin más disponible
para otros propósitos.
La relación del transformador es importante al momento de realizar las mediciones, en este caso
se ha usado una conversión de 220/12 [VAC], aunque esto es modificable en el código si se opta
por algún otro tipo de transformador. (Ver sección Anexo 1, al final del presente manual).
Una vez realizados los procedimientos anteriores, continuaremos con la programación de la
tarjeta Arduino Energy Shield, por medio de la plataforma Arduino.
ES IMPORTANTE RECORDAR QUE LAS MEDICIONES REALIZADAS POR LA
TARJETA ARDUINO ENERGY SHIELD SON MEDIDAS REFERENCIALES Y NOS
ENTREGAN UNA BUENA APROXIMACIÓN A LOS VALORES REALES
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 10 of 38
TUTORIAL
Instalar XCTU
La instalación de la plataforma XCTU es bastante simple, si bien puede tomar una cantidad de
tiempo considerable dado que el programa bajará los firmwares actualizados para los diferentes
módems que puede manejar. Una vez realizado el proceso de instalación nos encontraremos con
la siguiente interfaz.
El manejo del programa es muy simple, si bien nos presenta muchas opciones solo debemos usar
una cantidad muy limitada de ellas.
Instalar Xbee Explorer USB
Antes de continuar, debemos tener instalado el Xbee Explorer USB, el cual nos permitirá
configurar y operar el módem Xbee desde nuestro PC. Simplemente debemos poner el modem
‘Xbee’ en el ‘Xbee Explorer USB’ y enchufar el puerto USB a nuestro computador, para las
versiones de Windows Vista y anteriores, los drivers serán instalados de manera automática. Para
Windows 7 debemos realizar el proceso de instalación de los drivers de manera manual desde el
administrador de dispositivos.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 11 of 38
TUTORIAL
Configurar los módulos Xbee
Una vez realizado el proceso de instalación del ‘Xbee Explorer USB’ deberemos abrir nuevamente
el XCTU y veremos como el puerto que acabamos de instalar aparece en la lista de puertos COM.
Para asegurarnos que todo está operativo, podemos presionar el botón “Test/Query” y se
desplegará una pequeña ventana con la información de nuestro módulo Xbee.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 12 of 38
TUTORIAL
Para configurar el módulo Xbee debemos acceder a la pestaña “Modem Configuration” y presionar
el botón “Read” con lo cual se leerán los parámetros del modem que tenemos conectado.
Ahora, debemos seguir en la sección correspondiente al tipo de módulo que hayamos adquirido
(Serie 1 o Serie 2).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 13 of 38
TUTORIAL
Como configurar la red Xbee Serie 1
En la imagen podemos encontrar la configuración básica de un módulo Xbee Serie 1.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 14 of 38
TUTORIAL
En las siguientes tablas, podemos encontrar la descripción de los campos y los valores que
debemos asignar a cada uno de ellos para configurar los Xbee Serie 1 en “modo transparente” o
en una conexión punto a punto.
Indicador
DH
DL
MY
ID
SH
SL
CE
Nombre
Destination Address High
Destination Address Low
16-bit Source Address
PAN ID
Serial Number High
Serial Number Low
Coordinator Enable
A continuación se muestra un ejemplo de cómo se deben de configurar los dos módulos:
XBee A Valores
DH 13A200
DL 4076E267
MY AAAA
SH 13A200 (viene por defecto)
SL 4076E26E (viene por defecto)
CE 1 -Coordinator
XBee B Valores
DH 13A200
DL 4076E26E
MY AAAA
SH 13A200 (viene por defecto)
SL 4076E267 (viene por defecto)
CE 0 -End Device Serie 1 Pro
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 15 of 38
TUTORIAL
Existen otras formas de configurar una red Xbee, la anterior es una forma fácil que solo involucra
dos módems; aunque en todas ellas debemos asegurarnos que se comparta el mismo identificador
de la red (PAN ID), pues este valor nos permite diferenciar redes que se encuentren cercanas y
descarta cualquier recepción que no corresponda con el valor PAN ID de nuestro modem.
Si deseamos conectar 3 nodos, podemos optar por una forma fácil donde todos se escuchen entre
ellos, algo que es similar a una red tipo bus. Para ello, optaremos por hacer un broadcast desde
cada uno de los Xbee Serie 1 configurándolos de la siguiente forma:
XBee A
DH 0
DL FFFF
MY 0
PAN ID 8888
SH (viene por defecto)
SL (viene por defecto)
CE 1 -Coordinator
XBee B
DH 0
DL FFFF
MY 0
PAN ID 8888
SH (viene por defecto)
SL (viene por defecto)
CE 0 -End Device
Xbee C (o cualquier otro)
DH 0
DL FFFF
MY 0
PAN ID 8888
SH (viene por defecto)
SL (viene por defecto)
CE 0 -End Device
Para usar esta red, debemos hacer un pequeño protocolo por software, que envié un identificador
desde cada módem y que se tomen acciones por cada uno de estos identificadores (y aquellos que
no sean dirigidos al módem involucrado deben ser descartados).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 16 of 38
TUTORIAL
Como configurar la red Xbee Serie 2
En la imagen podemos encontrar la configuración básica de un módulo Xbee Serie 2, no hay
muchas diferencias en su forma básica de configuración con la Serie 1, si bien en esta versión
encontraremos más campos y una distribución un poco diferente de los mismos.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 17 of 38
TUTORIAL
En las siguientes tablas, podemos encontrar la descripción de los campos y los valores que
debemos asignar a cada uno para configurar los Xbee Serie 2 en “modo transparente” o en una
conexión punto a punto
Indicador
DH
DL
MY
SH
SL
PAN ID
Nombre
Destination Address High
Destination Address Low
16-bit Network Address
Serial Number High
Serial Number Low
Operating PAN ID
A continuación se muestra un ejemplo de cómo se deben de configurar las dos módulos
XBee A Valores
DH 13A200
DL 4076E267
MY AAAA
PAN ID 234
SH 13A200 (viene por defecto)
SL 4076E26E (viene por defecto)
XBee B Valores
DH 13A200
DL 4076E26E
MY AAAA
PAN ID 234
SH 13A200 (viene por defecto)
SL 4076E267 (viene por defecto)
La ventaja de los módems Xbee Serie 2, es que se pueden configurar redes más completas (tipo
mesh). Esto nos brinda la ventaja de poder tener redes que abarquen zonas geográficas mucho
más amplias que con la serie 1, si bien estas redes son mucho más complejas.
Acá se entrega una pequeña descripción de cómo configurar una red Xbee Serie 2 con más de dos
dispositivos:
Punto a multipunto:
Una conexión punto a multipunto es óptima cuando se requiere enviar información de manera
controlada a uno o varios nodos a la misma vez, lo cual lo diferencia de una broadcast.
Solo basta con utilizar el método de una red punto a punto para la transmisión a un nodo, para
realizar la transmisión a varios nodos a la vez solo basta con utilizar como dirección destino
0xFFFF.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 18 of 38
TUTORIAL
Es importante tener en cuenta que se debe configurar el módulo Xbee en la misma dirección PAN
y el mismo canal de comunicación: recuerde que la Xbee tiene 16 canales de comunicación.
Red Broadcast
Esta red se diferencia de las demás en que todos los nodos tienen la dirección broadcast
configurada lo que implica que los datos son recibidos hacia y por todos los nodos de la red. La
dirección broadcast es DH=0x00000000 DL=0x0000FFFF.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 19 of 38
TUTORIAL
Como programar la tarjeta Arduino Energy Shield
Para programar la nuestra plataforma debemos montar la tarjeta Arduino Energy Shield junto con
la tarjeta Arduino seleccionada. Las plataformas Arduino UNO R3 y Arduino Leonardo tienen los
módulos de programación incorporados en la placa, por lo cual solo debemos conectarla a través
de un Cable USB para su programación.
Es apropiado conectar la tarjeta a una fuente de energía externa, pues el consumo
de la Arduino Energy Shield puede afectar el proceso de programación.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 20 of 38
TUTORIAL
Instalar plataforma Arduino
La instalación de la plataforma Arduino es muy sencilla, simplemente debemos bajarlo desde el
sitio de Arduino (acá) y descomprimirlo en una carpeta. Luego ejecuta “Arduino.exe” y ya está
operativo!
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 21 of 38
TUTORIAL
Bajar el Código fuente
El código fuente de nuestro ejemplo lo podemos obtener desde el sitio de la tarjeta Arduino
Energy Shield. Debemos descomprimirlo en un lugar de nuestra elección para acceder a él en la
siguiente sección.
Compilar y Cargar
Lo primero, es identificar el modelo de la tarjeta o su compatibilidad, que para nuestro caso es
compatible con “Arduino Uno” o “Arduino Leonardo”.
En el caso de Arduino el código fuente está escrito en lenguaje C, pero de manera simplificada
pues solo se deben escribir dos funciones principales - Setup() y loop() - y si lo deseamos,
podemos definir algunas funciones auxiliares, estos códigos se llaman “Sketch”.
En la página de Arduino podemos encontrar mucha información de cómo utilizar la plataforma,
además de una extensa documentación sobre el uso de las librerías que incorpora la plataforma y
que la convierten en una de las más populares para desarrollo.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 22 of 38
TUTORIAL
Para cargar el código en la tarjeta Arduino Energy Shield debemos seguir el siguiente
procedimiento (mismo proceso a seguir para cargar cualquier código).
Seleccionar el Microcontrolador compatible (Arduino Uno o Arduino Leonardo)
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 23 of 38
TUTORIAL
Seleccionar el puerto asignado al Módulo FTDI (esto varía según la propia instalación, el puerto
indicado es solo referencial).
Se puede observar en la parte inferior de la ventana el modelo de tarjeta elegida y el puerto en el
cual se encuentra conectado el módulo FTDI (esto es muy útil cuando estamos trabajando con
diversos modelos de tarjetas).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 24 of 38
TUTORIAL
Una vez hecho esto, abrimos el código que bajamos en la sección previa y deberá verse algo así:
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 25 of 38
TUTORIAL
Una vez realizado lo anterior, debemos compilar nuestro proyecto: para ello presionamos el botón
de la parte superior izquierda, marcado en rojo en la siguiente imagen.
Una vez que hayamos completado el proceso de compilación, debemos cargar nuestro proyecto a
la tarjeta Arduino Energy Shield. Junto al botón compilador (al lado derecho) encontraremos el
botón Cargar.
Una vez terminado el proceso, el programa empezará a correr automáticamente.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 26 of 38
TUTORIAL
Extra 1: Introducción a Sistemas Electromecánicos
Diferencia entre energía y potencia
Todos los seres vivos y la mayoría de las cosas que usamos en nuestra vida cotidiana requieren
energía. Los aviones, trenes y coches con los que nos desplazamos, la calefacción que hace
habitables nuestras casas en invierno, nuestros cuerpos, incluso sin realizar ninguna actividad,
todo consume energía ya sea en su uso o en su fabricación.
En física, ‘energía' se define como la capacidad para realizar un trabajo. Sin embargo, en la vida de
todos los días, ‘energía' se refiere a un recurso natural -que suele requerir una tecnología
asociada - para extraerla, transformarla, y luego darle un uso.
La energía se obtiene a partir de diversas fuentes. El criterio más habitual para diferenciar los tipos
de energía es el carácter limitado o no renovable – como petróleo, carbón o gas natural-, o si su
procedencia es de fuentes renovables - por ejemplo, solar, eólica, o biomasa.
Pero ¿cuál es la diferencia entre potencia y energía?
Si nos fijamos en aparatos que usamos en nuestra vida diaria como, por ejemplo, una bombilla, un
equipo de aire acondicionado o un secador, todos ellos consumen energía eléctrica y la
transforman en un trabajo útil: iluminar, enfriar o secar. En las etiquetas de estos dispositivos
podemos leer su potencia, normalmente indicada en watt (W), y esto nos indica la velocidad a la
que consumen la energía.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 27 of 38
TUTORIAL
La energía consumida por un equipo se calcula multiplicando la potencia del aparato por el
tiempo de funcionamiento y se mide en watt-hora (Wh).
Por ejemplo, veamos un cálculo del consumo de energía a partir de la potencia: supongamos que
tenemos una lámpara de bajo consumo de 18 W de potencia, su consumo a lo largo de un día sería
18 W multiplicado por 24 horas, es decir, 432 Wh de energía.
La unidad Wh es una unidad artificial, que es equivalente a la unidad de energía Joule.
Manejar este concepto tiene utilidad práctica
A diario nos encontramos con esta diferenciación entre potencia y energía:
- Suele figurar en nuestra cuenta de electricidad cuando se nos indica "potencia contratada", es
aquella cantidad de energía que se nos reserva, es decir, a la que tenemos derecho por contrato.
- Mientras que el "consumo de energía" es aquella que realmente hemos consumido en el periodo
de tiempo al que se refiere el recibo y está controlada por un contador.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 28 of 38
TUTORIAL
Unidades de medida de la Potencia
En un circuito AC, la potencia es más eficiente cuando la corriente está en fase con el voltaje.
Sin embargo, la mayoría de los equipos tienden a extraer la corriente con un retardo,
desfasándose con la onda de voltaje. Esto se traduce en que más corriente está siendo consumida
para suministrar la cantidad necesaria de energía para hacer funcionar el equipo. Y cuanta más
corriente consume un equipo con algún retardo, menos eficiente es el equipo.
El factor de potencia es una forma de medir la eficiencia con que la energía eléctrica se utiliza en el
sistema eléctrico de una instalación, a través del análisis de los componentes de energía eléctrica
en un circuito AC. Estos componentes se conocen como potencia real, potencia aparente y
potencia reactiva:
• La potencia real (W) – la potencia que realiza trabajo y que se utiliza para mover el equipo. Su
unidad de medida es Watts (W).
• La potencia aparente (VA) - la combinación de la potencia real y potencia reactiva. Su unidad de
medida es “Volt-Ampere” (VA).
• Potencia reactiva (var) – la potencia producida/consumida que no realiza trabajo, se requiere
para magnetizar y poner en marcha el equipo. Su unidad de medida es “Volt-Ampere Reactivo”
(var).
*Debemos tener en cuenta que lo anterior es una definición simplificada de los conceptos expuestos.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 29 of 38
TUTORIAL
El triángulo de Potencia
Los conceptos de Potencial Real o Activa (P), Potencia Aparente (S) y Potencia Reactiva (Q) se
pueden representar gráficamente como vemos en la figura superior.
En general, encontraremos estos términos referidos con sus letras PSQ en la mayoría de los
sistemas de medición que hay en el mercado.
El Factor de Potencia
Como se mencionó antes, el ángulo de este "triángulo de potencia" indica gráficamente la relación
entre la cantidad de potencia disipada y la cantidad de potencia absorbida / devuelta. También
pasa a ser el mismo ángulo que el de la impedancia del circuito en su representación en
coordenadas polares. Cuando se expresa como una fracción, esta relación entre la potencia real y
la potencia aparente se llama “factor de potencia” para este circuito. Debido a que la verdadera
potencia y la potencia aparente forman los lados adyacentes y la hipotenusa de un triángulo
rectángulo, respectivamente, la relación del factor de potencia es también igual al coseno de ese
ángulo de fase.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 30 of 38
TUTORIAL
Utilizando algunos valores de ejemplo:
Debe tenerse en cuenta que el factor de potencia, como todas las mediciones de relación, es una
cantidad adimensional.
Para un circuito puramente resistivo, el factor de potencia es 1 (perfecto), porque la potencia
reactiva es igual a cero. Aquí, el triángulo de poder se vería como una línea horizontal, porque el
lado contrario (potencia reactiva) tendría una longitud cero.
Para un circuito puramente inductivo, el factor de potencia es cero, porque la potencia activa es
igual a cero. Aquí, el triángulo de potencia se vería como una línea vertical, porque el lado
adyacente (la potencia activa) tendría longitud cero.
Lo mismo podría decirse de un circuito puramente capacitivo. Si no hay componentes disipativos
(resistivos) en el circuito, entonces la potencia real debe ser igual a cero, por lo que cualquier
potencia en el circuito es puramente reactiva. El triángulo de potencia para un circuito puramente
capacitivo de nuevo sería una línea vertical (apuntando hacia abajo en lugar de hacia arriba como
lo fue para el circuito puramente inductivo).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 31 of 38
TUTORIAL
El factor de potencia debe ser un aspecto importante a considerar en un circuito de AC, ya que
cualquier factor de potencia menor que 1 significa que el cableado del circuito tiene que
transportar más corriente de lo que sería necesario con cero reactancias en el circuito para
suministrar la misma cantidad de potencia real a la carga resistiva.
Un factor de potencia pobre genera un sistema ineficiente
Un factor de potencia ineficiente se puede corregir, paradójicamente, mediante la adición de una
nueva carga para el circuito de una cantidad igual y opuesta a la potencia reactiva, para anular los
efectos de la reactancia de la carga. La reactancia inductiva sólo se puede cancelar con una
reactancia capacitiva, por lo que hay que añadir un condensador en paralelo a nuestro circuito
como carga adicional (y viceversa).
El efecto de estas dos reactancias opuestas en paralelo es lograr que la impedancia total del
circuito sea igual a su resistencia total (para hacer que el ángulo de fase sea igual, o al menos
cercana a cero).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 32 of 38
TUTORIAL
Cómo medir el consumo de un equipo usando la tarjeta
Arduino Energy Shield
Una vez que hayamos realizado los pasos previos, y teniendo en cuenta las definiciones del
capítulo anterior, podemos realizar las mediciones usando nuestro circuito.
En este punto, ya deberíamos tener el circuito armado y conectado a la red eléctrica (sin haber
conectado el equipo a medir aun). Esto es de vital importancia pues el chip necesita tener una
referencia para realizar las mediciones (paso por cero de la onda de voltaje).
Si todo marcha en orden, deberíamos tener las mediciones iniciales en cualquiera de nuestras
salidas:
CONSOLA SERIAL
* Se ha detectado un problema intermitente en los controladores de Windows 7, que bloquea la consola serial de
Arduino cuando se realiza un cambio en la carga o dispositivo a medir. Si se presenta este comportamiento, se
recomienda reiniciar el controlador USB (reconectando) o usar otra consola Serial (como Putty o Hércules).
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 33 of 38
TUTORIAL
GLCD
Consola XBEE
++
Como vemos, en todas nuestras salidas podemos observar los mismos valores iniciales (similares),
en este punto el más importante es el valor del voltaje medido desde la red eléctrica el cual para
Chile debe ser cercano a los 220 [V] con una frecuencia de 50[Hz] o un periodo de 20 [ms].
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 34 of 38
TUTORIAL
No debemos olvidar dos factores importantes:
LOS VALORES PRESENTADOS SON REFERENCIALES
SIEMPRE DEBEMOS TENER CONECTADA LA REFERENCIA DE LA RED ELECTRICA
Ahora, debemos conectar un equipo que consuma energía eléctrica al enchufe hembra disponible
en nuestro circuito (marcado como LOAD).
A LA RED ELECTRICA
Hecho lo anterior, ya solo nos queda realizar las mediciones o hacer nuestra instalación del
sistema de monitoreo !
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 35 of 38
TUTORIAL
ANEXO 1
Como modificar el código y algunos tips sobre su implementación
La siguiente sección describe algunos números mágicos o constantes de proporcionalidad que se
encuentran en la implementación del código. Las constantes de proporcionalidad usadas, son
derivadas de las características propias del chip medidor de energía ADE7753 y de los criterios de
diseño del hardware. En este último se han usado atenuadores para adaptar las entradas
esperadas por el chip, lo cual influye en las mediciones finales realizadas.
*El chip espera que sus entradas análogas no superen los 2.5 [V], por lo cual es imprescindible el adaptar las
entradas desde la red eléctrica.
Archivo: DemoTutorial.ino
Línea 88 -91
kv = (ratioTraf)*VOLTDIV*(0.5/0x2851EC); //(0.5/0x2851EC) From Datasheet
ki = CURRDIV*(0.5/0x17D338); //(0.5/0x17D338) From Datasheet
ke = (10/16.0)*VOLTDIV*CURRDIV/4096.0; // 1/(2^12)
basetime = (1.0*NUMCYC)/100.0; // tiempo por el cual se acumula energia
kt=CLKIN/8; //period register, resolution x.y[us]/LSB -per bit-
Para acelerar el procesamiento, se pueden reemplazar estos valores por su equivalente numérico,
sin embargo se puede volver más difícil incorporar modificaciones al circuito (en sus componentes
externas o internas), y dada la ubicación de las mismas en el código su cálculo no afecta la toma de
mediciones.
También, debemos tener presente que en algunos casos será necesario reemplazar o cambiar
algunos valores, derivados de modificaciones hechas al hardware por mejoras o nuevas revisiones.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 36 of 38
TUTORIAL
Los valores derivados del diseño del hardware, los podemos encontrar en
Archivo: ADE7753.h
Línea: 128-130
#define VOLTDIV 48
//By desing, rel 1/48
#define CURRDIV 50
//By desing, rel 1/48
#define NUMCYC 20
Relación de vueltas del transformador de voltaje (referencia de cruce
por cero)
El transformador que se indica en la configuración de conexión, se utiliza para atenuar la entrada a
la tarjeta Arduino Energy Shield, la cual está diseñada para recibir 12 [V] desde la referencia de
voltaje de la red eléctrica. Internamente se tiene además un atenuador o divisor de tensión de
relación cercana a 1:50 (en la sección anterior se indica donde se encuentra y como modificarlo).
Si se usa un transformador con una relación de transformación diferente a 220:12, se debe
modificar este valor en:
Archivo: DemoTutorial.ino
Línea: 37
#define ratioTraf (220/12)
//18.3
Se debe tener presente que el circuito está diseñado para operar con una entrada en el rango de
12 [V], si se desea usar un transformador de una relación de transformación muy diferente se
deberá modificar el hardware (divisor de tensión del canal de voltaje) y reemplazar el nuevo valor
en el código fuente (VOLTDIV), esto debido a que el chip no soporta una entrada superior a los
2.5[V].
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 37 of 38
TUTORIAL
Numero de vueltas del cable de medición de corriente
En la configuración de conexionado se indica que se debe hacer pasar un único cable del circuito a
través del sensor de corriente. Por temas de diseño se ha optado por esta solución que es
bastante simple, sin embargo por temas de resistencia mecánica o mejorar la precisión en la
medición de la corriente podemos optar por enrollar el cable con más de una vuelta a través del
sensor de corriente: esto tendrá un impacto directo en la medición realizada pues el sensor de
corriente medirá N veces la corriente que pasa por el cable, siendo N el número de vueltas que se
enrolle el cable en el sensor.
Si se opta por realizar esta conexión, se debe modificar el código para incluir el número de vueltas
o atenuar las mediciones extras realizadas por el sensor de corriente.
Archivo: DemoTutorial.ino
Línea: 63
ki
= CURRDIV*(0.5/0x17D338) / N;
Donde N representa el número de vueltas que se utilizó.
Sobre esta situación, también podemos encontrarnos con sensores de corriente que ya incluyen
una relación de atenuación, y que generalmente viene indicada en el mismo sensor. Para
incorporar está atenuación en la medición debemos modificar la misma constante de medición ki,
solo que esta vez tendremos que amplificar por el radio de atenuación señalado.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl
ARDUINO ENERGY SHIELD
Page 38 of 38
TUTORIAL
Como modificar el cruce por cero y dejar el chip en lazo abierto
Una característica que puede ser útil, pero que no está recomendado usar, es quitar el cruce por
cero para realizar mediciones en situaciones muy particulares (por ejemplo, medir una onda
continua):
Sin embargo, debemos tener presente que realizar esto altera el funcionamiento del chip el cual
está diseñado para opera usando la referencia de cruce por cero.
En el datasheet del chip podemos encontrar información sobre este tópico en la sección ‘Zero
Crossing’.
Archivo: ADE7753.cpp
Línea: múltiples
El flag que debemos buscar se llama ZX y define que las funciones de medición esperen el evento
de cruce por cero de la onda de voltaje para realizar la medida.
Las funciones más comunes donde podemos realizar esta modificación se llaman getIRMS() y
getVRMS(). En ambas funciones podemos modificar la línea del ciclo while para que luzca así:
while( ! ( ADE7753::getInterruptStatus() ) )
Con esto lograremos que la medición se realice de manera directa (en lazo abierto), y ya no será
obligatorio tener la referencia de la red eléctrica para realizar las mediciones.
Luis Thayer Ojeda 0115 Of. 1105 ▪ Santiago, Chile ▪ Tel. +56 2 23339579 ▪ [email protected]
www.olimex.cl