UNIVERSIDAD DE GUAYAQUIL FACULTAD DE INGENIERÍA INDUSTRIAL CARRERA INGENIERIA EN TELEINFORMÁTICA CÁTEDRA REDES ELÉCTRICAS TEMA VATIMETRO AUTORES CEVALLOS AVILEZ IRMA ZULAY GUERRA ESPINOZA LISSETTE RAMOS GONZALEZ MADELEINE SANTAMARIA QUINTO LIZBETH TOAPANTE CHUCHUCA ADRIAN
CURSO TERCER SEMESTRE C DOCENTE ING. RODOLFO PARRA 2017 – 2018 GUAYAQUIL – ECUADOR
INTRODUCCIÓN Durante años Arduino ha sido usado como “cerebro” en miles de proyectos, cada uno más creativo que el anterior. El Arduino es una gama de circuitos eléctrico, basados la mayor parte en un microcontrolador del fabricante. Estos circuitos integran los componentes necesarios para permitir un uso rápido y sencillos del microcontrolador. Esta simplificación está orientada a hacer accesible a todos, la creación y la programación de objetos o dispositivos d ispositivos interactivos. Estos objetos pueden contener todo tipo de captores, indicadores luminosos o interruptores que queramos. Entre otros, las tarjetas Arduino están equipadas con conectores estandarizado para conectar módulos compatibles, llamados shields. Estos últimos son circuitos de un tamaño más o menos parecido al de Arduino y que se apilan sobre estos conectores. Ofrecen extensiones de hardware que permiten añadir funcionalidades originales a su proyecto. Además de estos conectores, las tarjetas tienen conectividad USB, que permiten programar fácilmente el microcontrolador que incorporan. El vatímetro por otro lado es un instrumento para le medida de la energía eléctrica, o índice de la energía eléctrica a cualquier cualquie r circuito. El término se aplica generalmente para describir una forma particular de electrodinamómetro, consistiendo en una bobina fija del alambre y de un abrazo o de una bobina vecina del alambre suspendida para ser movible. En la construcción general el instrumento se asemeja a un electrodinamómetro, la bobina fija se llama la bobina actual, y la bobina movible mov ible se llama la bobina potencial, po tencial, y cada uno u no de éstos arrolla hace sus extremos traer para separar los terminales en la base del instrumento. El principio en el cual el instrumento funciona es como sigue: Supon ga cualquier circuito, tal como un motor eléctrico, una lámpara o un transformador, está recibiendo la corriente eléctrica; entonces la energía dada a ese circuito contado en vatios es medida por el producto de la corriente que atraviesa el circuito en amperios y la diferencia potencial de los ex tremos de ese circuito en voltios, multiplicados por cierto factor llamado el factor de la energía en esos casos en los cuales el circuito sea inductivo y el alternarse actual.
INTRODUCCIÓN Durante años Arduino ha sido usado como “cerebro” en miles de proyectos, cada uno más creativo que el anterior. El Arduino es una gama de circuitos eléctrico, basados la mayor parte en un microcontrolador del fabricante. Estos circuitos integran los componentes necesarios para permitir un uso rápido y sencillos del microcontrolador. Esta simplificación está orientada a hacer accesible a todos, la creación y la programación de objetos o dispositivos d ispositivos interactivos. Estos objetos pueden contener todo tipo de captores, indicadores luminosos o interruptores que queramos. Entre otros, las tarjetas Arduino están equipadas con conectores estandarizado para conectar módulos compatibles, llamados shields. Estos últimos son circuitos de un tamaño más o menos parecido al de Arduino y que se apilan sobre estos conectores. Ofrecen extensiones de hardware que permiten añadir funcionalidades originales a su proyecto. Además de estos conectores, las tarjetas tienen conectividad USB, que permiten programar fácilmente el microcontrolador que incorporan. El vatímetro por otro lado es un instrumento para le medida de la energía eléctrica, o índice de la energía eléctrica a cualquier cualquie r circuito. El término se aplica generalmente para describir una forma particular de electrodinamómetro, consistiendo en una bobina fija del alambre y de un abrazo o de una bobina vecina del alambre suspendida para ser movible. En la construcción general el instrumento se asemeja a un electrodinamómetro, la bobina fija se llama la bobina actual, y la bobina movible mov ible se llama la bobina potencial, po tencial, y cada uno u no de éstos arrolla hace sus extremos traer para separar los terminales en la base del instrumento. El principio en el cual el instrumento funciona es como sigue: Supon ga cualquier circuito, tal como un motor eléctrico, una lámpara o un transformador, está recibiendo la corriente eléctrica; entonces la energía dada a ese circuito contado en vatios es medida por el producto de la corriente que atraviesa el circuito en amperios y la diferencia potencial de los ex tremos de ese circuito en voltios, multiplicados por cierto factor llamado el factor de la energía en esos casos en los cuales el circuito sea inductivo y el alternarse actual.
ANTECEDENTES La potencia consumida por cualquiera de las partes de un circuito se mide con un vatímetro, un instrumento parecido al electrodinamómetro. El vatímetro tiene su bobina fija dispuesta de forma que toda la corriente del circuito la atraviese, mientras que la bobina móvil se conecta en serie con una resistencia grande y sólo deja pasar una parte proporcional del voltaje de la fuente. La inclinación resultante de la bobina móvil depende tanto de la corriente como del voltaje y puede calibrarse directamente en vatios, ya que la potencia es el producto del voltaje y la corriente. Un vatímetro mide potencia instantánea, siempre mide vatios. El vatímetro tiene cuatro fases. La bobina ampe rimétrica está en serie con la fase y la voltimétrica en derivación. Instrumento que realiza solo las funciones combinadas del amperímetro y voltímetro y señala directamente la potencia. Se compone de una bobina con una aguja indicadora, unida a ella, que gira alrededor de un eje, de tal modo que puede oscilar en el campo magnético de la segunda bobina, y está sometida a un resorte cuyo momento recuperador es proporcional al án gulo girado. El par que tiende a hacer girar la bobina es proporcional al mismo tiempo, a la intensidad de corriente que la recorre y al campo magnético proporcional a la intensidad de corriente en la b obina fija. Por consiguiente, si la bobina fija se conecta como el amperímetro, la intensidad que pasa por ella es proporcional a la intensidad total y su campo magnético es proporcional a esta intensidad. Si la bobina móvil se conecta como el voltímetro, la intensidad de la corriente que la recorre es proporcional a la diferencia de potencial potencial entre los bornes de x.El x. El vatímetro está provisto de cuatro bornes, dos correspondientes al amperímetro y dos al voltímetro.
OBJETIVOS Objetivo General Diseñar y armar el circuito de un vatímetro que funcione gracias a un microprocesador Arduino mega, que medirá la tensión, la corriente, la potencia y la energía.
Objetivo Especifico
Diseñar, dimensionar y seleccionar todos los componentes electrónicos y d e instrumentación que conformaran el prototipo.
Medir las corrientes, la tensión, la potencia y la energía.
Analizar el funcionamiento del Arduino en conjunto con todos los demás elementos.
JUSTIFICACIÓN Al ensamblar este proyecto lo que nos ofrece es un instrumento electrodinámico para medir la potencia eléctrica o la tasa de suministro de energía eléctrica de un circuito eléctrico dado. El dispositivo consiste en un par de bobinas fijas, llamadas "bobinas de corriente", y una bobina móvil llamada "bobina potencial".
Las bobinas fijas se conectan en serie con el circuito, mientras la móvil se conecta en paralelo. Además, en los vatímetros analógicos la bobina móvil tiene una aguja que se mueve sobre una escala para indicar la potencia medida. Una corriente que circule por las bobinas fijas genera un campo electromagnético cuya potencia es proporcional a la corriente y está en fase con ella. La bobina móvil tiene, por regla general, una resistencia grande conectada en serie para reducir la corriente que circula por ella. [1]
El resultado de esta disposición es que, en un circuito de corriente continua, la deflexión de la aguja es proporcional tanto a la corriente como al voltaje, conforme a la ecuación W=VA o P=EI. En un circuito de corriente alterna la deflexión es proporcional al producto instantáneo medio del voltaje y la corriente, midiendo pues la potencia real y posiblemente (dependiendo de las características de cargo) mostrando una lectura diferente a la obtenida multiplicando simplemente las lecturas arrojadas por un voltímetro y un amperímetro independientes en el mismo circuito.
Los dos circuitos de un vatímetro son propensos a resultar dañados por una corriente excesiva. Tanto los amperímetros como los voltímetros son vulnerables al recalentamiento: en caso de una sobrecarga, sus agujas pueden quedar fuera de escala; pero en un vatímetro el circuito de co rriente, el de potencial o ambos pueden recalentarse sin que la aguja alcance el extremo de la escala. Esto se debe a que su posición depende del factor de potencia, el voltaje y la corriente. Así, un circuito con un factor de potencia bajo dará una lectura baja en el vatímetro, incluso aunque ambos de sus circuitos estén cargados al borde de su límite de seguridad. Por tanto, un vatímetro no sólo se clasifica en vatios, sino también en voltios y amperios. [ 2]
MARCO TEÓRICO Es un instrumento electrodinámico que sirve para medir la potencia eléctrica o la tasa de suministro de energía eléctrica de un circuito eléctrico dado. El disp ositivo consiste en un par de bobinas fijas, llamadas bobinas de corriente, y una bobina móvil llamada bobina de potencial o voltimétrica. Las bobinas fijas se conectan en serie con el circuito, mientras la móvil se conecta en paralelo. Además, en los vatímetros analógicos la bobina móvil tiene una aguja que se mueve sobre una escala para indicar la potencia medida. Una corriente que circule por las bobinas fijas genera un campo electromagnético cuya potencia es proporcional a la corriente y está en fase con ella. La bobina móvil tiene, por regla general, una resistencia grande conectada en serie para reducir la corriente que circula por ella. Triángulo de potencias: ++triangulo potencia. [3]
La potencia aparente es la potencia compleja de un circuito eléctrico de corriente alterna y se identifica con la letra S, es la suma vectorial de la potencia que disipa dicho circuito y se transforma en calor o trabajo. Se da en KVA Q: Potencia reactiva se da en KVAR La potencia activa la potencia capaz de transformar la energía eléctrica en trabajo. Los diferentes dispositivos eléctricos existentes convierten la energía eléctrica en otras formas de energía tales como: mecánica, lumínica, térmica, química, etc. Esta potencia es, por lo tanto, la realmente consumida por los circuitos y, en consecuencia, cuando se habla de demanda eléctrica, es esta potencia la que se utiliza para determinar dicha demanda, da en KW. El factor de potencia se obtiene de la siguiente manera cos∅= S. Es un instrumento de medición cuya función es la de apreciar la potencia cuantificada que se halla en uno o más elementos. La unidad en la que este instrumento realiza las mediciones es en watts (W), su interior lo componen una bobina móvil que viene a ser la bobina volt imétrica y dos bobinas fijas que son las bobinas amperométricas, en donde se tiene a la bobina voltimétrica conectada en paralelo al circuito mientras que la bobina amperométrica posee una conexión en serie. [4] Su funcionamiento consta de lo siguiente, la corriente eléctrica circula a través de las bobinas amperométricas generando consigo un campo electromagnético el cual tiene una potencia proporcional a la corriente. La bobina voltimétrica entonces, contiene una resistencia la cual
permite disminuir la corriente que circula a través de la misma y finalmente a través de una aguja ubicada en la bobina voltimétrica, el instrumento mostrará en pantalla la potencia del circuito eléctrico. Cuando se utiliza este instrumento se debe ser cuidadoso en cuanto a las conexiones pues una sobrecarga al sistema puede generar un daño en las bobinas del vatímetro, haciendo que las lecturas o mediciones se tornen imprecisas y se vaya perdiendo confiabilidad en el instrumento por ello; siendo así se amerita el conocimiento preciso p ara saber que de acuerdo el voltaje, la corriente y el factor de potencia; el recalentamiento del instrumento indicado será mayor o menor. Existen dos tipos de vatímetros el analógico y el digital, a pesar de que poseen el mismo principio de funcionamiento cuentan con la gran diferencia de que el digital será en gran parte más preciso debido a que la deflexión que presenta la aguja del vatímetro analógico puede p resentar fallas ante el ojo humano por la manera en la que se esté visualizando este, en cambio el digital me presenta en pantalla la cantidad cuantificada de la potencia disipada por el elemento. [5]
¿Cómo se conecta un vatímetro? Existen dos posibles formas de conectar un vatímetro a una carga: PRIMERA FORMA
En la fig. 1 Se logra ver reflejado un circuito donde la corriente que circula a través de la bobina de corriente y la carga R es la misma, mientras que la diferencia potencial entre los extremos de la bobina de voltaje es igual a la suma del voltaje entre los extremos de la bobina de corriente sumado con la que se encuentra en la carga R, la fig. 5 nos muestra una representación esquemática de esta conexión. Cuando se utiliza esta configuración la potencia medida po r el vatímetro será equivalente a la suma de la potencia que disipa la carga R más la potencia que disipa la bobina de corriente la
cual generalmente será de 0,1Ὡ Aproximadamente, esto quiere decir que la lectura será exponencialmente mejor cuando la carga sea mucho mayor a la resistencia interna de la bobina de corriente. [6]
SEGUNDA FORMA
Representación esquemática de la segunda forma para conectar un vatímetro. En el caso de la segunda forma, se observa que el voltaje entre los extremos de la bobina de voltaje es igual al de la carga R, pero sin embargo para este caso, la corriente que circula a través de la bobina fija es la suma de la corriente multiplicado por la carga más la corriente que circula por la bobina móvil, esto se ve con mayor claridad en la fig. 6 y en una representación esquemática representada en la fig. 7. Para este modelo se obtendrá que la potencia medida por el instrumento será equivalente a la suma de la potencia disipada por la carga sumada con la potencia disipada por la bobina de voltaje, entonces la lectura o medición será más exacta cuanto mayor sea la resistencia interna de la bobina de voltaje con respecto a la carga. Las resistencias que poseen las bobinas de voltaje están en el rango de 6 a 12Ὡ. En el caso de la segunda forma, se observa que el voltaje entre los extremos de la bobina de voltaje es igual al de la carga R, pero sin embargo para este caso, la corriente que circula a través de la bobina fija es la suma del corriente multiplicado por la carga más la corriente que circula por la bobina móvil, esto se ve con mayor claridad en la fig. 6 y en una representación esquemática representada en la fig. 7. Para este modelo se obtendrá que la potencia medida por el instrumento será equivalente a la suma de la potencia disipada por la carga sumada con la potencia disipada por la bobina de voltaje, entonces la lectura o medición será más exacta cuanto mayor sea la resistencia interna de la bobina de voltaje con respecto a la carga. Las resistencias que poseen las bobinas de
voltaje están en el rango de 6 a 12 Ὡ . [7]
Estructura de un Sketch Un programa de Arduino se denomina sketch o proyecto y tiene la extensión. ino. Importante: para que funcione el sketch, el nombre del fichero debe estar en un directorio con el mismo nombre que el sketch. No es necesario que un sketch esté en un único fichero, pero si es imprescindible que todos los ficheros estén dentro del mismo directorio que el fichero principal. 1 2 3 4 5 6
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }
7 La estructura básica de un sketch de Arduino es bastante simple y se compone de al menos dos partes. Estas dos partes son obligatorias y encierran bloques que contienen declaraciones, estamentos o instrucciones.
setup() – http://arduino.cc/en/Reference/Setup loop() – http://arduino.cc/en/Reference/Loop
Adicionalmente se puede incluir una introducción con los comentarios que describen el programa y la declaración de las variables y llamadas a librerías.
setup() es la parte encargada de recoger la configuración y loop() es la que contiene el programa que se ejecuta cíclicamente (de ahí el término loop – bucle-). Ambas funciones son necesarias para que el programa trabaje.
La estructura del sketch está definida en el siguiente enlace: http://arduino.cc/en/Tutorial/Sketch
Se puede resumir un sketch de Arduino en los siguientes diagramas de flujo:
Un ejemplo puede ser el diagrama de flujo de un sistema de arranque y parada de un motor DC:
Esquema de conexiones:
El código asociado a este diagrama se puede encontrar en https://github.com/jecrespo/AprendiendoArduino-Proyectos/tree/master/Proyecto_02-Motor_DC_Controlado
Lenguaje de Programación Arduino El lenguaje de programación de Arduino es C++. No es un C++ puro sino que es una adaptación que proveniente de avr-libc que provee de una librería de C de alta calidad para usar con GCC(compilador de C y C++) en los microcontroladores AVR de Atmel y muchas utilidades específicas para las MCU AVR de Atmel como avrdude: https://learn.sparkfun.com/tutorials/pocket-avr-programmer-hookup-guide/usingavrdude Las herramientas necesarias para programar los microcontroladores AVR de Atmel son avrbinutils, avr-gcc y avr-libc y ya están incluidas en el IDE de Arduino, pero cuando compilamos y cargamos un sketch estamos usando estas herramientas. Aunque se hable de que hay un lenguaje propio de programación de Arduino, no es cierto, la programación se hace en C++ pero Arduino ofrece una api o core que facilitan la programación de los pines de entrada y salida y de los puertos de comunicación, así como otras librerías para operaciones específicas. El propio IDE ya incluye estas librerías de forma automática y no es necesario declararlas expresamente. Otra diferencia frente a C++ standard es la estructuctura del programa que ya hemos visto anteriormente.
Toda la información para programar Arduino se encuentra en el reference de la web de Arduino: https://www.arduino.cc/en/Reference/HomePage y es la capa superior que ofrece Arduino para programar los microcontroladores de una forma sencilla y con un lenguaje de programación entendible fácilmente. Un manual sencillo de entender para la programación es el “arduino programming notebook ” de brian w. Evans. Puedes consultarlo o descargarlo desde:
http://playground.arduino.cc/uploads/Main/arduino_notebook_v1-1.pdf Y su traducción: http://www.ardumania.es/wpcontent/uploads/2011/10/Arduino_programing_notebook_ES.pdf
En contraposición al core de Arduino, es posible usar comandos estándar de C++ en la programación de Arduino siempre que estén incluidos en el avr libc:
Reference: http://www.atmel.com/webdoc/AVRLibcReferenceManual/ Módulos http://www.atmel.com/webdoc/AVRLibcReferenceManual/ch20.html Standard Library: http://www.atmel.com/webdoc/AVRLibcReferenceManual/group__avr__stdlib.html
Cuando compilamos y cargamos el programa en Arduino esto es lo que ocurre:
Además todo esto no solo es válido para las placas Arduino, sino para muchas otras placas y microcontroladores que usando el mismo lenguaje de programación tenemos soporte para compilarlo y transferir el código binario a la memo ria flash del microcontrolador. Un ejemplo de uso de funciones AVR que no dispone el entorno de Arduino es cuando queremos hacer delays muy pequeños. La función delayMircoseconds() puede hacer el delay más pequeño con el lenguaje de Arduino que es de 2 microsegundos.
Para delays menores es necesario usar ensamblador y en concreto la función ‘nop’ (no operation. Cada llamada a ‘nop’ ejecuta un ciclo de reloj que para 16 MHz es un retraso de 62,5 ns. 1 2
__asm__("nop\n\t"); __asm__("nop\n\t""nop\n\t""nop\n\t""nop\n\t");
Otra característica propia de la programación de microcontroladores en C++ son el acceso a los elementos de HW mediante la lectura y escritura en los registros del microcontrolador. Los registros son unas zonas concretas de la memoria RAM accesibles directamente desde la CPU o desde otros elementos del microcontrolador que permite hacer operaciones directas.
Cálculos de la velocidad de Arduino: http://forum.arduino.cc/index.php?topic=200585.0
las
operaciones
en
Librerías Las librerías son trozos de código hechos por terceros que usamos en nuestro sketch. Esto nos facilita mucho la programación y hace que nuestro programa sea más sencillo de hacer y de entender. En este curso no veremos como hacer o modificar una librería pero en este curso debemos ser capaces de buscar una librería, instalarla, aprender a usar cualquier librería y usarla en un sketch. Las librerías normalmente incluyen los siguientes archivos comprimidos en un archivo ZIP o dentro de un directorio. Estas siempre contienen:
Un archivo .cpp (código de C++)
Un archivo .h o encabezado de C, que contiene las propiedades y métodos o funciones de la librería. Un archivo Keywords.txt, que contiene las palabras clave que se resaltan en el IDE (opcional). Muy posiblemente la librería incluye un archivo readme con información adicional de lo que hace y con instrucciones de como usarla. Directorio denominado examples con varios sketchs de ejemplo que nos ayudará a entender cómo usar la librería (opcional).
La instalación de librerías se puede hacer directamente desde el gestor de librerías o manualmente. En el Arduino Playground también tenemos un listado mucho más amplio de librerías, ordenadas por categorías: http://playground.arduino.cc/Main/LibraryList
También tenemos información de como interactuar en http://playground.arduino.cc/Main/InterfacingWithHardware
con
diferente
HW
Además de estas librerías “oficiales” que podemos obtener desde el gestor de librerías y las publicadas en el playground de Arduino, existen muchos desarrollos disponibles en Internet y los propios fabricantes de componentes HW publican las librerías para poder usarlo o incluso la propia comunidad de usuarios. Ejemplo de librería: https://github.com/jecrespo/simpleNTP
Ejemplo de Programación Como ejemplo del proceso de programación con Arduino es el contador de minutos para charlas hecho con una matriz 8×8 de leds tricolor: https://www.adafruit.com/product/1487
Este contador marca los minutos que llevas durante la charla y marca en bloque de 10 colores para indicar la finalización de cada capítulo de 10 minutos Pasos: 1. Leer caracteristicas del HW y como conectarlo: https://learn.adafruit.com/adafruitneopixel-uberguide 2. Elegir una librería para manejarlo: http://fastled.io/ 3. Instalar la librería: https://github.com/FastLED/FastLED 4. Leer cómo manejar la librería: https://github.com/FastLED/FastLED/wiki/Basic-usage 5. Escribir el código y publicarlo: https://github.com/jecrespo/AprendiendoArduino/blob/master/Otros/Neopixel_contador/Neopixel_contador.ino
Computación Física La computación física (physical computing) se refiere al diseño y construcción de sistemas físicos que usan una mezcla de software y hardware para medir e interactuar con el medio que le rodea. La computación física significa la construcción de sistemas físicos interactivos mediante el uso de software y hardware que pueden detectar y responder al mundo analógico. En un sentido amplio, la computación física es un marco creativo para entender la relación de los seres humanos con el mundo digital. En el uso práctico, el término d escribe con mayor frecuencia proyectos artesanales, de diseño o de hobby que utilizan sensores y microcontroladores para traducir entradas analógicas a un sistema de software y controlar dispositivos electromecánicos tales como motores, servos, iluminación u otro hardware. La computación física es un enfoque para aprender cómo los seres humanos se comunican a través de computadoras que comienza por considerar cómo los seres humanos se expresan físicamente. La interacción clásica con los ordenadores es a través de teclados, ratones, pantalla, altavoces,
etc… y toda la programación se hace con esos límites. En el caso de la computación física, no existen esos límites sino los del ser humano que in teractúa.
Programación en Tiempo Real (RTC) En informática, la programación en tiempo real (RTC) o reactive computing describe sistemas de hardware y software sujetos a una “restricción en tiempo real”, por ejemplo, un evento a una respuesta del sistema. Los programas en tiempo real deben garantizar la respuesta dentro de las limitaciones de tiempo especificadas. A menudo se entiende que las respuestas en tiempo real están en el orden de milisegundos, ya veces microsegundos. Un sistema no especificado como en tiempo real normalmente no puede garantizar una respuesta dentro de un periodo de tiempo, aunque pueden darse tiempos de respuesta reales o esperados. Un sistema en tiempo real ha sido descrito como aquel que “controla un entorno recibiendo datos, procesándolos y devolviendo los resultados lo suficientemente rápido para afectar el entorno en ese momento”. El término “tiempo real” se utiliza en el control de procesos y sistemas empresariales significa “sin demora significativa”.
El software en tiempo real puede usar:
lenguajes de programación síncronos ADA https://es.wikipedia.org/wiki/Ada_(lenguaje_de_programaci%C3%B3n)) sistemas operativos en tiempo real (RTOS)
(p.e.
Con Arduino hacemos una programación en tiempo real recibiendo continuamente datos de los sensores o de los puertos de comunicación, analizándolos y respondiendo al entorno mediante los actuadores o las comunicaciones en un tiempo muy rápido. Los sistemas operativos en tiempo real (RTOS) son sistemas que responden a la entrada inmediatamente. Se utilizan para tareas tales como la navegación, en las que el ordenador debe reaccionar a un flujo constante de nueva información sin interrupción. La mayoría de los sistemas operativos de uso general no son en tiempo real porque pueden tardar unos segundos, o incluso minutos, en reaccionar.
Implementación de multitarea:
Librería LiquidCrystal.h Esta librería contiene todo lo necesario para gestionar un display LCD (Cristal Líquido) con Arduino. En el tutorial 12hemos visto como se usa en la práctica. Aquí vamos a recopilar una referencia, a modo de recordatorio, de lo que puede hacer esta librería para comunicar Arduino con un display de datos. La librería
LiquidCrystal nos permite crear un objeto que representa al display LCD y que
contiene todas las operaciones “de bajo nivel” para que a nosotros nos resulte fácil la programación de este dispositivo. Ahora vamos a conocer los métodos que nos ofrece, para poder usarlos cuando nos haga falta.
EL MÉTODO LiquidCrystal() Es el constructor de la clase LyquidCrystal . Permite crear un objeto de esta clase, que se usará para gestionar el dsiplay LCD. Como argumentos recibe una serie de números que se refieren a pines concretos de la placa Arduino, conectados a diferentes pines del display.
LiquidCrystal MiDisplay (12, 11, 5, 4, 3, 2); Los dos primeros números (el 12 y el 11) se refieren a los pines conectado a los puntos RS y E del display. Los cuatro últimos números se refieren a los pines de D4 a D7 del bus de datos del display. En general, esta configuración es la más simple y típica. No obstante, este constructor admite otras listas de argumentos, cómo podemos ver a continuación:
LiquidCrystal(Rs,
E,
LiquidCrystal(Rs, LiquidCrystal(Rs,
rw, E,
D0,
D4, E, D1,
D5, D4,
D2,
D6, D5,
D3,
D4,
D7);
D6, D5,
D7); D6,
D7);
LiquidCrystal(Rs, rw, E, D0, D1, D2, D3, D4, D5, D6, D7); De lo que se trata, como podemos deducir de las líneas de arriba, es que podemos especificar los pines de Arduino que se conectan a distintos terminales del display. En el ejemplo del artículo 12 solo necesitábamos los pines de la primera configuración del constructor. En otros montajes, o con otros modelos de displays, necesitaremos otras configuraciones. Esto es lo que, en programación, se conoce cómo sobrecarga de métodos. Es hacer que un método a diferentes formas según el número de argumentos que le pasemos, o el tipo de estos. Así, en el caso que nos el método constructor de esta clase nos dará acceso a más o menos pines del display en uso, según el nú argumentos que le pasemos. En sucesivos tutoriales veremos más ejemplos.
EL MÉTODO begin()
Como hemos comentado durante la descripción del primer sketch, este método es necesario para inicializar el display. Recibe dos argumentos: el primero es la anchura en caracteres y el segundo la altura (número de filas) del display. También posiciona el cursor en el primer carácter de la primera fila.
EL MÉTODO clear() Limpia el display y posiciona el cursor en el primer carácter de la primera fila.
EL MÉTODO home() Sitúa el cursor en el primer carácter de la primera fila, sin borrar el display.
EL MÉTODO setCursor() Posiciona el cursor en una ubicación específica del display. Recibe dos argumentos. El primero se refiere al carácter de la fila y el segundo a la fila. Ten en cuenta que tanto los caracteres como las filas se empiezan a contar desde 0, no desde 1.
EL MÉTODO write() Escribe una cadena (bien sea un objeto de tipo String o una matriz de caracteres) en el display. Como argumento recibe la cadena a mostrar.
EL MÉTODO print() Actúa de un modo similar a
write() , pero con la posibilidad de enviar directamente números
enteros al display, en distintas bases de numeración. Para enviar números en distintas bases de numeración se emplea la siguiente sintaxis:
ObjetoLCD.print(numero, BASE); BASE es o
una
constante
que
puede
ser BIN (binario),
OCT (octal), DEC (decimal)
HEX (hexadecimal). Podemos ver un ejemplo de uso en el siguiente sketch:
Librería Math.h La librería cmath es la que nos da una serie de funciones para poder realizar operaciones matemáticas complejas (potencias, raíces cuadradas, senos, cosenos…). El encabezado math.h define varias funciones matemáticas y una macro. Todas las funciones disponibles en esta biblioteca toman el doble como argumento y devuelven el doble como resultado.
Variables y constantes en C++. Asignación de valores, uso de #define y const en C++ Las variables son altamente imprescindibles al momento de programar, de hecho sería imposible conseguir una aplicación con una funcionalidad básica sin usar variables; por esta misma razón es necesario aprender a usarlas bien y lo tenemos muy fácil, pues su uso es bastante sencillo e intuitivo, tanto para declararlas como para asignarles valores. Las variables son posiciones en memoria donde estarán guardados los diferentes valores que le damos o que toman duranet ejecución los datos que usamos y normalmente estarán disponibles a lo largo de la ejecución de nuestro programa. Para asignar valores a una variable en una gran variedad de lenguajes que incluye a C++ se usa el operador "=" seguido del valor que le daremos a la variable (no todos usan el "=" para esto). Veamos un ejemplo completo con todos los posibles usos que le damos a una variable.
#include using namespace std; int main() { char x = 'a'; // Declaramos y asignamos en la misma línea int num; //Declaramos el entero en una línea num = 5; //Le asignamos un valor en ot ra línea int num2 = 8; //Asignacion y declaracion al tiempo float numero; //Un numero decimal numero = 3.5; //Le asignamos un valor al decimal float res = numero + num2; //Sumamos dos variables y las asignamos a res //3.5 + 8 = 1 1.5 res = res + num; //Al valor actual de res le sumamos el valor de num //11.5 + 5 = 1 6.5 bool valor = false; //Variable booleana valor = true; // Pueden ser true o false res = res*2; //Duplicamos el valor de res 16.5*2 = 33 cout << res << endl; //Mostramos el valor de res por pantalla return 0; }
Constantes en C++, const y #define Las datos constantes, mal llamadas por algunos "variables constantes" (realmente no son variables) tienen un valor fijo durante toda la ejecución del p rograma, es decir, este valor no cambia ni puede ser cambiado a lo largo de la ejecución de nuestro programa. Las constantes son muy útiles para especificar el tamaño de un vector y para algunas otras cosas, como facilidad de uso y confiabilidad del código. Para declarar una constante, se hace despues de declarar las librerías y antes de las funciones, la sintaxis es la siguiente: #define nombre_constante valor. Veamos algunos detalles y luego unos ejemplos sencillos del uso de las constantes en C++ En C++ se pueden definir constantes de dos forma, ambas válidas para nosotros. La primera es por medio del comando #define nombre_constante valor y la segunda es usando la palabra clave const , veamos ahora cada una de estas formas en detalle.
Uso de #define para declarar constantes en C++ La instrucción #define nos permite declarar constantes (y algunas cosas más) de una manera rápida y sencilla. Hay que tener en cuenta que al declarar constantes con #define debemos hacerlo despues de los #include para importar librerías pero antes de declarar nuestras funciones y demás. Veamos un ejemplo:
Ejemplo de uso de #define en C++ para declarar constantes #include using namespace std;
#define PI 3.1416; //Definimos una constante llamada PI
int main() { cout << "Mostrando el valor de PI: " << PI;
return 0; }
Ejemplo de uso de const en C++ para declarar constantes #include using namespace std;
int main() { const float PI = 3.1416; //Definimos una constante llamada PI cout << "Mostrando el valor de PI: " << PI << endl;
return 0; }
Notemos que de igual forma ha sido bastante fácil y mejor aún ha sido mucho más intuitivo y sencillo para nosotros. Se puede ver que la declaración es muy similar a la de una variable cualquiera y que ya no tenemos complicaciones al intentar añadir la instrucción endl para agregar el salto de línea. Veamos que realmente la variable no puede cambiar:
#include using namespace std;
int main() { const float PI = 3.1416; //Definimos una constante llamada PI cout << "Mostrando el valor de PI: " << PI << endl; PI = 2; //Esto generará un error pues PI es de solo lectura (constante) return 0; }
Si intentamos ejecutar el código anterior obtendremos un error al intentar cambiarle el valor a PI, pues lo hemos definido como una constante y el lenguaje no nos permitirá cambiarle en ningún momento el valor.
LABORATORIO Procedimiento de la práctica: El procedimiento se basa en la medición de los valores de la potencia de las bombillas. 1. Lo primero es calibrar el instrumento de medición ya que es analógico y se le debe hacer su respectiva calibración. 2. Se procedió a leer los valores nominales de la potencia marcada en las bombillas y hacer registrado para comparar con la medición real. 3. Se inicia la conexión del vatímetro de la manera que indicaba la hoja instructiva de la práctica, verificando y teniendo muy en cuenta la conexión ya que se podría dañar el instrumento o provocar un corto circuito.
4. Al verificar todas las conexiones, se procede a energizar el circuito para realizar la medición correspondiente y de inmediato llevarla al registro, la medición se dividió en dos una de ellas la medición individual de cada bombilla, la segunda se realizaba con la potencia que resultaba del encendido de ambas bombillas.
Por último al tener ya las mediciones se le quito la energía al circuito y se desconectó todas las conexiones realizadas anterior mente, y se procede al cálculo y análisis de resultados. [8]
METODOLOGIA La metodología es una de las etapas específicas de un trabajo o proyecto que parte de una posición teórica y conduce una selección de técnicas concretas (o métodos) acerca del procedimiento destinado a la realización de tareas vinculadas a la investigación, el trabajo o el proyecto. MATERIALES
1 Arduino mega
1 pantalla Lcd de 4 x 20
1 cable de corriente USB
2 potenciómetros
4 cables lagartos
Resistencias:
2 de 100 kiloohmios
2 de 100 kiloohmios
1 de 100 kiloohmios
1 sensor de corriente ACS712
2 capacitores electrolíticos de 1 uf a 25v
Cables jumper macho a macho
Cables jumper macho a hembra
ARDUINO MEGA: El Arduino Mega 2560 está programado utilizando el software Arduino (IDE), nuestro entorno de desarrollo integrado común a todos nuestros tableros y que funciona tanto en línea como fuera de línea
POTENCIOMETRO: Un potenciómetro es un dispositivo conformado por 2 resistencias en serie, las cuales poseen valores que pueden ser modificados por el usuario. Existen múltiples tipos de potenciómetros, variando su forma y el método cómo modifican los valores de las resistencias.
Resistencia variable
Variador de voltaje para ajustes de resolución
Variador de velocidad
Realimentación en el circuito de control de un servomotor.
Entrada manual para ajustes de preferencias de us uario
Todo tipo de aplicaciones en las cuales se necesita que el usuario pueda modificar las condiciones iniciales y/o ajustar parámetros puntuales.
CABLES DE COCODRILO: los agarres de la pinza de cocodrilo están fabricados de material
aislante,
esto
para
prevenir
cortocircuitos
accidentales. Se usan pinzas de cocodrilo se utilizan de forma rápida y barata montar o modificar los circuitos experimentales. Ellos son útiles para la conexión de componentes a los cables.
PROTOBOARD: es una placa que posee unos orificios conectados eléctricamente entre sí siguiendo un patrón horizontal o vertical. Es empleada para realizar pruebas de circuitos electrónicos, insertando en ella componentes electrónicos y cables como puente. Es el boceto de un circuito electrónico donde se realizan las pruebas de funcionamiento necesarias antes de trasladarlo sobre un circuito impreso.
PANTALLA: Durante la medición de la potencia la polaridad cambia automáticamente, si se producen valores de medición negativos aparecerá un símbolo menos en el indicador del vatímetro. A la hora de analizar el vatímetro, cuenta también con muchas propiedades (entrada de corriente aislada, medición de armónicos, intensidad de conexión, medición de potencia.
CABLES DE CORRIENTES USB: está compuesto de cuatro cables mucho más delgados, los cuales se les puede distinguir por sus colores, es u n estándar, funcionan en pares
SENSOR ACS712: es un sensor de corriente por efecto hall, que provee una solución económica y precisa para medir corriente en AC o DC, ya sea en ambientes industriales o comerciales. Este Sensor funciona transformando un campo magnético surgido de el paso de la corriente por un alambre de cobre interno en el sensor, y convirtiendo este campo en un voltaje variable.
CABLES JUMPERS MACHO A MACHO : es el mas común ya que sus terminales son de punta y sirven en practicas como los puentes de cable telefónico.
CABLES JUMPERS MACHO A HEMBRA: Los conectores machos a hembras son encontrados en los cables que conectan dispositivos electrónicos unos con otros y los nombres distinguen los tipos de conectores.
FUNCIONAMIENTO DEL VATIMETRO El vatímetro es un instrumento capaz de medir la potencia promedio consumida en un circuito Según la definición de potencia, un vatímetro debe ser un instrumento que realice el producto de dos señales eléctricas, ya que P= V*I. El vatímetro tiene su bobina fija dispuesta de forma que toda la corriente del circuito la atraviese, mientras que la bobina móvil se conecta en serie con una resistencia grande y sólo deja pasar una parte proporcional del voltaje de la fuente. El principio en el cual el instrumento funciona es como sigue: Suponga cualquier circuito, tal como un motor eléctrico, una lámpara o un transformador, está recibiendo la corriente eléctrica; entonces la energía dada a ese circuito contado en vatios es medida por el producto de la corriente que atraviesa el circuito en amperios y la diferencia potencial de los extremos de ese circuito en voltios, multiplicados por cierto factor llamado el factor de la energía en esos casos en los cuales el circuito sea inductivo y el alternarse actual. Hay dos tipos de vatímetros: los análogos y los digitales. [9]
Los análogos la bobina móvil tiene una aguja que se mueve sobre una escala para indicar la potencia medida. Una corriente que circule por las bobinas fijas genera un campo electromagnético cuya potencia es proporcional a la corriente y está en fase con ella. La bobina móvil tiene, por regla general, una resistencia grande conectada en serie para reducir la corriente que circula por ella. El resultado de esta disposición es que, en un circuito de corriente continua, la deflexión de la aguja es proporcional tanto a la corriente como al voltaje, conforme a la ecuación W=VA o P=EI. En un circuito de corriente alterna la deflexión es proporcional al producto instantáneo medio del voltaje y la corriente, midiendo pues la potencia real y posiblemente (dependiendo de las características de cargo) mostrando una lectura diferente a la obtenida multiplicando simplemente las lecturas arrojadas por un voltímetro y un amperímetro independientes en el mismo circuito Los vatímetros electrónicos se usan para medidas de potencia directa y pequeña o para medidas de potencia a frecuencias por encima del rango de los instrumentos de tipo electrodinamómetro. Los tríodos acoplados se operan en la porción no lineal de sus curvas características al voltaje de red y la corriente de placa. El rango de frecuencia de un vatímetro electrónico puede extenderse hasta los 20 megahercios usando tubos de pentodos en lugar de tríodos. Las condiciones de operación de un pentodo se ajustan de forma que la corriente de p laca sea proporcional al producto de una función linear del voltaje de placa y a una función exponencial del voltaje de red. [10]
PROGRAMACIÓN DEL VATÍMETRO La programación de Arduino es la programación de un microcontrolador. Esto era algo más de los ingenieros electrónicos, pero Arduino lo ha extendido a todo el público. Arduino ha socializado la tecnología.
Programar Arduino consiste en traducir a líneas de código las tareas automatizadas que queremos hacer leyendo de los sensores y en función de las condiciones del entorno programar la interacción con el mundo exterior mediante unos actuadores. Arduino proporciona un entorno de programación sencillo y potente para programar, pero además incluye las herramientas necesarias para compilar el programa y “quemar” el programa ya compilado en la memoria flash del microcontrolador. Además el IDE nos ofrece un sistema de gestión de librerías y placas muy práctico. Como IDE es un software sencillo que carece de funciones avanzadas típicas de otros IDEs, pero s uficiente para programar.
El código #include #include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //( RS, EN, d4, d5, d6, d7) #define CORRIENTE 6.3865 #define TENSION 205.965153
void setup() { lcd.begin(16, 2); //lcd.clear(); }
void loop(){ int i, adcZ=0; float adc1=0, Valormaximo1=0, adc2=0, Valormaximo2=0; float Tension=0, Intensidad=0, Potencia=0, Energia=0; do { adcZ=analogRead(A0)-512;
delayMicroseconds(20); }while(adcZ<10);
for(i=0;i<500;i++) { adc1=(analogRead(A0)*5.0/1023.0)-2.5; delayMicroseconds(33); Valormaximo1=adc1*adc1+Valormaximo1; adc2=(analogRead(A1)*5.0/1023.0)-2.5; delayMicroseconds(33); Valormaximo2=adc2*adc2+Valormaximo2; }
Tension=sqrt(Valormaximo1/500)*TENSION; Intensidad=sqrt(Valormaximo2/500)*CORRIENTE; Potencia=Tension*Intensidad; Energia=Potencia*3600; delay(2000); if(Tension<25.0||Intensidad<0.04) { lcd.setCursor(0,0); lcd.print("V:000.0 A:0.00"); lcd.setCursor(0,1); lcd.print("W:000.0 E:00.0"); }
else { lcd.setCursor(0,0);
lcd.print("V:"); lcd.setCursor(2,0); lcd.print(Tension);
lcd.setCursor(10,0); lcd.print("A:"); lcd.setCursor(12,0); lcd.print(Intensidad);
lcd.setCursor(0,1); lcd.print("W:"); lcd.setCursor(2,1); lcd.print(Potencia);
lcd.setCursor(10,1); lcd.print("E:"); lcd.setCursor(12,1); lcd.print(Energia); }
Valormaximo1=0; Valormaximo2=0; }
CONCLUSIONES Al finalizar la práctica se pueden sacar conclusiones que pueden ayudar al análisis de los resultados obtenidos en la medición, una de las conclusiones que se puede sacar es los errores obtenidos en cada medición realizada que ese porcentaje puede ser determinado por diferentes factores uno de ellos es que a la hora que se hizo la medición hay perturbaciones en la red eléctrica, ya que están encendidos muchas maquinas eléctricas que pueden estar consumiendo potencia reactiva lo cual ocasiona distorsiones en la medición de potencia activa de elementos puramente resistivos. Otro de los factores que pudieron determinar ese error es que como se trataba de un instrumento analógico la lectura por parte del ojo humano puede no ser la dada por el instrumento lo cual altera en cierta forma los resultados obtenidos, en este mismo sentido se puede manifestar la calibración del mismo que por razones de exactitud el ojo humano no puede determinar de manera precisa el 0, aunque son errores que son difíciles de cometer en escalas grades siempre hay que tomarlos en cuenta en cualquier medición, ya que un instrumento analógico es difícil de determinar las medidas en decimales de las mediciones. Sin embargo, el error total de la medición no fue extremadamente alto ya que es un 6.59% lo cual se puede decir que está en los parámetros esperados en la práctica.
RECOMENDACIONES
Revisar el estado de los instrumentos antes de cada práctica para obtener valores correctos.
Realizar una medida con el vatímetro y multímetro a la fuente de energía para determinar si está entregando valores correctos para el desarrollo de la practica
Determinar la continuidad en cada conector ya que estos pueden estar dañados y presentarnos problemas al momento de obtener los valores del circuito
Para realizar la medición de la corriente se debe apagar la fuente o desconectar un lagarto ya que la manipulación de un circuito energizado puede ocasionar accidentes.