Source: http://docplayer.es/2003042-Diseno-de-un-medidor-transmisor-y-controlador-de-flujo-en-base-a-turbina.html
Timestamp: 2017-09-24 03:44:04+00:00

Document:
DISEÑO DE UN MEDIDOR, TRANSMISOR Y CONTROLADOR DE FLUJO EN BASE A TURBINA - PDF
DISEÑO DE UN MEDIDOR, TRANSMISOR Y CONTROLADOR DE FLUJO EN BASE A TURBINA
Download "DISEÑO DE UN MEDIDOR, TRANSMISOR Y CONTROLADOR DE FLUJO EN BASE A TURBINA"
Víctor Godoy Hidalgo
1 UNIVERSIDAD DE CARABOBO FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE SISTEMAS Y AUTOMÁTICA DISEÑO DE UN MEDIDOR, TRANSMISOR Y CONTROLADOR DE FLUJO EN BASE A TURBINA TRABAJO ESPECIAL DE GRADO PRESENTADO A LA UNIVERSIDAD DE CARABOBO PARA OPTAR AL TÍTULO DE INGENIERO ELECTRICISTA Tutor Académico: Prof. Efraín Roca Silvia Vera Dugar S. Parra Valencia, Mayo de 2008
2 Agradecimientos En primer lugar a Dios, por darnos salud, paciencia y fortaleza para poder llegar a la culminación de este trabajo de tesis. esta tesis. A nuestros padres y hermanos por su apoyo incondicional durante todas las fases de Al nuestro tutor el profesor Ing. Efraín Roca, que sin su ayuda no hubiésemos podido realizar este trabajo, el fue nuestra guía académica a lo largo de todo este tiempo. Al profesor Andrés Simone quien nos proporciono su ayuda en el momento más indicado, gracias a su conocimiento en la materia pudimos encontrar la mejor solución en la parte más importante de nuestra tesis. A nuestros familiares y amigos. A todos Gracias. Silvia Vera y Dugar Samuel Parra
3 RESUMEN La medición de la variable flujo en el área de control de procesos industriales y en el aprendizaje de las teorías de control es fundamental, de ahí surge la idea de realizar un dispositivo para su medición con miras a ubicarlo en el Laboratorio de Instrumentación de la Escuela de Ingeniería Eléctrica de la Universidad de Carabobo, para contribuir con el proceso de aprendizaje de todos los temas relacionados con la teoría de control de procesos e instrumentación. La medición de flujo en base a turbina, se realiza a través de la medición de frecuencia de la señal que proviene del rotor de la turbina, para luego mediante un algoritmo matemático obtener el flujo. En este trabajo se desarrollo el diseño de un transmisor e indicador de flujo en base a turbina a partir de la programación de un microcontrolador. Dicho microcontrolador debía cumplir con ciertas características indispensables para poder realizar la medición de frecuencia, principalmente amplia memoria de programa, poseer un terminal para captura y suficientes terminales de entrada/salida. Por otro lado se realizó el diseño de una serie de circuitos destinados a otras actividades como: acondicionamiento de la señal, salida de comunicación serial, salida 4-20mA, señal de alarma entre otras, para los cuales se diseñaron las tarjetas de circuito impreso. Para lograr estos objetivos de este trabajo se utilizó una herramienta específica para este tipo de proyectos llamada ISIS Software el cual contiene dos aplicaciones (PROTEUS Y ARES) para realizar los circuitos esquemáticos, simulaciones y diseño de tarjetas de circuito impreso respectivamente. También se utilizó el compilador de MikroBasic que nos permitió la programación del microcontrolador utilizado para este diseño. Una vez realizada la fase de diseño del proyecto se procedió a realizar y verificar la eficiencia del código de programa del equipo, principalmente la medición de frecuencia. Tomando como característica de diseño un rango de 0.8 a Hz con una resolución de
4 0.1 Hz se realizaron pruebas con el programa de simulación nombrado anteriormente resultando que el programa respondía de manera estable a las exigencias propuestas. A partir de los resultados obtenidos en las simulaciones se realizaron los diseños de las tarjetas de circuito impreso, para completar lo que sería la unión del hardware y el software del equipo. Luego se hicieron las pruebas experimentales en el Laboratorio de Instrumentación de la Facultad de Ingeniería de la Universidad de Carabobo, tomando como elemento patrón el Rotámetro que se encuentra en el módulo de medición de caudal, el sistema presenta un rango de 0 a 30 GPM y una clase de +/- 1%. A la hora de realizar las pruebas del diseño del transmisor, indicador y controlador de flujo llamado FT2500, resulto que respondía bastante bien indicando una medición igual a la dada por el rotámetro. Dejando en entre dicho que nuestro diseño no pueda tener una clase menor al elemento patrón. Por otro lado se verificó la salida del transmisor con un controlador ubicado en el laboratorio tomándolo como elemento patrón con una clase de +/- 0.1%, arrojando excelentes resultados de salida con respecto a la entrada. Una de las características más importante de este diseño es la versatilidad con la cual se diseño, tomando en cuenta que puede ser utilizado en cualquier otro sistema distinto al que se utilizo como base para el diseño (Laboratorio de Instrumentación). Adaptándose a las exigencias del sistema que se le presente a través de la modificación de las constantes características para cada sistema, esto lo puede realizar el usuario a través del teclado, ubicándose en el menú de funciones mostrado en la pantalla del equipo, en el momento que este lo desee.
5 INTRODUCCIÓN El trabajo especial de grado DISEÑO DE UN INDICADOR, TRANSMISOR Y CONTROLADOR DE FLUJO EN BASE A TURBINA, tiene como objetivo general diseñar un transmisor y controlador en base a un microcontrolador, el cual ofrezca las características mínimas de control de proceso para la enseñanza de estas teorías dentro del laboratorio. Para el desarrollo de este proyecto se utilizan las aplicaciones que poseen los microcontroladores PIC, las cuales presentan en la actualidad soluciones rápidas y eficientes para procesos de medición y control de variables de procesos industriales, así como también ciertas actividades académicas que permiten alcanzar cierto conocimiento en el área de diseño digital. Este trabajo especial de grado se basa en la medición de frecuencia, a fin de obtener la velocidad del fluido, para calcular el caudal. Desarrollando así un medidor de caudal en base a turbina, y a partir de allí realizar una cantidad de operaciones, como: - Indicar la medición en tiempo real de la variable caudal - Aplicar un algoritmo de control PI. - Salida de transmisión de 4-20ma. - Generación de alarma. - Manejo de display y teclado. Este trabajo se dividió en seis capítulos desglosados de la siguiente manera: Capitulo I Contiene el planteamiento del problema, en este se presentan las razones que llevaron a realizar este proyecto, los objetivos generales y específicos para el mismo y por último el alcance. Capitulo II
6 Aquí se explican los procesos realizados para llevar a cabo este trabajo de grado. Criterios de evaluación de componentes, para ello una investigación de los recursos existentes y por último la aplicación de las técnicas de diseño disponibles en la actualidad. Capítulo III Incluye las bases teóricas necesarias para adentrarse dentro de este desarrollo; conceptos básicos como Qué es un Microcontrolador? hasta la explicación de programas simuladores para los PICs, pasando por definiciones básicas como sistemas SPI, familias más importantes de los PIC, etc. Teoría de la medición de caudal, basado en medición de frecuencia y teoría de control de procesos. Capítulo IV Se presentó el diseño del hardware, donde se observan las razones por las cuales se escogió un PIC en específico, además de mostrar los circuitos que conforman al transmisor haciendo una explicación de cada uno de ellos. Capítulo V El desarrollo del software es importante en este tipo de trabajo porque muestra la lógica utilizada para programar al PIC, y se explica en detalle todos esos procesos que se van llevando a cabo hasta lograr el objetivo final que es Medir Frecuencia, Indicar caudal y Generar Control. Capítulo VI En esta sección se presentan los resultados de la investigación; simulaciones realizadas, pruebas con la tarjeta de desarrollo easy pic5 y los resultados de las pruebas en el laboratorio de Instrumentación de la Facultad de Ingeniería CAPÍTULO I El Problema
7 1.1. Planteamiento del problema El caudal es una de las variables de mayor interés en el control de procesos y una de las que aporta un gran número de principios para su medición. De ahí la importancia que tiene el conocimiento de los múltiples métodos de medición para esta variable. En la actualidad, el Laboratorio de Instrumentación II dispone únicamente de dos métodos de medición para la variable flujo: por placa orificio y por elemento de turbina. Para los momentos, el sistema de medición por turbina se encuentra fuera de servicio, debido al deterioro del instrumento transductor - indicador. Surge entonces la idea primaria de poner de nuevo en funcionamiento al sistema de medición de flujo en base a turbina. Adicionalmente se plantea el diseño y construcción de un instrumento indicador-transmisor de caudal, utilizando técnicas digitales con diseño en base a microcontroladores Justificación Desde el punto de vista académico, el trabajo involucra el uso de técnicas de diseño digital para una aplicación de instrumentación y control de procesos, siendo éste un aspecto con gran nivel evaluativo en el proceso docente. Por otro lado, como ya se mencionó, la variable flujo es de sumo interés a nivel de control de procesos industriales, por lo que cualquier trabajo relacionado, aportará una documentación importante de referencia sobre el tópico. En adición, el logro de este trabajo permitirá a los estudiantes del Laboratorio de Instrumentación II, contar de nuevo con un segundo método para la medición de caudal, aspecto que beneficiará el proceso de enseñanza en el laboratorio. 1.3 Objetivos
8 1.3.1 Objetivos Generales Diseñar un instrumento medidor, controlador y transmisor de caudal, en base a un transductor de turbina, con diseño en base a microcontrolador Objetivos Específicos Diseñar el hardware adecuado para el tratamiento de señales provenientes de elementos primarios de caudal, basado en turbinas Diseñar e implementar el hardware y software para lograr la siguiente gamma de características operativas: a) Capacidad de medición de frecuencia dentro del rango normal establecido para elementos primarios de flujo en base a turbina. b) Indicación digital de 8 dígitos c) Configuración y calibración mediante teclado frontal. d) Capacidad de realizar funciones de transmisor de caudal con salida 4-20 ma. e) Escalamiento programable, a fin de permitir la indicación de la lectura en cualquier unidad de medición de caudal (ej. GPM, LPM, etc). f) Capacidad de realizar la función de integrador de flujo a fin de lograr la totalización y la indicación de volumen. g) Presentación en caja normalizada para uso en panel, bajo dimensiones DIN ¼. h) Configuración mediante teclado frontal. i) Amplio soporte de configuración y calibración: diámetro de la tubería, filtrado digital de la señal de entrada, alarmas y salida de corriente. 1.4 Alcance Diseño de una unidad de medición caudal, bajo las características de diseño establecidas. Pruebas efectivas en el Laboratorio de Instrumentación de la Facultad de Ingeniería.
9 1.5. Recursos Un elemento primario de medición de caudal en base a generación de frecuencia (turbina o similar). Caja de alojamiento industrial con dimensiones DIN ¼. Dos (2) microcontroladores y demás componentes electrónicos del equipo. Sistema de desarrollo del microcontrolador. Un teclado frontal de cuatro teclas. Una Computadora. Tarjeta de desarrollo Easy Pic5. CAPÍTULO II METODOLOGÍA DE INVESTIGACIÓN 2.1 Tipo de Investigación: Proyectiva También conocido como proyecto factible, consiste en la elaboración de una propuesta o modelo para solucionar un problema a partir de un proceso previo de indagación. Implica explorar, describir, explicar y proponer alternativas de cambio. Dentro de esta categoría entran las investigaciones que conllevan el diseño o creación de algo, con base en un proceso investigativo. 2.2 Situación Actual En este momento se encuentra un transductor e indicador de flujo en el laboratorio de Instrumentación de Procesos de la Facultad de Ingeniaría de la Universidad de Carabobo, el
10 cual no se encuentra activo en la actualidad debido a que no funciona. Esto se verificó en el Laboratorio. 2.3 Metodología de estudio Recopilación teórica para el estudio de los medidores a turbina en líquidos y gases. Este estudio abarca la longitud de la tubería, la turbina, la medición de frecuencia y el algoritmo PI que realizará las funciones de control de flujo. También para predecir la característica de comportamiento de un medidor de turbina es necesario que sea calibrado. Definición formal de las características operativas del instrumento; definiendo la macro-estructura de Hardware así como también evaluando el tipo y cantidad de recursos de I/O requeridos. Estudio de las prestaciones de los diferentes tipos de microcontroladores PIC para la escogencia del mismo. Estudio e investigación de las prestaciones de los lenguajes de programación que existen en la actualidad para trabajar con los PIC, tomando el más accesible según las características del PIC. Programación del PIC de manera tal que pueda realizar funciones específicas para este tipo de dispositivo. Este instrumento una vez construido debe ser capaz de realizar funciones ajustables para programar el diámetro de la tubería, unidades de medición, nivel mínimo de flujo, puntos de control, puntos de alarma, factor de calibración de la turbina, calibración de la salida de corriente y ajustes de sintonización del controlador PID. Realizar el diseño de los planos en Proteus 7.1. Dentro de este paquete de aplicaciones realizar las simulaciones y circuitos esquemáticos en Isis 7.1. Y el diseño de las tarjetas de circuito impreso en Ares. Ensamblaje de las tarjetas y los módulos de software. Realización de las pruebas necesarias para comprobar el funcionamiento del sistema. CAPÍTULO III Marco Teórico
11 3.1 Medición de Caudal Hoy en día la medición de caudal en vapores, gases y líquidos es una de las actividades más importantes en el campo de la instrumentación. En la operación de una planta, sin la medida de esta variable el balance de materia, el control de calidad y la operación misma de un proceso continuo serían casi imposibles de realizar. La manera en la que la razón de flujo se cuantifica depende del tipo de fluido (sólido, líquido o gaseoso), del valor del producto que es medido, la exactitud requerida y el tipo de proceso Clasificación de los elementos de medición de caudal Instrumentos medidores de caudal de presión diferencial Área fija: - Placas de Orificio: - Concéntricas - Excéntricas - Segmentadas - Anulares - Tobera (Nozzle) - Tubo Venturi - Tubo Pitot - Tubo Anubar (Pitot Modificado) - Codo Calibrado - Tipo Restricción Área Variable: - Rotámetro Medidores de Caudal para canales abiertos - Vertederos Rectangulares - Vertedero Triangular - Vertedero Trapezoidal
12 - Vertedero Parshall Medidores de Caudal de Desplazamiento Positivo - Disco oscilante - Pistón Oscilante - Pistón Alternativo - Medidor Rotativo Medidores de Caudal de tipo Turbina [1] Medición de Caudal a Turbina Los medidores de turbina consisten en un rotor que gira al paso del fluido con una velocidad directamente proporcional al caudal. La velocidad del fluido ejerce una fuerza de arrastre en el rotor; la diferencia de presiones debida al cambio de área entre el rotor y el cono posterior ejerce una fuerza igual y opuesta. De este modo el rotor está equilibrado hidrodinámicamente y gira entre los conos anterior y posterior sin necesidad de utilizar rodamientos axiales evitando así un rozamiento que necesariamente se produciría en ese punto. Ver Fig.3.1. [1] La medición del caudal en este tipo de aparatos se logra con base en la proporcionalidad que existe entre el número de revoluciones o vueltas que dan las aspas del dispositivo, y la velocidad del flujo que es transportada a través del conducto. La velocidad que adquieren las aspas al contacto con el flujo, se transmite a un sistema de relojería o según es el caso de pulsos eléctricos que la transforman a través de un transductor de señales físicas a señales de ingeniería, y así poder tener información referente a volúmenes, registro de caudal, entre otros.
13 Fig Medidor de tipo turbina. Fuente: Multimedia didáctico para la enseñanza de Instrumentación de Procesos I del Departamento de Sistema y Automática de la Escuela de Ingeniería Eléctrica de la Universidad de Carabobo. En estos instrumentos se relaciona el número de vueltas del dispositivo con la velocidad del flujo, y al contar con el diámetro de la tubería donde está el medidor se aplica la ecuación de continuidad para conocer el caudal. Este proceso para determinar el caudal por medio de la ecuación de continuidad es hecho internamente por el propio medidor. Ecuación para medir el flujo: Q A V (Ec. 3.1) Donde: Q= Cantidad de flujo (m 3 /s) A= Área transversal (m 2 ) V=Velocidad del flujo (m/s) La velocidad que genera la turbina será captada por convertidores, para poder estudiar la relación que tiene la frecuencia del rotor con la cantidad de caudal que pase a través de la línea, estos convertidores pueden ser: - De reluctancia: (reluctancia, es la resistencia que ofrece un circuito al flujo magnético, siendo la longitud del circuito un factor que influye en la reluctancia). La
14 velocidad viene determinada por el paso de las palas individuales de la turbina a través del campo magnético creado por un imán permanente montado en una bobina captadora exterior. El paso de cada pala varía la reluctancia del circuito magnético, esta variación cambia el flujo induciendo en la bobina captadora una corriente alterna que, por lo tanto es proporcional al giro de la turbina. - Tipo inductivo: el rotor lleva incorporado un imán permanente y el campo magnético giratorio que se origina induce una corriente alterna en una bobina captadora exterior. En ambos casos, la frecuencia que genera el rotor de turbina es proporcional al caudal siendo del orden de 250 a 1200 ciclos por segundo (ciclos/seg.) para el caudal máximo (ver figura 3.2). Por ejemplo, si un rotor de seis palas gira a 100 revoluciones por segundo (rev./seg.), generará 600 impulsos por segundo. El número de impulsos por unidad de caudal es constante. [3] Fig Curvas del medidor de turbina. Fuente: Instrumentación Industrial (Antonio Creus). La turbina estará limitada por la viscosidad del fluido, debido al cambio que se produce en la velocidad del perfil del fluido a través de la tubería cuando aumenta la viscosidad. En las paredes, el fluido se mueve más lentamente que en el centro, de modo que las puntas de las palas no pueden girar a mayor velocidad. En general, para viscosidades superiores a 3-5 centistokes (unidad de medición de la viscosidad de los líquidos. Se considera al agua con una viscosidad de un centistokes y los demás líquidos se comparan con este valor. Se utiliza principalmente para medir las viscosidades de los aceites) se reduce considerablemente el intervalo de medida del instrumento. [3]
15 La exactitud es muy elevada, del orden ± 0,3 %. La máxima exactitud se obtendrá con régimen laminar instalando el instrumento en una tubería recta de longitudes mínimas de 15 diámetros aguas arriba y 6 diámetros aguas abajo. Tendrá excelente rangoabilidad 15:1 siendo un instrumento adecuado para la medida de caudales de líquidos limpios o filtrados. Deberá instalarse de tal modo que no se vacíe cuando cesa el caudal ya que el choque del agua a alta velocidad contra el medidor vacío lo dañaría seriamente. La sobrevelocidad por exceso de caudal puede ser también perjudicial para el instrumento, por último la frecuencia generada por el medidor de turbina se transmite a un convertidor indicador o totalizador. [3] Transmisores El propósito del transmisor es convertir la salida de un sensor en una señal lo suficientemente intensa como para que se pueda transmitir a un controlador o a cualquier otro dispositivo receptor. Dicha señal varía su valor solamente como una función predeterminada de la variable de un proceso; esta es captada por el transmisor a través del elemento primario y transmitida a distancia. Existen varios tipos de señales de transmisión: neumáticas, electrónicas, hidráulicas y telemétricas. Las más empleadas en la industria son las dos primeras; las señales hidráulicas se utilizan ocasionalmente cuando se necesita una gran potencia y las señales telemétricas se emplean cuando hay una distancia de varios kilómetros entre el transmisor y el receptor. Los transmisores neumáticos generan una señal neumática lineal de 3 a 15 psig (la más usada) o de 0,2 a 1 bar, para el campo de medida de 0 a 100% de la variable. Los transmisores electrónicos generan varios tipos de señales: 4-20, 1-5, ma, etc.; la más usada es la de 4-20 ma. La relación entre el valor mínimo y el máximo de la señal es de 1 a 5 tanto para la señal eléctrica como para la señal neumática y el nivel mínimo seleccionado de 3 psi y 4 ma elimina el problema de la presión o corriente residual respectivamente, que se presenta al desconectar el elemento o al fallar la fuente de alimentación.
16 En general, la mayoría de los transmisores se pueden dividir en dos tipos: de balance de fuerzas y de movimiento-balance, los cuales son los más comunes y se utilizan extensamente en la industria. El sensor puede estar o no integrado al transmisor Microcontroladores Definición El Microcontrolador es un circuito integrado programable que contiene todos los componentes de un computador necesarios para realizar tareas complejas y gobernar una gran cantidad de dispositivos y artefactos, en su interior posee las tres unidades funcionales de una computadora, como: CPU, Memoria y Unidades de Entrada y Salida Periféricos Integrados en los Microcontroladores PIC Convertidor A/D Es usual trabajar el microcontrolador con señales analógicas, y estas deben ser convertidas a formato digital es por eso que algunos incorporan un convertidor A/D, el cual se utiliza para tomar los datos de varias entradas diferentes. La resolución depende de la cantidad de dígitos binarios que se usen para representar al valor medido. Valores de 5, 8 o 12 bits son los usuales, pero en realidad no hay limitaciones teóricas pero si practicas que determinen un número máximo de bits por muestra. Cuando mayor sea la cantidad de bits empleada, mayor será la resolución del conversor. Existen dos tipos básicos de conversores, si se clasifican según la forma en que entregan los datos digitalizados: seriales y paralelos. Los conversores seriales tienen menos cantidad de terminales, ya que lee los bits del valor medido de uno en uno, por un solo terminal. El microcontrolador debe ir enviando pulsos de reloj a una determinada velocidad por un terminal del circuito integrado, y en otro
17 van apareciendo los datos medidos. Estos convertidores pueden ser de tantos bits según la familia que se escoja, poseen una tensión de referencia que puede ser interna o externa. En algunos de los microcontroladores PIC la conversión sólo se realiza con la entrada de uno de sus canales, depositando el resultado en un registro para provocar una interrupción si es necesario. Método de aproximaciones sucesivas Este tipo de convertidor es el más utilizado cuando se requieren velocidades de conversión entre medias y altas del orden de algunos microsegundos a décimas de microsegundos. En el diagrama de bloque de la Fig. 3.3 puede verse un sistema de conteo por aproximaciones sucesivas, que básicamente, está formado por un registro de desplazamiento de n bits controlados por un circuito digital. Estos circuitos suelen suministrarlos los fabricantes de Circuitos Integrados. El proceso de conversión para este tipo de convertidores se basa en la realización de comparaciones sucesivas de manera descendente o ascendente, hasta que se encuentra la combinación que iguala la tensión entregada por el digital analógico (D/A) y la de entrada. Para el ejemplo de la Fig. 3.4 el arranque parte siempre de cero, el registro de aproximaciones sucesivas, comienza poniendo a nivel lógico1 el bit de más significativo, quedando el resto a cero, o sea, forma el valor 100 (para este ejemplo se utilizarán sólo tres bits), que corresponde a la mitad de la máxima excursión de la tensión de entrada. Este valor es transformado a señal analógica. Clock Vi + Circuito de aproximaciones sucesivas - Salida Digital Convertidor D/A
18 Fig.3.3. Diagrama de bloques del método de aproximaciones sucesivas. Fuente: Elaboración Propia Si esta señal es mayor que el voltaje de entrada V i, el comparador varía dando lugar a una señal que hace que el registro varíe su contenido, sustituyendo el 1 del bit más significativo por un 0 y colocando en el bit de peso inmediatamente inferior un 1, quedando inalterado el resto de los bits (010). Por el contrario si la señal fuese menor que V i, el registro no modifica el bit de más significativo inmediatamente inferior a 1, dejado a 0 el resto de los bits (110). Tanto en un caso como en otro, se efectúa una nueva conversión D/A y luego se modifica el registro con el mismo criterio. El proceso se repite hasta alcanzar el bit de menos significativo. En el siguiente esquema, se muestra el diagrama de transiciones para 3 bits donde se indica el proceso de búsqueda de la combinación digital. El proceso se repetirá n veces, siendo n el número de bits del registro de aproximaciones sucesivas. Por lo tanto el tiempo empleado en la conversión es independiente del valor de la señal analógica de entradas Fig.3.4 Diagrama de transiciones para 3 bits.
19 Fuente: Elaboración Propia Temporizadores (Timers) Una exigencia en las aplicaciones de control es la regulación estricta de los tiempos que duran las diversas acciones que realiza el sistema. El dispositivo típico destinado a gobernar los tiempos recibe el nombre de temporizador o "timer" y, básicamente, consiste en un contador ascendente o descendente que determina un tiempo determinado entre el valor que se le carga y el momento en que se produce su desbordamiento o paso por 0. Es común que los microcontroladores tengan más de un temporizador e incluso algunos poseen un arreglo de contadores. [5] En la figura mostrada anteriormente se observa un contador descendente, que una vez cargado con un valor, se decrementa al ritmo de los impulsos de reloj hasta que llega cero. Carga del Contaje Impulsos de Reloj Contador Descendente TEMPORIZADOR Fin del Contaje Fig. 3.5 Esquema simplificado de un temporizador. Fuente: Elaboración Propia. Los temporizadores o timers son uno de los periféricos más habituales en los microcontroladores y se utilizan para diversas tareas, como por ejemplo: la medición de frecuencia, implementación de relojes, para el uso de otros periféricos que necesiten una base estable de tiempo. Generalmente los Microcontroladores más básicos poseen 2 Timer principales y según la familia, estos van aumentando en cantidad y complejidad, pero para los efectos de ilustración de cómo funciona un temporizador se tomará como referencia el TMR0 y el TMR1 de cualquier microcontrolador PIC.
20 TMR0 Fig. 3.6 Esquema del TMR0. Fuente: Data Sheet del PIC 18F4520. TMR1 Fig. 3.7 Esquema del TMR1. Fuente: Data Sheet del PIC 18F Recursos de Captura, Comparación y Ancho de pulsos (CCP) Los microcontroladores PIC poseen módulos llamados CCP (Capture/Compare/ PWM). Cada módulo de Captura/Comparación/PWM está asociado a un registro de control y un registro de datos. El registro de datos es comprimido en 2 registros: byte bajo y byte alto, todos estos registros tienen la capacidad para ser escritos y leídos.
21 El módulo CCP trabaja con un temporizador interno del microcontrolador escogido. Algunos microcontroladores PIC tienen un recurso asignado a cada temporizador, por lo general el de captura y comparación es asignado a un solo temporizador y el de PWM a un temporizador distinto. Modo de Captura Captura información de los 16 bits contenida en el Timer, siempre y cuando ocurra un evento en los terminales definidos para esta tarea. El modulo CCP se encuentra asociado a un puerto específico según el tipo de microcontrolador PIC que se utilice. Para la operación de captura los terminales asociados se deben configurar como entrada. Los acontecimientos que suceden para que se lleve a cabo la operación de captura son los siguientes: - Flanco ascendente. - Flanco descendente. - Cada 4 cuatro flancos ascendentes Flancos ascendentes. Al generarse una interrupción de captura se activa una señal perteneciente al registro relacionado con la interrupción de captura (este terminal siempre se activa y la configuración de permisos la habilita el usuario desde el software), este genera una interrupción para leer el valor que se encuentra dentro del registro, en caso de que se produzca la interrupción de captura y no se haya leído correctamente el contenido del registro se borra y pasa a esperar una nueva interrupción de captura. Una aplicación del modo de captura puede ser la medición de los intervalos de tiempo que existen entre los pulsos que llegan a un determinado terminal de entrada. Modo de Comparación Cuando un módulo CCP trabaja en la operación de comparación, el contenido del registro se compara continuamente con el valor del Timer asociado para esta operación. Una
22 vez configurado el terminal del puerto donde se va a trabajar como salida y coinciden ambos valores, puede cambiar a un valor lógico 1, a 0 o bien no variar, pero de igual forma se activará una señal, y si el bit de permiso esta activado se genera una interrupción. Modo de Ancho de Pulsos (PWM) En este modo el terminal que se encuentre programado como salida, varia entre 0 y 1 a intervalos variables de tiempo. Cuando el valor del registro asociado coincide con los bits más significativos del Timer asociado para este modo, el terminal mencionado pasa a 1 y el Timer toma el valor 0 y reanuda la cuenta. El contenido del registro CCPRxL pasa a CCPRHxH y se compara con el Timer. Cuando ambos coinciden en el terminal involucrado pasa a 0 y se repite la secuencia USART Es el acrónimo de Universal Synchronous / Asynchronous Transmitter (Transmisor y Receptor Sincrónico/Asincrónico Universal). Este periférico trabaja con la transmisión de datos en formato serie, utilizando técnicas de transmisión sincrónica o asincrónica, según se configure el periférico. Este periférico generalmente se confunde con algunos de los estándares de comunicación que lo utilizan para la interconexión entre equipos terminales de datos (ETD) y equipos de circuito de datos (DCE), dentro de estos estándares el más popular es el EIA-232, conocido también como RS-232; se utiliza para la interconexión mediante otros estándares como el RS-485 y el RS-422. Sus salidas, generalmente son del tipo TTL, aunque actualmente también se pueden encontrar otros niveles lógicos dentro de la gama de valores aceptados por el estándar de la IEEE, para sistemas digitales. Para comunicar el USART con otros dispositivos, se requiere el uso de circuitos integrados como un MAX232 o MAX485 que permitan adecuar los niveles de tensión, a los utilizados por RS-232 o RS-485. La característica más destacable de este tipo de periféricos es que utiliza solamente dos terminales para el envío y recepción de datos.
23 Comunicación SPI Comunicación SPI (Serial Peripheral Interface) El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos [17]. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier electrónica digital que acepte un flujo de bits serie regulado por un reloj. Incluye una línea de reloj, dato entrante, dato saliente y un terminal de selección, que conecta o desconecta la operación del dispositivo con el que uno desea comunicarse. De esta forma, este estándar permite multiplexar las líneas de reloj y datos. Muchos sistemas digitales tienen periféricos que necesitan existir pero no ser rápidos. La ventajas de un bus serie es que minimiza el número de conductores, terminales y el tamaño del circuito integrado. Esto reduce el costo de fabricar montar y probar la electrónica. Un bus de periféricos serie es la opción más flexible cuando muchos tipos diferentes de periféricos serie están presentes. El hardware consiste en señales de reloj, data in, data out y chip select para cada circuito integrado que tiene que ser controlado. Muchos dispositivos seriales pueden ser controlados con esta combinación de señales. Los dispositivos se diferencian en un número predecible de formas. Unos leen el dato cuando el reloj sube otros cuando el reloj baja. Algunos lo leen en el flanco de subida del reloj y otros en el flanco de bajada. Escribir es casi siempre en la dirección opuesta de la dirección de movimiento del reloj. Algunos dispositivos tienen dos relojes. Uno para capturar o mostrar los datos y el otro para el dispositivo interno. Fig. 3.8 Comunicación sencilla maestro-esclavo. Fuente:
24 Ventajas - Comunicación full-duplex. - Mayor velocidad de transmisión que con I²C (Inter Integrated Circuit) o SMBus (System Magnament Bus). - Es un estándar flexible en que se puede tener un control absoluto sobre los bits transmitidos. No está limitado a la transferencia de bloques de 8 bits. Elección del tamaño de la trama de bits, de su significado y propósito. Su implementación en hardware es extremadamente simple. - Consume menos energía y su configuración es más simple que I²C o que SMBus debido que posee menos circuitos (incluyendo las resistencias pull-up). - No es necesario arbitraje o mecanismo de respuesta ante fallas. - Los dispositivos esclavos usan el reloj que envía el maestro, no necesitan por tanto su propio reloj. - No es obligatorio implementar un transceptor (emisor y receptor), un dispositivo conectado puede configurarse para que sólo envíe, sólo reciba o ambas cosas a la vez. - Usa menos terminales en cada chip/conector que una interfaz paralela equivalente. - Una señal específica para cada esclavo (señal SS), las demás señales pueden ser compartidas. Desventajas - Consume más terminales en cada chip que I²C, incluso en la variante de 3 hilos. - El direccionamiento se hace mediante líneas específicas (señalización fuera de banda) a diferencia de lo que ocurre en I²C que se selecciona cada chip mediante una dirección de 7 bits que se envía por las mismas líneas del bus. - No hay control de flujo por hardware. - No hay señal de reconocimiento. El maestro podría estar enviando información sin que estuviese conectado ningún esclavo y no se daría cuenta de nada. - No permite fácilmente tener varios maestros conectados al bus. - Sólo funciona en las distancias cortas a diferencia de, por ejemplo, RS-232, RS-485.
25 3.2.3 Memoria En los microcontroladores la memoria no es abundante. Típicamente la memoria de programas no excederá de 16K de localizaciones de memoria no volátil para instrucciones y la memoria RAM ni siquiera llegará a exceder los 5 Kilobytes. La memoria RAM está destinada al almacenamiento de información temporal que será utilizada por el procesador para realizar cálculos u otro tipo de operaciones lógicas. En el espacio de direcciones de memoria RAM se ubican además los registros de trabajo del procesador y los de configuración y trabajo de los distintos periféricos de los microcontroladores PIC. Es por ello que en la mayoría de los casos, aunque se tenga un espacio de direcciones de un tamaño determinado, la cantidad de memoria RAM de que dispone el programador para almacenar sus datos es menor que la que puede direccionar el procesador. La repercusión más importante del empleo de la arquitectura Harvard en los microcontroladores PIC se manifiesta en la organización de la memoria del sistema. La memoria de programa es independiente de la de los datos, teniendo tamaños y longitudes de palabra diferentes [16] Memoria de ROM de máscara ROM de máscara. En este caso no se graba el programa en memoria sino que el microcontrolador se fabrica con el programa, es un proceso similar al de producción de los CD comerciales mediante masterización. El costo inicial de producir un circuito de este tipo es alto, porque el diseño y producción de la máscara es un proceso costoso, sin embargo, cuando se necesitan varios miles o incluso cientos de miles de microcontroladores para una aplicación determinada, como por ejemplo, algún electrodoméstico, el costo inicial de producción de la máscara y el de fabricación del circuito se distribuye entre todos los circuitos de la serie y, el costo final de ésta, es bastante menor que el de sus semejantes con otro tipo de memoria.
26 EEPROM (Electrical Erasable Programmable Read Only Memory) Fueron el sustituto natural de las memorias EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son necesarios. Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron más baratos y cómodos para trabajar que sus equivalentes con memoria EPROM. Otra característica destacable de este tipo de microcontrolador es que fue en ellos donde comenzaron a utilizarse los sistemas de programación en circuito o ICSP (In Circuit Serial Progamming) que evitan tener que sacar el microcontrolador de la tarjeta que lo aloja para hacer actualizaciones al programa Flash En el campo de las memorias reprogramables para microcontroladores, son el último avance tecnológico en uso a gran escala, y han sustituido a los microcontroladores con memoria EEPROM. A las ventajas de las memorias FLASH se le adicionan su gran densidad respecto a sus predecesoras lo que permite incrementar la cantidad de memoria de programas a un costo muy bajo. Pueden además ser programadas con las mismas tensiones de alimentación del microcontrolador, el acceso en lectura y la velocidad de programación es superior, disminución de los costos de producción, entre otras. Lo más habitual es encontrar que la memoria de programas y datos está ubicada toda dentro del microcontrolador, de hecho, actualmente son pocos los microcontroladores que permiten conectar memoria de programas en el exterior del encapsulado. Las razones para estas limitaciones están dadas porque el objetivo fundamental es obtener la mayor integración posible y conectar memorias externas consume líneas de E/S que son uno de los recursos más preciados de los microcontroladores. A pesar de lo anterior existen familias como la INTEL 51 cuyos microcontroladores tienen la capacidad de ser expandidos en una variada gama de configuraciones para el uso de memoria
27 de programas externa. En el caso de los PIC, estas posibilidades están limitadas sólo a algunos microcontroladores de la gama alta, la Fig. 3.9 muestra algunas de las configuraciones para memoria de programa que podemos encontrar en los microcontroladores. La configuración (a) es la típica y podemos encontrarla casi en el 100% de los microcontroladores. La configuración (b) es poco frecuente y generalmente se logra configurando al microcontrolador para sacrificar la memoria de programas interna, sin embargo el 8031 de INTEL es un microcontrolador sin memoria de programas interna. La configuración (c) es la que se encuentra habitualmente en los microcontroladores que tienen posibilidades de expandir su memoria de programas como algunos PIC de gama alta [18]. Fig. 3.9 Algunas configuraciones para memoria de programas en microcontroladores. Fuente: Cuando se requiere aumentar la cantidad de memoria de datos, lo más frecuente es colocar dispositivos de memoria externa en forma de periféricos, de esta forma se pueden utilizar memorias RAM, FLASH o incluso discos duros como los de las PC, mientras que para los cálculos y demás operaciones que requieran almacenamiento temporal de datos se utiliza la memoria RAM interna del microcontrolador. Esta forma de expandir la memoria de datos está determinada, en la mayoría de lo casos, por el tipo de repertorio de instrucciones del procesador y porque permite un elevado número de configuraciones distintas, además del consiguiente ahorro de líneas de E/S que se logra con el uso de memorias con buses de comunicación serie. 3.2 Medición de Frecuencia Integración de pulsos
28 La medición de la frecuencia de una señal periódica implica la determinación del número de ciclos por unidad de tiempo, es decir, es un proceso de conteo de pulsos generados para condiciones iguales de la señal, dentro de un intervalo de tiempo patrón.[12] Para la determinación de la frecuencia incógnita, la señal de la entrada con frecuencia fx (ver figura 3.10), se convierte en pulsos de igual período, los que ingresan a un contador, cuyo tiempo de apertura (base de tiempo) está fijado por un elemento flip-flop biestable. El oscilador patrón genera una onda de frecuencia estable, la cual se transforma en una secuencia de pulsos. Estos pulsos comandan el flip-flop biestable definiendo así el tiempo de apertura durante el cual se cuantifican los N pulsos correspondientes a fx. Fig Diagrama de bloques de la integración de pulsos. Fuente: Instrumentación digital - Medición de frecuencia Medición de período Los microcontroladores PIC de la familia RISC, han sido diseñados para proveer un funcionamiento avanzado en la solución de una variedad de aplicaciones. Para este trabajo se utiliza la aplicación de Timer asociado al modulo de captura, y el módulo de Captura para la medición de frecuencia, mediante la medición de período. El proceso de medición de período (ver Fig ) es el siguiente:
29 - El módulo de Captura almacena el valor (de 16bits) del Timer en los registros de Captura, en el momento que ocurre un evento en el terminal de Captura. Un evento está definido como: cada flanco ascendente de la señal de entrada del terminal de Captura. El inicio del proceso de medición ocurre cuando es detectado el primer evento, comenzando en este momento el conteo del Timer. - En el siguiente flanco de subida, el registro de Captura es cargado con el valor del Timer, se guarda en la memoria RAM y las banderas de la interrupción de Captura y del Timer son limpiadas. - Si el período es más grande que el overflow del Timer, el registro de overflow, causa una interrupción, y un contador específico es incrementado. Fig Medición de Período. Fuente: Nota de Aplicación de Microchip AN Análisis de la Resolución La resolución en la medición de frecuencia, está definida por el tiempo de apertura durante el cual se cuantifican los Npulsos correspondientes a Fx.
30 La base de tiempo elegida, define la resolución del instrumento (mínimo incremento de la cantidad medida que es capaz de detectar, dada en el instrumento digital por el dígito menos significativo). - Para una frecuencia máxima Fx, la cantidad de tiempo a resolver vendrá dado por: 1 1 T Re sol (Ec. Fx Fx Re shz 3.2) Donde: Fx: es la frecuencia de la señal de la entrada, en Hz. ResHz: es la resolución requerida, en Hz. A un período de reloj Tcy se requerirá medir sobre Npulsos o periodos de la señal de entrada Fx dado por: Tcy Npulsos (Ec. T Re sol 3.3) Requiriendo un tiempo de integración mínimo de: 3.4) 1 T int * Npulsos (Ec. Fx Tcy T int Fx * T Re sol (Ec. Simplificando TResol: 3.6) 3.5) T Re sol Fx Re shz Fx Fx *( Fx Re shz ) (Ec. T Re sol Re shz Fx *( Fx Re shz (Ec. 3.7)
31 Sustituyendo en Tint y simplificando: T int Tcy * Fx Re shz Re shz (Ec. 3.8) Fx Re shz Número de pulsos a resolver Despreciando el termino ResHz, del numerador de la fracción de la ecuación anterior, resulta la ecuación final de Tiempo de integración en segundos. 3.9) (Ec. Siendo Tcy 4 Fcristal (Ec. 3.10) Fuente: Ing. Efraín Roca (Notas de curso). 3.4 Algoritmos de control Clasificación de los Algoritmos de Control Control Todo/Nada (ON/OFF) Control Proporcional Control Proporcional Derivativo (PD) Control Proporcional Integral (PI) Control Proporcional Integral-Derivativo (PID)
32 3.4.2 Control Todo/Nada (ON/OFF) Es un esquema muy utilizado por su simplicidad y bajo costo de implementación. En un control Todo/Nada la salida del controlador toma sólo dos posibles valores, lo que se traduce en el elemento final de control, como un estado abierto o cerrado. Opera satisfactoriamente en procesos con una lenta velocidad de reacción y con tiempo de retardo mínimo. Su principal problema es que la salida oscila repetidas veces cuando la variable controlada se encuentra cerca del punto de ajuste. La causa primordial de estas oscilaciones es el ruido que pueda afectar al sensor de medición, que es interpretado como una fluctuación rápida por encima y por debajo del punto de ajuste. Si el elemento final de control no es un dispositivo de estado sólido, sino un relay o una válvula, la rápida conmutación que ocurre pudiera deteriorarlo en poco tiempo. [3] Por el problema mencionado anteriormente, el control Todo/Nada suele implementarse con una banda diferencial o zona muerta. La salida del controlador no cambia de estado mientras la variable de proceso se encuentre dentro de esta zona, ver Fig Fig Salida de un controlador bajo esquema ON-OFF con Banda Diferencial. Fuente: Elaboración Propia. Con la presencia de la banda diferencial se logra un tiempo de ciclo Todo/Nada más lento eliminándose así los efectos del ruido en la medición Control Proporcional
33 El algoritmo de un control proporcional entrega una salida que varía en forma proporcional al error (SP-PV), SP es el set point y PV es la variable de proceso. Para poner en marcha un controlador proporcional se deben fijar los siguientes parámetros: el set point, la banda proporcional (Pb) y el tiempo de ciclo (tc). La banda proporcional se configura como un porcentaje de SP. Corresponde a una banda de la variable de proceso situada por debajo del SP a lo largo de la cual, la salida variará proporcionalmente al error (SP-PV), disminuyendo cuanto más cercana sea la variable de proceso al SP. La salida del controlador en porcentaje viene dada por la siguiente formula: Salida [ 100%* E / banda] (Ec. 3.11) Donde: banda Pb*SP/ 100 (Ec. 3.12) 3.13) E ( SP PV) (Ec. La misma formula se puede escribir en términos de la ganancia proporcional como: Salida [ Kp * E] (Ec. 3.14) Donde: Kp 100%/( Pb* SP/100%) (Ec. 3.15) La constante Kp se conoce como la ganancia proporcional del control y es inversamente proporcional a Pb. En la figura 3.13 se observa el comportamiento típico de un control proporcional, con variable de proceso temperatura vs. tiempo. [19]
34 Fig Salida de un controlador proporcional. Fuente: Desarrollo de sistemas de regulación y control. El control proporcional presenta el problema que la variable de proceso jamás se estabilizará justo en el valor del set point. En la práctica se estaciona siempre en un punto dentro de la banda proporcional, produciendo así el error estacionario Control Proporcional Integral Retomaremos ahora el problema inconcluso del error estacionario tratado en la sección anterior dedicada al control proporcional. La forma efectiva de solucionar el problema del error estacionario es agregando al control proporcional el termino Integral llamado también a veces automatic reset o reset action, aquí se llamara acción integral. El control será el mismo proporcional, pero a la salida se le suma la acción integral, que la corrige tomando en cuenta la magnitud del error y el tiempo que este ha permanecido. Para ello se le programa al control una constante Ki, que es formalmente la cantidad de veces que aumenta la acción proporcional por segundo. La integral del error es simplemente la suma acumulada de los errores medidos por el control cada segundo. [19]
35 La deducción del algoritmo de control PI es como sigue: La ecuación del algoritmo PI es: 1 Mn ( t) Kp * E( t) E( t) (Ec. Ti 3.16) En donde: Mn(t): es la salida aplicando la acción Proporcional + Integral Kp: es la constante proporcional Ti: es la constante de tiempo integral E(t) viene dada por las siguientes ecuaciones: Si la Acción es Directa: E n PV SP Span *100 (Ec.3.17) Si la acción es Inversa: E n SP PV Span *100 (Ec. 3.18) En el dominio de Laplace: Mn( S) K * E( S) K E( S) * Ti S (Ec. 3.19) Sacando factor común y simplicando: Mn( S) S * Ti* K * E( S) K * E( S) S * Ti (Ec. 3.20) S * Mn( S) S * Ti* K * E( S) K * E( S) Ti Ti (Ec. 3.21)
36 S * Mn( S) K * S * E( S) K * E( S) Ti (Ec. 3.22) Aplicando Diferencias Finitas: Mn Ts K * E n Ts E n 1 K Ti * E n (Ec. 3.23) M n M n K * Ts* En 1 K * En En 1 (Ec. Ti 3.24) Se obtiene finalmente la salida del controlador PI: M n M n 1 K *( En En 1) K * Ts* E Ti n (Ec. 3.25) Salida como Controlador: La salida en corriente puede expresarse según la ecuación 5.16: ma out ma low Mn *( ma 100 high ma low ) (Ec. 3.26) Fuente: Ing. Efraín Roca (Notas de curso). 3.5 Dispositivos auxiliares de Hardware Pantalla de visualización LCD Una pantalla de cristal líquido o LCD (acrónimo del inglés Liquid crystal display) es una pantalla delgada y plana formada por un número de píxeles en color o monocromos
37 colocados delante de una fuente de luz o reflectora. A menudo se utiliza en pilas, dispositivos electrónicos, ya que utiliza cantidades muy pequeñas de energía eléctrica. [20] Fig Pantalla de Cristal Líquido de 2 líneas por 8 caracteres. Fuente: Manejo de la Pantalla LCD Existen en el mercado una enorme variedad de pantallas de cristal liquido (Liquid Cristal Display, o LCD), de un precio accesible, con características comunes en cuanto a la interfaz y programación, gracias a que la mayoría utiliza para comunicarse con el exterior el mismo chip de la empresa Hitachi, el HD Esto hace posible que con un puñado de instrucciones se puede manejar desde un sencillo display de una línea de 16 caracteres a uno de 4 líneas y 80 caracteres. [21] Hitachi HD44780 Las características de un display LCD 2x16 típico con HD44780 son, entre otras, una alimentación a partir de 5 voltios de corriente continua (algunos modelos soportan un rango de 3V a 6.5V), un consumo típico de 5 miliamperes (sin backlight). Disponen de un juego de caracteres incluidos en la memoria ROM del LCD, formados a partir de una matriz de puntos de 5x8, con 240 caracteres predefinidos (letras mayúsculas, minúsculas, signos de puntuación, números, etc.) y 8 caracteres definibles por el usuario. El cursor se puede elegir entre uno que es un bloque de 5x7, y otro que es un guión, ambos fijos o titilando. También es posible mostrar y esconder el cursor a voluntad, y moverlo a cualquier posición del display. Permite el encendido y apagado del LCD mediante software, importante para ahorrar energía (por
38 ejemplo, si ha pasado un cierto tiempo sin que el operador presione alguna tecla, el display se podría apagar y volver a encender cuando se pulse cualquier tecla). Fig Aspecto del chip HITACHI HD El Hardware El aspecto físico de estas pantallas son básicamente una pequeña placa de circuito impreso con un par de circuitos integrados (tipo gota) pegados en una de sus caras, y la pantalla propiamente dicha en la otra, rodeada de una estructura metálica que la protege. Esta placa casi siempre dispone de agujeros para poder fijar el conjunto a un chasis o gabinete sin grandes complicaciones. Desde el punto de vista eléctrico, hay un conector (a veces solo agujeros metalizados donde soldar los cables) que tiene 14 terminales en los que no poseen iluminación propia (backlight) o 16 en los que la tienen. Mediante las señales apropiadas enviadas y recibidas desde este conector, el display es capaz de representar caracteres, mostrar o esconder un cursor, encender o apagar la luz tarsera, borrar, etc Descripción de los terminales Como mencionamos, la gran mayoría de los displays existentes en el mercado respetan la misma distribución de terminales. Igualmente, antes de conectar nada, debemos asegurarnos de que así sea, para no dañar de forma permanente el LCD.
39 Fig Vista trasera de tarjeta de circuito impreso con sus circuitos integrados. Fig Terminales de una Pantalla sencilla LCD. display. A continuación se explicará la función que cumple cada uno de los terminales del Terminales 1,2 y 3: Estos terminales están dedicados a la alimentación y contraste del LCD. Efectivamente, el terminal 1 (VSS) es el que se debe conectar al negativo (masa) de la alimentación, y el terminal 2 (Vdd/Vcc) es el que va unido al positivo (5 voltios). El terminal 3 permite el ajuste del contraste del panel. Se puede unir al terminal 1 mediante un resistor de 220 ohms para obtener un contraste adecuado (pero fijo) o bien utilizar un potenciómetro o preset de 10 Kohm para variar el contraste a gusto. Terminales 4,5,6: Estos terminales son de alguna manera los que controlan el funcionamiento del display. El terminal 4, también llamado RS (Registration Select) es el que le indica al controlador interno del LCD que el valor presente en el bus de datos es un comando (cuando RS=0) o bien un caracter para representar (cuando RS=1). Terminal 5: ( R/W por Read/Write o Leer/Escribir ) permite decidir si queremos enviar datos al display (R/W=0) o bien nos interesa leer lo que el display tiene en su memoria o conocer su estado (R/W=1). Por último, el terminal 6 (E por Enable o habilitado ) es el que selecciona el display a utilizar. Es decir, podemos tener varios LCD conectados a un mismo bus de datos (terminales 7-14) de control, y mediante E seleccionar cual es el que debe usarse en cada momento.
40 Terminales 7, 8, 9, 10, 11, 12, 13, 14: Estos ocho terminales son el bus de datos del controlador de la pantalla. Llamados DB0-DB7 son los encargados de recibir (o enviar) los comandos o datos desde o hacia el display. DB0 es el bit de menos significativo y DB7 es el más significativo. Estas pantallas soportan dos modos de trabajo: en uno de ellos reciben en DB0-DB7 los 8 bits del dato, y en el otro, llamado modo de 4 bits reciben los datos en dos mitades (nibbles) por los terminales DB4-DB7, en dos pasos sucesivos. Si bien esto puede complicar ligeramente la programación, supone un ahorro de 4 terminales en el bus de datos, y esto en microcontroladores con pocos terminales de E/S es muy útil Conversión Digital Analógica (CDA) Las magnitudes físicas (como corriente y voltaje) son analógicas en su estado natural, pero para efectos de procesado y transmisión, resulta más conveniente representar en forma digital, ya que los requerimientos de precisión pueden ser facilitados enormemente. De esta forma, el esquema de procesado de un sistema electrónico adopta típicamente el esquema de la Fig Una señal eléctrica procedente de un sensor o de otro sistema es convertida de analógica a digital; una vez en ese estado es procesada y/o transmitida, y finalmente es convertida de nuevo a magnitud analógica que acturá sobre algún instrumento. De esta forma se puede observar como, respecto a un sistema de transmisión y procesado totalmente anaógico, aparecen dos nuevos bloques, como son el convertidor digital/analógico o DA. Señal Analógica Convertidor Analógico Digital Sistema de Transición o Procesado de Señal Convertidor Digital Analógico Señal Analógica Fig Esquema típico de circuito procesador de señal.
41 Fuente: Elaboración propia. Una palabra digital (D) se representa como una cadena de n bits b 1, b 2,, b n representando en codificación binaria un número valor, este puede adquirir 2 n valores comprendidos entre 0 y 1 ½ n, equiespaciados ½ n. 3.27) D b1 b2 b3 b... n (Ec n El bit b 1 es el que tiene mayor contribución al valor D, por lo que se denomina bit más significativo, mientras que en el extremo opuesto el bit b n es el menos significativo. En un convertidor D/A, a partir de una palabra digital se obtiene una tensión a la salida proporcional al valor D, y a una tensión de referencia del convertidor V ref. Si para generalizar añadimos un posible factor de escala K, la tensión de salida de un convertidor D/A se expresa como: V out KV ref D KV ref b1 b2 bn... (Ec. 1 2 n ) Gráficamente, la función de transferencia que relaciona la salida analógica con la entrada digital adquiere el aspecto de una escalera con 2 n escalones iguales, tal como se muestra en la Fig Por lo tanto, la palabra digital expresará una tensión analógica con una resolución finita, y para tener una mejor resolución se deberá contar con un mayor número de bits. Sin embargo, no tiene sentido aumentar arbitrariamente el número de bits si el nivel de ruido o la imprecisión con la que podemos obtener la tensión de salida son superiores al valor de la resolución, ya que entonces los bits menos significativos contendrán una información que se perderá al realizarse la conversión a analógico. [23]
42 Fig Curva de transferencia ideal de un convertidor digital / analógico. Fuente: Diseño de circuitos y sistemas integrados. Donde: - KV ref = Tensión de fondo de escala (Valor máximo). - K.(V ref /2 n ) = Resolución (Valor del escalón de tensión que se produce entre dos valores digitales consecutivos y es igual al valor de salida producido por el bit menos significativo). - DR= 20 log 2 n = Rango Dinámico (Es la relación entre el fondo de escala y la resolución expresada en decibelios). - Cabe observar que por el hecho de que D sólo puede adquirir 2 n posibles valores, la salida del convertidor no podrá adquirir cualquier valor de tensión entre 0 y KV ref, sino sólo valores equiespaciados en (KV ref /2 n ) Clasificación de los convertidores D/A Convertidor Digital/Analógico de R-2R Anteriormente se ha visto que los CDA de resistencias ponderadas son adecuados para conversiones de pocos bits. Para resoluciones mayores de 8 bits los valores óhmicos integrados son complicados de obtener y las derivas térmicas difíciles de compensar. De ahí que se empleen modelos de redes R-2R, también con un formato paralelo. Estos poseen sólo dos valores distintos de resistencias y pueden extenderse a cuantos bits se quiera. La Fig muestra un circuito prototipo. Al igual que el modelo de resistencias ponderadas, consta de una red de conmutadores, una referencia estable de tensión y la red o escalera R-2R de precisión. La salida se conecta a un circuito aislador que permite conectarlo sin carga a la siguiente etapa.
43 Fig Circuito R-2R en escalera. Fuente: Instrumentación Electrónica. El análisis de la escalera se realiza evaluando los equivalentes de Thevenin desde los puntos señalados en la Fig Desde cualquiera de estos puntos la resistencia equivalente resulta ser R. En efecto, por ejemplo, desde P0 es trivial ver que el equivalente paralelo es 2R//2R=R. Desde P1 hay que hacer algo más pero también es fácil ver que vale R. Lo vemos en la Fig. 3.21: Fig Resistencias Equivalentes. Fuente: Instrumentación Electrónica. Las tensiones equivalentes vistas desde los puntos son: Hasta P 0 : S0 Vref V equ (Ec. 3.29) 2 Hasta P 1 : V equ S0 4 S1 2 V ref (Ec. 3.30)
44 Hasta P 2 : V equ S0 S1 S2 Vref (Ec. 3.31) Hasta P N-1 : V equ S 2 S 2 S 2... S N 1 N N 1 N 2 ref (Ec. 3.32) V En efecto, desde P0 se ve una resistencia 2R 2R, y desde P1 queda una resistencia equivalente de valor R. el resto de las cuentas se realiza con divisores de tensión. Finalmente, la tensión de salida es: V N 1 ref i V equ Si 2 (Ec. 3.33) N 2 i 0 Los CDA de resistencias ponderadas y en escalera se emplean en procesos de conversión lineales. Con el fin de mejorar el rechazo a las interferencias en señales de bajo nivel se emplean CDA logarítmicos. Una aplicación típica de estos convertidores es la transmisión de voz. La mayoría de los CDA comerciales incorporan retenedores de orden cero (ZOH; Zero Order Hold). Esto significa que convierten la entrada binaria en su nivel analógico y luego retienen el valor hasta que llega la siguiente muestra. El resultado es una señal en forma de escalera. Se suele emplear un filtro reconstructor para suavizar la salida del CDA. [24] 3.6 Programas Auxiliares para el desarrollo de aplicaciones con microcontroladores Programas ensambladores de bajo nivel Lenguaje Assembler El lenguaje ensamblador es un lenguaje de bajo nivel para programación de computadoras. Este implementa una representación simbólica de códigos numéricos de máquinas y otras constantes necesarias para programar una arquitectura particular de
45 CPU. Esta representación es generalmente definida por el fabricante del hardware, y es basada en abreviaciones que ayudan a programar recordando instrucciones individuales, registros, etc. El lenguaje Ensamblador fue desarrollado por primera vez en los años 50, y fue referido a la segunda generación de lenguajes de programación. Con esto se eliminó gran parte de los errores de tiempo y dinero comparado con la primera generación. Sin embargo para 1980, su utilización ha sido en gran parte suplantado por lenguaje de alto nivel, en la búsqueda de la productividad en programación. Hoy en día, este lenguaje es usado principalmente para manipulación directa de hardware, para el acceso a los procesadores especializados de instrucciones, o para hacer frente a problemas de rendimiento crítico. El término ensamblador se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador. [25] Funcionamiento El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador. Tipos de Ensambladores - Ensambladores Básicos: Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas (o
46 meta instrucciones) que indican ciertos parámetros de funcionamiento del ensamblador. - Ensambladores Modulares: También llamado macro ensambladores. Descendientes de los ensambladores básicos, fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros) Programación basada en alto nivel Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas. En los primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedimentales. Otra limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y rápida. La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el simbólico tiene ciertas ventajas: - Mayor adaptación al equipo. - Posibilidad de obtener la máxima velocidad con mínimo uso de memoria. Pero también tiene importantes inconvenientes: - Imposibilidad de escribir código independiente de la máquina. - Mayor dificultad en la programación y en la comprensión de los programas. Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera generación" o "de alto nivel", en contraposición a los "de bajo nivel" o de nivel próximo a la máquina. [26] Principales lenguajes de alto nivel
47 Basic BASIC es una familia de lenguajes de programación. Fue originalmente ideado como una herramienta de enseñanza; se diseminó entre los microcomputadores caseros a partir de la década de 1980, y sigue siendo muy popular hoy en día, en muchos dialectos bastante distintos del original. BASIC es el acrónimo de Beginners All-purpose Symbolic Instruction Code; por correspondencia con Thomas E. Kurtz. (Traducido al español: "código de instrucciones simbólicas de propósito general para principiantes") y está ligado al nombre de un trabajo sin publicar del co-inventor de l lenguaje, Thomas Kurtz). [27] Lenguaje C C es un lenguaje de programación creado en 1972 por Ken Thompson y Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones. Se trata de un lenguaje débilmente tipificado de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos. La primera estandarización del lenguaje C fue en ANSI, con el estándar X El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portátiles dependientes del compilador o del sistema operativo.
48 C es un lenguaje de programación relativamente minimalista. Uno de los objetivos de diseño de este lenguaje fue que sólo fueran necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que hiciera falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes. En parte a causa de ser relativamente de bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (seguramente más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores. [26] Características Importantes - Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de ficheros, proporcionados por bibliotecas. - Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado no llevado al extremo. - Un sistema de tipos que impide operaciones sin sentido. - Usa un lenguaje de preprocesado, el pre-procesador de C, para tareas como definir macros e incluir múltiples ficheros de código fuente. - Acceso a memoria de bajo nivel mediante el uso de punteros. - Interrupciones al procesador con uniones. - Un conjunto reducido de palabras clave. - Los parámetros se pasan por valor. El paso por referencia se puede simular pasando explícitamente el valor de los punteros Programas compiladores Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es
49 código máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. [28] MikroBasic La empresa MikroElectrónica (Inc.) distribuye una herramienta compiladora para trabajar con microcontroladores PIC llamada MikroBasic. Esta herramienta esta diseñada para darle al usuario una solución fácil para el desarrollo de aplicaciones con microcontroladores y los distintitos tipos de periféricos que estos puedan soportar. Este software posee una avanzado IDE (Integrated Development Enviroment) o Ambiente de Desarrollo Integrado, esta es una interfaz usada para realizar todas las tareas relacionadas como escribir y editar códigos, tareas de compilación y programación de los Microcontroladores. este software. A continuación se presenta un resumen de las herramientas más importantes que posee Ventanas y Sub-ventanas del IDE de MikroBasic
50 Fig Ventana del IDE de MikroBasic. Fuente: Mikrobasic Help. Editor de Códigos (Code Editor) En esta ventana el usuario se dispone a escribir el programa de uno o más proyectos. El Code Editor posee una herramienta muy práctica llamada Code Asistant donde se escriben las primeras letras de una palabra y después de presionar Ctrl+Space, todos los identificadores válidos que concuerdan con las letras que se escriben serán incitados en un panel flotante. Con esto se escoge cualquiera de las coincidencias guardadas por el programa con sólo pulsar la tecla ENTER. Fig 3.23 Ventana del Code Editor. Fuente: Mikrobasic Help. Explorador de Códigos (Code Explorer) La sub-ventana code Explorer está ubicada en la esquina superior derecha de la ventana principal y provee una vista detallada de todos los ítems declarados entro del código fuente.
51 Fig Ventana del Code Explorer. Fuente: Mikrobasic Help. Debbuger Watch Window Está diseñada para simular operaciones de Microcontroladores PIC mientras se corre el programa, esta ventana muestra las variables y registros del PIC, con su valor y dirección. Los valores son actualizados a través de la simulación, usando el menú se puede adicionar o remover los ítems que se quieran ver en la pantalla. Fig Ventana del Watch Window. Fuente: Mikrobasic Help. Stopwatch Window Esta ventana muestra el contador de ciclos/tiempo desde la última acción de Debugger. El cronómetro mide la ejecución de tiempo (número de ciclos) desde el momento
52 en que el Debugger comienza, y puede ser reiniciado en cualquier momento. Delta representa el número de ciclos entre la línea de instrucción previa (línea donde la acción del Debugger fue realizada) y línea de instrucción activa (donde la acción del debugger termina). Fig Ventana del Stopwatch Window. Fuente: Mikrobasic Help. Ventana de Error Muestra los errores detectados durante la compilación de un programa. Esta se localiza debajo de la ventana de código y muestra la localización y tipo de error que el compilador encuentra. El compilador también reporta advertencias, pero estas no afectan la salida sólo los errores pueden interferir con la generación del archivo hexagesimal. Fig Ventana del Error. Fuente: Mikrobasic Help. Aplicaciones de construcción Compilación Cuando se crea un proyecto y se escribe el código fuente, este se debe compilar para garantizar la buena codificación del mismo.
53 Output Files Luego de una compilación exitosa, el programa generará archivos de salida en la carpeta escogida para guardar el proyecto (esta carpeta debe contener el archivo del proyecto.pbp). Los archivos creados a partir de una compilación son los siguientes: Formato Intel HEX Binary List File Assembler File Descripción Archivo usado para programar el chip Distribución binaria de la aplicación que puede ser incluida en otros proyectos. Vista de la memoria del PIC;Dirección de instrucciones, Registros, Rutinas y Etiquetas. Archivo de assembler que puede ser leido con nombres simbolicos, extraidos de un archivo lista Tipo de Archivo.hex.mcl.lst.asm Tabla 3.1 Archivos creados a partir de una compilación. Fuente: elaboración propia. Mensajes de Error No. Mens Mensaje 1 Error: %s no es un identificador válido 2 Error: Tipo desconocido de %s 3 Error: Identificador %s no fue declarado 4 Error: %s esperado pero %s no encontrado. 5 Error: Argumento fuera de rango 6 Error: Error de sintaxis 7 Error: Archivo %s no encontrado 8 Error: Comando Invalido %s 9 Error: Parámetros insuficientes 10 Error: Muchos parámetros 11 Error: Muchos caracteres Error: Parámetros actuales y formales deben ser 12 idénticos 13 Error: Instrucción invalida de ASM: %s 14 Error: Identificador %s ya ha sido declarado. 15 Error: Error de sintaxis en la expresión 16 Error: Definición de archivo %s está corrompido
54 Tabla 3.2 Tabla de Error. Fuente: Elaboración propia. Mensajes de Indirectos (Hint) y de Alerta (Warning) No. Mens Mensaje 1 Hint: La Variable %s ha sido declarada, pero no usada. 2 Warning: La Variable %s no esta inicializada. 3 Warning: Retorna el valor de la función %s no definido. 4 Hint: Constante %s ha sido declarada pero no usada. Warning: Identificador %s elimina la declaración el 5 modulo %s. Tabla 3.3 Tabla de Mensajes Indirectos. Fuente: Elaboración propia. Interrupciones Las interrupciones pueden ser fácilmente manejadas por la palabra reservada interrupt. MikroBasic implícitamente declara el procedimiento interrupt el cual no permite que sea declarado. MikroBasic guarda la siguiente SFR (special function register) en un stack cuando se accede a la interrupción y las muestra: - Familia PIC12: W, STATUS, FSR, PCLATCH. - Familia PIC16: W, STATUS, FSR, PCLATCH. - Familia PIC18: FSR (usa un contexto rápido para salvar WREG, STATUS, BSR) Rutinas para llamar a las interrupciones Es posible llamar a las funciones y procedimientos. El compilador toma en cuenta los registros que están siendo usados, ambos en interrupt y en main, y trabaja haciendo un intercambio inteligente entre las dos, salvando sólo los registros que han sido usados en ambos. Las funciones y procedimientos que no tengan su propio frame (ningún argumento o variable local) pueden ser llamadas ambas desde la interrupción y el main thread.
55 A continuación se presenta un ejemplo manejando una interrupción desde el TMR0: sub procedure interrupt counter = counter + 1 TMR0 = 96 INTCON = $20 end sub En caso de habilitar múltiples interrupciones, se necesita verificar cual de las interrupciones ocurren para luego ser procesadas con el código apropiado (manejo de interrupción): sub procedure interrupt if TestBit(INTCON, TMR0IF) = 1 then counter = counter + 1 TMR = 96 ClearBit es realizado como una función, y puede ser llamado vithin como interrupción else if TestBit (INTCON, RBIF) = 1 then counter = counter +1 TMR = 96 ClearBit (INTCON,RBIF) end if end if end sub Lenguaje de referencia de MikroBasic Organización de un Programa MikroBasic posee una organización estricta de programa, a continuación se presentan modelos donde se pueden encontrar ejemplos de posibles programas a realizar. Organización del módulo principal Básicamente, la fuente principal posee 2 secciones: declaración y cuerpo de programa. Las declaraciones deben ser en el lugar propio del código, organizados de manera ordenada, de otra forma, el compilador no es capaz de comprender el programa correctamente.
56 Cuando se escriba el código de un programa, se debe seguir el modelo presentado a continuación. El módulo principal debe lucir de la siguiente manera. program <nombre del programa> include <incluye otros módulos> **************************************************** * Declaraciones (globales): **************************************************** declaración de símbolos symbol... declaración de constantes const... declaración de variables dim... declaración de procedimientos sub procedure procedure_name (...) <declaraciones locales>... end sub **************************************************** * Cuerpo de Programa: **************************************************** main: escriba su código aquí end. Organización de otros módulos Otros módulos pueden iniciar con la palabra module, la sección de implementación empieza con la palabra implements. A continuación se presenta un ejemplo. module <nombre del módulo> include <incluye otros módulos> **************************************************** * Interfaz (global): **************************************************** declaración de símbolos symbol... declaración de constantes const...
57 declaración de variables dim... prototipo de procedimeinto sub procedure procedure_name(...) prototipo de función sub function function_name(...) **************************************************** Implementación: **************************************************** implements declaración de constantes const... declaración de variables dim... declaración de procedimientos Sub procedure procedure_name (...) <declaración local>... end sub declaración de funciones sub function function_name (...) <local declrations>... end sub end. Librerias - ADC Library (Librería para Conversión Analógica Digital). - CAN Library. - CANSPI Library. - Compact Flash Library. - EEPROM Library. - Ethernet Library. - SPI Ethernet Library. - Flash Memory Library. - Graphic LCD Library. - T6963C Graphic - I²C Library.
58 - Keypad Library. - LCD Library (Librería para Liquid Cristal Display). - LCD8 Library. - Manchester Code Library. - Multi Media Card Library. - OneWire Library. - PS/2 Library. - PWM Library. - RS-485 Library. - Software I²C Library. - Software SPI Library (Librería para Serial Peripheral Interface) - Software UART Library. - Sound Library. - SPI Library. - USART Library. - USB HID Library. - Util Library. - Port Expander Library. - SPI GLCD Library. - SPI LCD Library. - SPI LCD8 Library. - SPI T6963C Graphic LCD Library. - Conversions Library. - Delays Library. - Math Library. - String Library Programas emuladores y simuladores El Proteus 7.1 una herramienta poderosa para simular programas escritos en alto nivel. Que integra dos programas para la realización y simulación de circuitos esquemáticos y tarjetas de circuito integrado.
59 El primero de ellos es el ISIS Software, encargado de realizar circuitos esquemáticos con una gran cantidad de periféricos, con una librería que contiene numerosos tipos de PIC s que están en el mercado pasando por una gran cantidad de elementos pasivos, hasta llegar a muchos elementos periféricos como pantallas, osciloscopios, amperímetros, entre otros; que permiten a su vez una simulación fiel del proyecto que se va a realizar. El segundo es el ARES Software que se combina por una interfaz con el ISIS software para el diseño de las PCB (tarjetas de circuito impreso por sus siglas en inglés) con una gran cantidad de características que ayudan a mejorar el diseño de las tarjetas hasta llevarlo al nivel profesional que el usuario necesite Isis Software Isis en un programa de diseño asistido por computadora (mejor conocido en inglés como CAD) el cual permite realizar desde la colocación de componentes en un circuito esquemático, pasando por el ruteo de pistas para tarjetas, hasta llegar a las simulaciones más reales que permiten un desarrollo conceptual de todo tipo de proyectos de electrónica. Ventanas del ISIS 7.1
60 3 2 1 Fig Vista principal del Isis 7.1. Fuente: Isis Help 1._ Ventana de Edición: En esta ventana se desarrolla el diseño esquemático o simulación que se desee. 2._ Selector de Objetos: En este espacio se encuentran todos los elementos utilizados en el diseño que se esté realizando: PIC s, resistores, capacitores, osciloscopios, generadores de frecuencia, motores, teclados, pantallas, diodos, entre otros. 3._ Ventana de Visión: En esta ventana se encuentra una vista panorámica de el diseño en caso de estar utilizando zoom. Librerías ISIS Software posee una librería extensa que puede ser actualizada a través de la web.
61 Fig Ventana de librerías del Isis 7.1. Fuente: Isis Help En esta ventana aparecen todos los elementos que posee el programa divididos por categorías específicas y con un buscador de palabras que facilita la búsqueda de cualquier elemento, ya sea por fabricante o por capacidad eléctrica que tenga el mismo; adicionalmente, en el espacio inferior derecho se observa si el elemento seleccionado posee o no un paquete predeterminado para el ARES. El programa ISIS permite crear cualquier dispositivo partiendo de uno ya existente y modificar cualquier tipo de características que se desee y agregar el paquete PCB de su preferencia para así conseguir cualquier diseño posible; éste y todos los elementos que se creen se colocan en una librería especial para el usuario que tiene conexión con el ARES. El explorador de diseño El explorador de diseño (DE por sus siglas en inglés) es una herramienta que usa una interfaz la cual permite navegar e inspeccionar el circuito esquemático en cualquier etapa durante el proceso de diseño y tiene la habilidad no sólo de preguntar el estado actual de la conexión del circuito, encapsulados, etc. Sino también navegar por todos los ítems de interés en ambos circuitos como el esquemático y el PCB. El DE puede mostrar información acerca del esquemático de 2 formas:
62 Partlist View: Esta vista provee una representación física del esquemático, mostrando las hojas, jerarquías, componentes, entre otros. Se puede navegar ambos a través del diseño (si, por ejemplo se tiene un diseño multi-página con más de una hoja de raíz) y debajo un diseño (moviéndose a través de la jerarquía del diseño). Netlist View: Esta vista es una representación de la conectividad del esquemático, mostrando una lista con todas las redes en el esquemático y todos los terminales conectados a la red seleccionada. Barra de Herramientas Este icono cambia el explorador de diseño a modo Partlist View. Este icono cambia el explorador de diseño a Netlist View. Este icono permite buscar una palabra que le permita encontrar partes rápidamente, redes y hojas incluidas en el explorador de diseño. Este ícono es el enlace entre el explorador de diseño y la aplicación ISIS y permite navegar rápidamente por las hojas, redes y componentes en ISIS. Este ícono es el enlace entre el explorador de diseño y la aplicación ARES y permite navegar rápidamente por las hojas, redes y componentes en ARES. Este ícono sólo será habilitado cuando ARES este abierto con el layout correspondiente al esquemático Ares Software El ARES (Advanced Routing Editing Software) es el otro programa que contiene el paquete de Proteus 7.1 y se combina con el ISIS para realizar tarjetas de circuito impreso o PCB. Las Ventana principal de ARES es muy parecida al ISIS y se compone prácticamente de las mismas sub-ventanas.
63 Fig Ventana del Ares 7.1. Fuente: Ares Help 1- Ventana de Edición: En esta ventana se desarrolla el diseño de la tarjeta de circuito impreso ó PCB que se desee. 2- Selector de Objetos: En este espacio se encuentran todos los paquetes de elementos utilizados en layout del diseño que se esté realizando. 3- Ventana de Visión: En esta ventana se encuentra un vista panorámica de el diseño en caso de estar utilizando zoom. Barra de Status - Selection Filter: Se encuentra en la parte izquierda de la barra y le permite configurar tanto el plano como los objetos que puedan ser seleccionados en el modo de operación, sin embargo existen reglas por defecto a la hora de diseñar tarjetas de circuito impreso. El selector de capas también determina la capa que está siendo usada por el usuario. Fig Barra Selection Filter. Fuente: Ares Help - Indicadores de Estados: En el medio de la Barra de Status se encuentran unos indicadores los cuales nos proveen muestras indirectas del objeto seleccionado por el ratón.
64 Fig Indicadores del elemento. Fuente: Ares Help - Design Rule Checker: Este se encuentra siguiendo a la derecha a través de la Barra de Status y reporta cualquier violación de reglas físicas de diseño que puedan ocurrir mientras la tarjeta esta siendo diseñada. Haciendo click izquierdo mostrará un dialogo detallado acerca de las violaciones que fueron realizadas con la opción de ir más allá y examinar un error en particular. Fig Design Rule Checker. Fuente: Ares Help - Cuadro de Coordenadas: Este se encuentra en el extremo derecho de la Barra que se encuentra en la parte inferior de la pantalla principal y muestra las coordenadas de cualquier elemento siempre y cuando se coloque el cursor sobre el mismo. Fig Cuadro de Coordenadas. Fuente: Ares Help Colocaciones básicas y Técnicas de Ruteo
65 Fig Algunos ejemplos de Layout. Fuente: Ares Help Ruteo El Ruteo comienza haciendo clic en el Trace Icon. El Seleccionador de Objetos cambiará la pantalla en el estilo de trama. Una vez que el cursor esté en modo de trama con hacer click en el lugar del elemento que se quiera rutear saldrá la trama correspondiente. Fig Muestra del Trace Icon y escogiendo una trama 20th. Fuente: Ares Help Selección de Paquetes La manera más directa de construir una tarjeta de circuito impreso en ARES es en el modo de PACKAGE, en este modo el usuario puede escoger el footprint o paquetes directamente de la librería y colocarlos en el área de diseño. Fig Ventana para escoger paquetes de elementos.fuente: Ares Help
66 CAPÍTULO IV Diseño del Hardware 4.1 Macro-estructura La macro-estructura de hardware posee módulos tanto de entrada como salida, que concatenados entre sí, permiten que realice funciones como indicador, transmisor y controlador de flujo. A continuación se muestra un diagrama que explica la macro-estructura del proyecto (Fig. 4.1) D/A V/I Turbina Acondicionador de Señal Protección de Voltaje PIC Pantalla LCD Teclado 4-20mA Alarma Fig. 4.1 Diagrama Macro estructura de Hardware. Fuente: Elaboración propia Turbina Esta va a ser la señal de entrada al microcontrolador tomada a través de un medidor de flujo en base a turbina que para los efectos de simulación se puede sustituir como un generador de onda cuadrada. Acondicionador de señal y protección de voltaje Como parte de los módulos de entrada al microcontrolador se encuentra el acondicionador de señal, que convertirá la señal tomada desde la turbina y la convierte en una señal de onda cuadrada, a fin de poder tomar los períodos necesarios para el cálculo de frecuencia que permitirá la obtención del caudal. La protección de voltaje sirve como su nombre lo indica una protección para el microcontrolador para evitar daño del mismo en caso de sobre-voltaje. Microcontrolador PIC
67 El microcontrolador controlará las operaciones de entrada y salida, así como también las operaciones de captura y comparación necesarias para el cálculo de la frecuencia. Conversión Digital Analógico Este circuito realizará las tareas pertinentes con la conversión Digital Analógica, incluyendo la transformación de la señal analógica de voltaje a corriente para así poder hacer un control sobre la variable de proceso. Pantalla LCD Este módulo de salida presentará el menú del equipo, así como también los distintos valores de medición de caudal. Teclado Este periférico sirve como interfaz entre el usuario y el sistema. Este podrá introducir valores y configurar los parámetros del sistema. Alarma Es un circuito que con ayuda del microcontrolador produce la activación de un relé para las siguientes condiciones: - Bajo Caudal. - Alto Caudal. - Banda de Valores. 4.2 Selección del Microcontrolador Una vez dentro del proyecto, se decidió utilizar un microcontrolador que cumpliera con las exigencias mínimas para este tipo de aplicaciones, tales como: - Entrada de captura. - Número de entradas de E/S (mínimo 27). - Comunicación SPI. - Comunicación Serial. - Fácil adquisición dentro del mercado.
68 - Con amplia bibliografía para consultar. - Manejo de lenguaje de alto nivel que facilite la programación. Para esto se evaluaron las siguientes opciones: - Microcontrolador PIC 16F876 ATOM. - Microcontrolador PIC 16F Microcontrolador PIC 18F4520. El microcontrolador ATOM, tiene un compilador asociado llamado BASIC ATOM. Este sistema presentó inconvenientes que impedían el desarrollo del programa clave para este proyecto, que es La Medición de Frecuencia, esto se puede realizar utilizando la herramienta pulsin, pero no sería eficiente su implementación, debido a que en este diseño no solo se debe medir frecuencia y calcular el caudal, sino que también al mismo tiempo debe permitir el manejo de teclado y pantalla, realizar transmisión, control, entre otros. Pulsin restringe el funcionamiento de nuestra unidad limitándola sólo a realizar la medición de frecuencia. Otras de las razones por las cuales no se escoge el Microcontrolador PIC16F876 es por la cantidad de E/S que no eran suficientes para el desarrollo de la aplicación. Se necesitaba además una memoria de programa con mayor capacidad, y un mayor número de STACK en la memoria RAM para el manejo de las interrupciones, razón por la cual no se utilizó el PIC16f877A. Finalmente se decide utilizar el PIC18F4520, porque cumple con las características de diseño nombradas anteriormente para el desarrollo de este proyecto y fue el más accesible al momento del desarrollo de este proyecto. 4.3 Acondicionador de señal
69 -V -V V +V El objetivo de este circuito es como se dijo anteriormente, acondicionar la señal de entrada que viene del medidor de flujo en base a turbina. Este está compuesto de un comparador del tipo LM393 con un arreglo de resistencias y condensadores que permiten cambiar la forma de onda de una señal de senoidal a cuadrada. El circuito mostrado en la Fig. 4.2, presenta las entradas (que se encuentran en el lado derecho) del mismo, que representan la señal que será transformada en una onda cuadrada para hacer posible la medición de la frecuencia. COMPARADOR TURBINA+ C1 0.1uF R4 4k7 3 2 U1:A 1 LF353N R1 33k 3 2 U2:A 1 LM393 R3 2k4 CCP2 TURBINA - R2 100R Fig. 4.2 Circuito acondicionador de señal. El dispositivo LM393 es un comparador diferencial dual, diseñado para funcionar con una fuente de alimentación única en un amplio margen de tensiones. Como características tiene una baja corriente polarización de entrada y baja tensión de offset. Este circuito al recibir la señal de la turbina produce un impulso de onda, cuya duración será determinada mediante un arreglo RC (resistencias y condensadores), éste puede llevar desde algunos microsegundos hasta unas varias horas. 4.4 Convertidor Digital / Analógico
70 Este es un circuito sencillo el cual proporcionará la señal de control de 4-20mA, a través de un arreglo entre el convertidor digital analógico y un convertidor de voltaje a corriente. Se eligió un modelo de conexión serial SPI estándar. De este tipo existen varias opciones dentro del mercado, pero se escogió la casa TEXAS Instruments, modelo TLV5616 con las siguientes características: - Salida de 12 bits Fig. 4.3 Circuito de Conversión Digital Analógica. El convertidor digital analógico posee una salida de 12-bit de alta impedancia, con una salida de voltaje dado por la ecuación 4.1. Donde: 4.1) V OUT CODE 2 Vref (Ec. n 2 Vref = Es el voltaje de referencia. CODE = Es el valor de entrada digital con un rango entre 0 10 a 2 n -1, donde n= 12 (bits). Este dispositivo se debe alimentar con una fuente de 5V, además de que posee la característica de power-on-reset para asegurarse que se repitan las condiciones de
71 inicialización. A continuación se presenta una tabla que muestra las entradas y salidas necesarias que permiten la conversión digital analógica. TERMINAL NOMBRE NO. I/O DESCRIPCIÓN DIN 1 I Entrada serial de datos. SCLK 2 I Entrada reloj. CS 3 I Chip select, activo bajo. DOUT 4 O Salida serial de datos para conexión en cadena AGND 5 Tierra análoga REFIN 6 I Entrada de referencia OUT 7 O DAC salida analógica de voltaje Vdd 8 Fuente de poder Tabla 4.1 Tabla de funciones del DAC TLV Convertidor de voltaje a corriente Este circuito (Fig. 4.4) es alimentado por la señal proveniente del convertidor digital analógico, ésta entra por el terminal no inversor del amplificador operacional (LF353) U3:A y es comparado con el voltaje presente en el terminal inversor, provocando una señal de salida en el momento en que se igualan estos dos voltajes. Q1 actúa como un inversor de voltaje y Q2 como un amplificador de corriente, de tal manera que la corriente I 0 siempre se mantiene constante (igual a Vda/R1), sin importar que el valor de la resistencia de carga cambie su valor. La corriente I 0 es censada por R13 para producir el voltaje de realimentación adecuado para U3:A. 4.3) A continuación se presentan las ecuaciones que hacen posible este relación V/I 4.2) V (Ec. 1 I0 R1 Por condición de diseño V da V1 (Ec. Sustituyendo la Ec. 4.1 en la Ec. 4.2, nos queda:
72 CARGA 4 8 V da I 0 R 1 (Ec. 4.4) Despejando I o de la Ec. 4.3 finalmente se obtiene: I 0 V R da 1 (Ec. 4.5) +24V R16 2k4 D4 BZX85C5V1 R15 30k C6 I=0 Vda 3 2 1u 1 U3:A LF353N D3 1N4742A R14 10k R1 10k C4 10n R2 30k Q1 PN2222 Io Q2 BD136 R3 +24V ZL (+) V1 R GND1 GND1 GND1 Io 82 R12 82 ZL (-) GND1 Fig. 4.4 Circuito convertidor de voltaje a corriente. 4.6 Visualizador LCD Para el desarrollo del diseño se escogió un visualizador modelo SC0802A con las siguientes características: - Con visualización 2x8 (dos líneas de 8 caracteres cada una). - Controlador Hitachi HD Entrada de datos de 4 bits u 8 bits. - Alimentación de 5V.
73 Fig. 4.5 Pantalla de Visualización LCD modelo SC0802A. Para este desarrollo se eligió la conexión de 4 bits en lugar de 8 bits. Esto con el propósito de disminuir las líneas de conexión E/S requeridas a expensas de tardar más tiempo en la actualización de la pantalla LCD. A continuación se muestra el modelo con el cual se simuló el diseño. Fig. 4.6 Pantalla de Visualización LCD. La pantalla que se muestra posee una conexión sencilla de 4 bits además de las líneas de conexión obligadas hacia el PIC como lo son RS, RW, E. A continuación se muestra la tabla de descripción de pines.
74 Tabla 4.2 Tabla de descripción de pines de la pantalla LCD. 4.7 Teclado En la parte de teclado se presenta un arreglo de teclas que llevarán a ejecutar todas las funciones que posee el dispositivo U1 RC0/T1OSO/T13CKI RA0/AN0/C1IN- RC1/T1OSI/CCP2B RA1/AN1/C2IN- RC2/CCP1/P1A RA2/AN2/C2IN+/VREF-/CVREF RC3/SCK/SCL RA3/AN3/C1IN+/VREF+ RC4/SDI/SDA RA4/T0CKI/C1OUT RC5/SDO RA5/AN4/SS/HLVDIN/C2OUT RC6/TX/CK RA6/OSC2/CLKO RC7/RX/DT RA7/OSC1/CLKI VDD RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 RE3/MCLR/VPP PIC18F4520 RB0/AN12/FLT0/INT0 RB1/AN10/INT1 RB2/AN8/INT2 RB3/AN9/CCP2A RB4/KBI0/AN11 RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD SETUP FUNC ENTER INC DEC MULT R1 1k R2 1k R3 1k R4 1k R5 1k R6 1k Fig. 4.7 Arreglo de teclas para el frontal del dispositivo. VCC El diseño final del panel frontal del Indicador, Transmisor y Controlador de Flujo, se presenta en la Fig. 4.8 Todas las medidas van en milímetros
75 Fig. 4.8 Vista Frontal del Dispositivo. 4.8 Circuito de alarma El circuito de alarma activa un relé con las siguientes características. Ver Fig 4.9: - Marca: SCHRACK o equivalentes - Modelo: RP I - Salida: SPDT (simple polo doble tiro) - Voltaje de Bobina: 24 VDC Fig. 4.9 Muestra del Relé POWER PCB RP1. El circuito de manejo del relé se ilustra en la figura La señal del puerto proveniente del microcontrolador es amplificada por el transistor Q1, lo cual es necesario debido a que la salida del puerto no tiene la capacidad de corriente requerida. El diodo D1 que aparece en el circuito tiene como función eliminar el voltaje transitorio durante cada conmutación del relé debido a su naturaleza inductiva.
76 - 2 + GND GND GND ALARMA 1 U VI C1 1000u GND1 1 U VI C3 470u GND1 1 U VI C5 220u GND2 VO VO VO C2 10u C4 1u C6 10u +5V +24V +16V GND1 GND1 GND2 COM NC NO +24V D1 1N4007 R1 10k Q1 PN2222 RL1 RT114012F C10 R3 C9 R2 GND 39nf 39R 39nf VR1 39R VR2 S10K11 S10K11 Fig Circuito de Señal de Alarma. 4.9 Fuente de Poder Este circuito se encarga de proveer al sistema todos los voltajes requeridos. La fuente de poder posee dos entradas, una para 220V y una para 120V, estas entradas pasan a través de un transformador. El primario del transformador es 220V/120V y el secundario de 8V/8V/15V para llegar a 3 puentes rectificadores y tres reguladores de tensión con distintos valores. Ver Fig 4.11.
77 Fig Fuente de Poder. Los requerimientos del sistema en cuanto a voltajes de alimentación son: - (5V) para todos los dispositivos de lógica TTL en el circuito. - (24V) para alimentar el circuito de salida de 4-20mA y el relé de alarma. - (5V) aislados para la comunicación serial Comunicación Serial El MAX1480 es un circuito integrado que presenta aislamiento eléctrico entre la parte lógica y la salida serial. Posee la interfaz de comunicación de datos en un microcircuito hibrido. Está diseñado para una comunicación half-duplex RS 485 / RS 422 (comunicación es bidireccional pero no simultánea). Permite la transmisión de datos hasta 250Kbps.
78 GND1 GND2 GND2 GND2 En el circuito mostrado en la Fig se muestra la comunicación serial entre la PC y el microcontrolador, de éste salen tres señales DI (Data Input), DE (Driver Enable) y RO (Receiver Output) que llegan al MAX1480 para la realización de la comunicación RS-485. J CONN-SIL10 DI R0 GND1 +5V GND2 +16V +RS485 -RS485 GNDRS485 DE +5V DI DE R0 U1:A HC86 U1:B HC86 U1:C 8 74HC86 C1 100u C2 1nF R1 10k R2 10k R3 10k U2 VCC1 VCC2 D1 D2 GND1 FS SD VCC3 DI VCC4 DE GND2 RO VCC5 MAX1480 AC1 AC2 ISO VCC1 B ISO RO DRV A ISO DI IN ISO DE IN ISO COM1 ISO DI DRV ISO VCC2 ISO DE DRV ISO COM2 ISO RO LED R4 10kR5 10k R6 10k R7 10k -RS485 +RS485 GNDRS485 Fig Circuito de Comunicación Serial Planos Esquemáticos Completos A continuación se presentan los circuitos esquemáticos vistos anteriormente, divididos tres grandes circuitos llamados Tarjeta Madre, Tarjeta Fuente y Tarjeta Display. Con su respectiva representación como tarjeta de circuito impreso. La unión de estas tres tarjetas da como resultado el Hardware final del proyecto, tal como lo muestra la Fig En el caso de la comunicación serial se agregará una tarjeta opcional dependiendo si el usuario necesite o no esta modalidad.
79 EXIT RESET BUTTON SETUP BUTTON FUNC BUTTON V +24V +16V GND1 GND1 GND2 ALARMA TARJETA DE COMUNICACIÓN SERIAL Fig.4.13 Diagrama de bloques del circuito final. Todas estas tarjetas están contenidas dentro de una caja DIN ¼.Fig Tarjeta Madre Fig Esquema de caja DIN ¼. En la Tarjeta Madre (Fig. 4.15) se encuentran los circuitos D/A, de acondicionamiento de señal, un puerto de I/O sólo para la pantalla LCD, el circuito convertidor de voltaje a corriente, La conexión de teclado y la comunicación serial. 4 0k V 24V C6 1u 1 :A 53N IL8 U4:A R k LM393 R7 1k R8 10k D4 +5V BZX85C5V1 D3 R1 1N4742A 10k R14 10k R PICK-UP - PICK-UP + RS485 - RS485 ZL (+) GND V ZL (-) C4 10n R12 82k V R9 4k7 R10 + PICK-UP D1 BZX85C5V1 1k C1 10n PROPERTY=VALUE PICK-UP R15 30k R2 30k Q2 BD136 Q1 PN2222 R3 82K ZL (+) ZL (-) J4 CONN-SIL8 CONECTOR EN L J3 GND1 5 6 CONN-SIL8B EDGE CONNECTOR CAJA DIN 1/4 U4:B 7 LM V U3:B 7 LF353N
80 Fig Diagrama Esquemático de la tarjeta madre. En la Fig 4.16 se presenta la vista de planta de la tarjeta de circuito impreso que proviene del esquemático de la tarjeta madre.
81 - 2 + GND GND GND Tarjeta Fuente Fig PCB de la tarjeta madre. En la tarjeta Fuente se encuentra el Transformador de Voltaje y la Salida de alarma. A continuación diagrama esquemático de la tarjeta fuente Fig R1 04G R2 04G R3 04G 1 U VI C1 1000u GND1 1 U VI C3 470u GND1 1 U VI C5 220u GND2 J CONN-SIL8 VO VO VO V +24V +16V GND1 GND1 GND2 ALARMA C2 10u C4 1u C6 10u +5V +24V +16V GND1 GND1 GND2
82 Fig Diagrama esquemático de la tarjeta fuente. PCB Y a continuación en la Fig se presenta la vista de planta de la representación en
83 Fig PCB de la tarjeta fuente Tarjeta del Visualizador y Teclado Este circuito se presenta en su versión PCB, nótese que las tarjetas van integradas en ésta y hacen una comunicación entre sí teniendo como puente los conectores en L ubicados a cada lado de la pantalla que se ve en la Fig
84 Fig PCB de la tarjeta display. Capitulo V Desarrollo del Software En este capítulo se describirá el desarrollo del software del indicador, transmisor y controlador de flujo. Este instrumento realiza la medición de caudal mediante un procedimiento de medición de frecuencia, acondicionando la señal de caudal para ser transmitida en forma normalizada (4-20mA). El software también incluye el manejo del visualizador LCD y el teclado. 5.1 Selección del lenguaje de trabajo
85 Se eligió el programa Mikrobasic (mikroelektronika), el cual es una poderosa herramienta de desarrollo para microcontroladores PIC, que permite un fácil desarrollo de aplicaciones con cierto grado de complejidad, específicamente el manejo de eventos de captura. Otros programas como el Basic Atom, no respondieron eficientemente a la necesidad planteada. Debido principalmente a una lenta velocidad de ejecución Selección del programa de simulación Se eligió Proteus ISIS Profesional V7.1 (LabCenter Electronics) para desarrollar la parte esquemática del proyecto, es decir los planos de los circuitos con todos sus componentes. Luego una vez diseñado el código de programación en el mikrobasic, se programa el Microcontrolador en el diagrama esquemático del Proteus ISIS, permitiendo así la simulación del proyecto Selección del sistema de emulación El sistema de desarrollo EasyPIC5 de mikroelektronika (Fig. 5.1), fue elegido como sistema de emulación. Este sistema posee los componentes físicos necesarios para la emulación del proyecto, y también permite insertar una amplia gama de microcontroladores PIC para ser programados, entre ellos el PIC18f4520 elegido para el desarrollo de este proyecto.
86 Fig. 5.1 Sistema de desarrollo EasyPIC Macro-estructura del software En esta sección se describe la macro estructura de software del medidor, controlador de caudal, mediante el diagrama de bloques de la figura 5.2. Esta estructura la componen dos bloques de programación operando en tiempo compartido: el programa Monitor y el servicio general de interrupciones. El primer paso dentro del programa Monitor es la configuración de una serie de parámetros iniciales, que serán utilizados por los subsistemas (LCD, teclado, medición de frecuencia y cálculo del caudal, algoritmo de control, opción de comunicación serial, conversión D-A). El segundo paso dentro del programa Monitor es la lectura y procesamiento del teclado. El usuario puede interactuar con el sistema, de tal manera que puede introducir o modificar los parámetros ya preestablecidos (ej: Diámetro de la tubería, la salida si será como transmisor o como controlador, etc). De esta tarea se encarga el subsistema de teclado, apoyándose en otras subrutinas. (Ver el codigo fuente en el Apéndice A).
87 Fig. 5.2 Diagrama de bloques de la Macro estructura. RTI*: retorno a la interrupción SCI*: Interfaz de comunicación serial La última tarea del programa es la actualización del Display LCD en modo normal de indicación, esto es, indicando el caudal. El servicio general de interrupciones integra los manejadores para las interrupciones activas. Dentro de estas rutinas se efectúan las siguientes actividades:
88 Medición de Frecuencia. Calculo del Caudal. Control PI en caso de que este habilitado. Lógica para operar como Transmisor. Actualización de la salida 4-20 ma. Control de Comunicación Serial Subsistema de medición de frecuencia El corazón del sistema, es la rutina de medición de frecuencia, que hace uso del módulo de captura y la interrupción de desbordamiento del Timer1, dentro de una ventana de tiempo, esto para calcular el período de la señal proveniente de la turbina. Este proceso consiste en la adquisición de los datos provenientes del registro de captura. Una vez que ha culminado la adquisición se obtiene la frecuencia de la señal, y por último mediante una ecuación matemática se obtiene el flujo. El diseño del subsistema de medición de frecuencia, fue orientado a cumplir con los siguientes requerimientos: Frecuencia máxima = 10000Hz Frecuencia mínima = 0.8 Hz Resolución = 0.01 Hz Para cumplir con dichos requerimientos, se escogió la metodología de medición de período de un tren de pulsos, puesto que esta metodología es la que permite la resolución planteada en un menor tiempo. La estructura de procesos del subsistema de medición de frecuencia, está basada en el uso de interrupciones: la interrupción utilizando el módulo de captura, y la interrupción de Timer overflow; Disponibles entre las aplicaciones del microcontrolador PIC18f4520. A continuación, se describirá el uso y funcionamiento de las variables y constantes más relevantes del subsistema:
89 FaseCap: es una bandera que indica la fase en la que se encuentra el proceso de adquisición de datos, efectuado por el módulo de captura. La variable FaseCap pasa por cuatro estados a lo largo de este proceso: FaseCap = 0: Este estado indica que el sistema está sin actividad de medición. FaseCap = 1: Indica que el sistema está en espera del flanco ascendente del 1er pulso para realizar la primera captura, aquí se obtiene Ti. Se activa la medición. FaseCap = 2: Indica que el sistema espera por el tiempo de integración, para realizar su próxima captura, contabilizando NPulsos de la señal de frecuencia de entrada. Actualizando con cada pulso la variable Tf. FaseCap = 3: Indica que ha finalizado la medición de frecuencia y el sistema dispone de todas las variables para efectuar su cálculo. Constante Freq_Update: es el tiempo entre medidas de frecuencia (por defecto 250mSeg), el sistema está condicionado a este tiempo y a la bandera FaseCap (FaseCap=0) para volver a arrancar la medición. Constante Fosc: tiene un valor nominal de 32MHz y representa la frecuencia del oscilador. Variable Npulsos: almacena el número de pulsos de la medición, durante FaseCap=2. Constante NTOFNormal: fija el tiempo de adquisición del sistema, en condiciones normales, igual a 0.25 Seg. Este es el número de veces en que el Timer1 pasa por su condición de overflow, al superar un tiempo equivalente o superior a 0,25 Seg, se detiene el proceso de captura. Constante NTOFMax: representa el valor de la Frecuencia cero (0.8 Hz aprox). Se utiliza para finalizar el ciclo de medición, por encontrarse en la condición de muy baja frecuencia o frecuencia cero.
90 Variable Ti (TiL,TiH): se utiliza para almacenar el primer tiempo que se captura, proveniente del registro de Captura (de 16bits). En TiL se almacenan los 8 bits menos significativos del registro de Captura. En TiH se almacena los 8 bits mas significativos del registro de Captura. Variable Tf (TfL,TfH): se utiliza para almacenar el segundo tiempo que se captura, proveniente del registro de Captura (de 16bits). En TfL se almacenan los 8 bits menos significativos del registro Captura. En TfH se almacena los 8 bits más significativos del registro de Captura. Variable EndConv: indica que se ha concluido una fase de medición de frecuencia y cálculo de caudal, y que ahora puede mostrarse el valor por pantalla. Esta es una variable interfaz al programa monitor. Optimiza al sistema de indicación, actualizando solo cuando debe. Variable NvecesF: almacena el número de ciclos de Timer1 overflow, asociados con la ultima captura. Para el cálculo de la frecuencia se realizan los siguientes cálculos: K1 El tiempo total entre Ti y Tf expresado en ciclos de máquina, viene dado por: Ttotal * TiH TiL NvecesF 1 * * TfH TfL (Ec. 5.1) Tomando en cuenta la frecuencia del oscilador: Ttotal Ttotal1* 4 Fosc (Ec. 5.2) Finalmente la frecuencia habiendo integrado Npulsos es: Freq Npulsos Ttotal (Ec. 5.3)
91 La relación entre la frecuencia y la velocidad del fluido depende de la constante del medidor de turbina. Entonces la velocidad del fluido puede expresarse mediante la ecuación 5.4. V K1 * Freq (Ec. 5.4) El Caudal viene expresado por la ecuación 5.5 Q A * V (Ec. 5.5) Donde: Q= Cantidad de flujo (m 3 /s) A= Área transversal (m 2 ) V=Velocidad del flujo (m/s) Descripción del Subsistema de Interrupciones de Medición de Frecuencia En las Fig 5.3 y 5.4 se presenta el diagrama de bloques de la rutina de manejo de interrupciones del subsistema de medición de frecuencia. Esta rutina es controlada por la variable FaseCap, que indica a la rutina en que fase de la medición se encuentra. Cuando FaseCap es igual a 1 se captura el tiempo inicial, se inicializan en cero el contador de ciclos de Timer overflow (NvecesF) y el contador de pulsos (Npulsos), y se limpia la bandera de captura. Ahora FaseCap pasa al valor 2, capturando el tiempo final en condiciones normales de medición, es decir en el tiempo de adquisición fijado. Cuando termina el tiempo de integración normal, FaseCap pasa al valor 3 indicando que se disponen de los valores para el cálculo de la frecuencia En el diagrama de la Figura 5.4, se ilustra el funcionamiento de la segunda interrupción (Timer overflow), que consiste en la interrupción del sistema en el momento en
92 que el conteo del Timer supera el valor de overflow (igual a 65535,16 bits). Este deberá ser tomado en cuenta en el cálculo del tiempo total. En la primera parte del diagrama de la Figura 5.4 se observa que mientras el proceso de medición este activo, el contador NTOF será incrementado, para comparar el valor de dicho contador con NTOFMax, esto con el fin de determinar si se está en la condición de bajas frecuencias o frecuencia cero. En cuyo caso se deshabilita la captura, y de una vez se coloca el valor de Freq en cero. Cabe destacar que se asigna un 4 a FaseCap, para que no pase por las ecuaciones de cálculo de frecuencia. Luego si FaseCap es igual a 3, se calcula la frecuencia utilizando los valores obtenidos de la captura, el valor del overflow, el número de ciclos de Timer overflow y el número de pulsos.
93 Fig. 5.3 Diagrama de Bloques del subsistema de medición de frecuencia.
94 Freq=0, FaseCap=4 Fig. 5.4 Continuación diagrama de bloques del subsistema de medición de frecuencia. En la siguiente fase del subsistema (Fig 5.5) se toma en cuenta la constante Frequpdate, esta limita el rearranque del sistema de medición, hasta que no haya terminado este tiempo. Es en este momento cuando se reinicializan las variables, se limpia la bandera del
95 registro de captura, se habilita la interrupción de captura (para cada flanco ascendente), dejando todo listo para reactivar la medición. Fig. 5.5 Diagrama de bloques de la Fase de rearranque de la medición de frecuencia Cálculo del caudal Los parámetros para el cálculo del caudal son: Velocidad del fluido: viene dada a partir de la constante del elemento primario de turbina y la frecuencia. La sección de la tubería: valor tomado de la EEPROM y configurado por el usuario. En función de los parámetros anteriores y de la unidad seleccionada, se calcula el caudal como: Q S * V * K1* K2 Donde: S = Sección de la tubería en pulgadas V = Velocidad del fluido en m/seg K1 = Constante de conversión de unidades K2 = Constante de corrección por factores extras (Ec. 5.5)
96 5.7. Cálculo y Generación de la corriente del Transmisor El circuito de conversión digital analógico mostrado en el Capítulo IV va a generar una corriente de valor. I V ma da 0 out (Ec. 5.6) R1 Esta corriente varía en un rango de 4 a 20mA y guarda una estrecha relación con los valores de caudal mín. y máx. predeterminados. Con el fin de generar un control sobre la variable de proceso (caudal). de caudal: La ecuación 5.7 define la corriente de salida cuando el equipo opera como transmisor Q ma Out malow * ( Q Q ) High Low ma High ma Low (Ec. 5.7) Donde: ma out : Salida de corriente del transmisor ma low : Valor mas bajo del rango (Ej: 4 ma) ma high : Valor mas alto del rango (Ej:20 ma) Q low : Caudal mínimo predeterminado (Ej: 0 GPM) Q high : Caudal máximo predeterminado (Ej: 30 GPM) 5.8. Subsistema de Teclado y Display Este sistema permite la visualización del caudal en la pantalla, y también que el usuario pueda interactuar con el menú y submenús de la configuración del sistema. Donde además podrá introducir valores a su conveniencia, modificando así los preestablecidos por el sistema, cargados previamente en la EEPROM del microcontrolador.
97 Fig Vista frontal del equipo. Fig. 5.7 Mensaje Inicial Configuración del Teclado El teclado está compuesto por 6 teclas, cada una con una serie de utilidades, orientadas a una fácil interacción entre el usuario y el equipo. Estas son: Tecla SETUP: permite acceder al menú principal de funciones del equipo: - Sensor - Salida ma - Alarma - Salida Serial - Control Fig. 5.8 SETUP Sensor.
98 Tecla FUNC: una vez en el menú principal, al detectar esta tecla se despliega los submenús pertenecientes a cada SETUP. Esto se ilustra en la Fig 5.9. Fig. 5.9 FUNC: Unidad de trabajo de Caudal y FUNC: Set Point. Tecla Exit: cuando el usuario presione esta tecla estando en el menú principal o en cualquiera de los submenús, la pantalla retornará inmediatamente a la pantalla en la cual muestra la medición. Tecla Inc: su función es modificar, dígito por dígito, el valor numérico de cada FUNC (Fig. 5.5.). Cada vez que se detecta esta tecla el dígito va cambiando de valor del 0 al 9. Para que el usuario pueda comenzar a realizar modificaciones debe haber presionado primero la tecla. MULT/CLEAR Tecla MULT/CLEAR: esta es una tecla de doble función; la primera función es, que presionada una primera vez permitirá al usuario comenzar a modificar el valor predeterminado de la FUNC. El procedimiento es el siguiente: se presiona esta tecla una primera vez y el valor se coloca en 0, se presiona la tecla Inc, y se elige el valor del primer dígito, si el valor es mayor a nueve se presiona la tecla MULT/CLEAR para modificar el siguiente dígito y se continua de esta manera hasta obtener el número deseado. Tecla Enter: permite al usuario guardar el valor elegido por él, para que sea luego utilizado por el sistema, dicho valor es almacenado en la EEPROM Menú y Submenús teclado. Se tiene acceso al menú y submenús del sistema, a través del subsistema de manejo de Los bloques principales de configuración son: SENSOR SALIDA MA
99 ALARMA COMUNICACIÓN SERIAL CONTROL Los parámetros de ajuste de cada bloque son: SENSOR: - Relación Hz / Vf - Diámetro de la Tubería - Unidad de Trabajo de caudal - Tiempo de Conversión - Relación Hz / GPM - Damping SALIDA MA: - Uso: (Transmisor, Controlador) - Low Range. Ej: 0 GPM - High Range. Ej: 30 GPM - Low Output. Ej: 4ma - High Output. Ej: 20ma ALARMA: - Tipo: (Bajo, Alto, Banda) - Alarma Low (valor) - Alarma Hgh (histéresis) - Acción (directo, inverso) - Reposición (Manual, Automática) COMUNICACIÓN SERIAL: - Baudios - Dirección - Paridad - No de Bits CONTROL: - BP (%): Banda Proporcional - Ti (min): Tiempo Integral
100 EXIT DISPLAY - Ts (min): Tiempo de muestreo - Set Point: Punto de corte - Modo: Automático/Manual - Acción: Directa /Inversa - Valor de falla segura Descripción del Subsistema de Teclado y Display A continuación se muestra el diagrama de bloques general del subsistema de teclado y display (ver Fig 5.10 y 5.11). Este ilustra lo que ocurre cuando el sistema detecta que alguna de las teclas fue accionada. Muestra menú y submenús, y se sirve de la subrutina Números, para que el usuario pueda ajustar los valores numéricos nombrados en la sección anterior (Banda proporcional, set point, etc) a su conveniencia.
101 Fig Diagrama de Bloques del Subsistema de teclado y display.
102 Fig Continuación diagrama de Bloques del Subsistema de teclado y display Subrutina Números:
103 El subsistema de manejo de teclado accede a la subrutina Números, para realizar la configuración del valor introducido por el usuario. Cuando el subsistema de teclado detecta la tecla MULT/CLEAR, arranca la subrutina Números. Se cambia a cero el valor de la segunda Fig Diagrama de Bloques de la Subrutina Números. fila de la pantalla (valor predeterminado para cada función). El usuario ahora puede introducir dígito por dígito el valor que desee, utilizando también la tecla MULT/CLEAR (multiplica por 10 el valor que se encuentre en la pantalla). Una vez obtenido el valor
104 deseado, debe presionar la tecla ENTER para que el valor quede guardado en la EEPROM y luego pueda ser utilizado por el sistema. Fig Continuación diagrama de Bloques de la Subrutina Números. CAPÍTULO VI Resultados En este capítulo se describen todas las pruebas preliminares y las pruebas realizadas en el Laboratorio de Instrumentación de la Facultad de Ingeniería de la Universidad de Carabobo. Además de los ajustes realizados al equipo medidor, transmisor y controlador de flujo, a fin de verificar su correcto funcionamiento, y de confirmar tanto el cumplimiento tanto de los objetivos propuestos al inicio de este trabajo, como de las consideraciones básicas
105 y las características adicionales y añadidas propuestas en el diseño general. Además permitió sacar las respectivas conclusiones y plantear las recomendaciones del caso Pruebas Preliminares Medición de Frecuencia (Resultados de la Simulación) Para la medición de frecuencia se utilizó Proteus Isis 7.1 como herramienta de simulación, utilizando el circuito mostrado en la figura 6.1. Conformado por los siguientes componentes: Generador de Señal Microcontrolador PIC 18f4520 Display LCD LM016L Fig. 6.1 Plano para la Simulación. La prueba consiste en verificar el valor ajustado en el Generador de señal, en el Display LCD, como resultado del proceso de medición de frecuencia. Como ejemplo, ajustando: Frecuencia=100Hz (Figura 6.2)
106 Fig. 6.2 Ajuste en el Generador de Señal. 6.3) Se obtiene como resultado en el Display LCD un valor igual a 100,00000Hz (Figura Fig Visualización en la Pantalla. Como requerimiento del sistema se fijó una frecuencia máxima a medir de Hz y una frecuencia mínima de 0.8 Hz. Con un cristal de 32MHz. A partir de la simulación se observó lo siguiente: Para Frecuencia 0 y frecuencias menores a 0.8 el valor mostrado por pantalla es igual a , cumpliendo con el parámetro de frecuencia mínima de diseño. Se podrá medir frecuencias mayores a la frecuencia máxima (10000Hz), obteniéndose una excelente exactitud. A continuación se presenta la Tabla 6.1, que compara los valores ajustados en el Generador de señal (1ra columna), con los valores que se visualizan en el Display LCD (2da columna). En la tercera columna se muestra el error porcentual en la medición. Ajuste (Hz) Valor LCD (Hz) Error (%) 0 0, ,5 0, ,5 0,8 0, , , ,

References: resolución 
 resolución 
 resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 resolución 
 Resolución 
 resolución