diseÑo de un medidor, transmisor y controlador de...
TRANSCRIPT
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: Silvia Vera
Prof. Efraín Roca Dugar S. Parra
Valencia, Mayo de 2008
Agradecimientos
En primer lugar a Dios, por darnos salud, paciencia y fortaleza para poder llegar a la
culminación de este trabajo de tesis.
A nuestros padres y hermanos por su apoyo incondicional durante todas las fases de
esta tesis.
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
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 10.000 Hz con una resolución de
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.
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
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
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.
1.2. 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
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.
1.3.2 Objetivos Específicos
1.3.2.1 Diseñar el hardware adecuado para el tratamiento de señales provenientes de
elementos primarios de caudal, basado en turbinas.
1.3.2.2 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.
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
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
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.
3.1.1 Clasificación de los elementos de medición de caudal
3.1.1.1 Instrumentos medidores de caudal de presión diferencial
3.1.1.1.1. Á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
3.1.1.1.2. Área Variable:
- Rotámetro
3.1.1.2. Medidores de Caudal para canales abiertos
- Vertederos Rectangulares
- Vertedero Triangular
- Vertedero Trapezoidal
- Vertedero Parshall
3.1.1.3. Medidores de Caudal de Desplazamiento Positivo
- Disco oscilante
- Pistón Oscilante
- Pistón Alternativo
- Medidor Rotativo
3.1.1.4. Medidores de Caudal de tipo Turbina [1]
3.1.2 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.
Fig. 3.1. 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:
VAQ (Ec. 3.1)
Donde:
Q= Cantidad de flujo (m3/s)
A= Área transversal (m2)
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
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. 3.2. 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]
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]
3.1.2. 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, 10-50 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.
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.
3.2 . Microcontroladores
3.2.1 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.
3.2.2 Periféricos Integrados en los Microcontroladores PIC
3.2.2.1 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
Vi
Clock
Salida Digital
Convertidor D/A
Circuito de aproximaciones
sucesivas +
-
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.
0 0 0 1 0 0
1 1 1
0 1 0
1 0 1
1 1 1
0 0 1
0 1 1
1 1 1 1 1 0
1 0 1 1 0 0
0 1 1 0 1 0
0 0 1 0 0 0
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 Vi, 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 Vi, 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.
Fuente: Elaboración Propia.
3.2.2.2 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.
Contador DescendenteImpulsos de
Reloj
Carga del Contaje
Fin del
Contaje
TEMPORIZADOR
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.
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 18F4520.
3.2.2.3 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.
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.
- 16 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
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.
3.2.2.4 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.
3.2.2.5 Comunicación SPI
3.2.2.5.1 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: http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus.
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.
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].
3.2.3.1 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.
3.2.3.2 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.
3.2.3.3 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
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: http://www.ucontrol.com.ar/wiki/index.php?title=El_microcontrolador.
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
3.2.1 Integración de pulsos
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. 3.10 Diagrama de bloques de la integración de pulsos.
Fuente: Instrumentación digital - Medición de frecuencia.
3.2.2 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. 3.11.) es el siguiente:
- 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. 3.11 Medición de Período.
Fuente: Nota de Aplicación de Microchip AN545.
3.2.3 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.
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:
sHzFxFxsolT
Re
11Re (Ec.
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:
solT
TcyNpulsos
Re (Ec.
3.3)
Requiriendo un tiempo de integración mínimo de:
NpulsosFx
T *1
int (Ec.
3.4)
solTFx
TcyT
Re*int (Ec.
3.5)
Simplificando TResol:
)Re(*
ReRe
sHzFxFx
FxsHzFxsolT (Ec.
3.6)
sHzFxFx
sHzsolT
Re(*
ReRe (Ec.
3.7)
Sustituyendo en Tint y simplificando:
sHz
sHzFxTcyT
Re
Re*int (Ec.
3.8)
sHz
Fx
ReNú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.
(Ec.
3.9)
Siendo Fcristal
Tcy4
(Ec.
3.10)
Fuente: Ing. Efraín Roca (Notas de curso).
3.4 Algoritmos de control
3.4.1 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)
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. 3.12.
Fig. 3.12. 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.
3.4.3 Control Proporcional
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:
]/*%100[ bandaESalida (Ec.
3.11)
Donde: 100/*SPPbbanda (Ec.
3.12)
)( PVSPE (Ec.
3.13)
La misma formula se puede escribir en términos de la ganancia proporcional como:
]*[ EKpSalida (Ec.
3.14)
Donde: %)100/*/(%100 SPPbKp (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]
Fig. 3.13. 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”.
3.4.4 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]
La deducción del algoritmo de control PI es como sigue:
La ecuación del algoritmo PI es:
)(1
)(*)( tETi
tEKptMn (Ec.
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:
100*Span
SPPVEn
(Ec.3.17)
Si la acción es Inversa:
100*Span
PVSPEn
(Ec.
3.18)
En el dominio de Laplace:
S
SE
Ti
KSEKSMn
)(*)(*)( (Ec.
3.19)
Sacando factor común y simplicando:
TiS
SEKSEKTiSSMn
*
)(*)(***)( (Ec.
3.20)
Ti
SEK
Ti
SEKTiSSMnS
)(*)(***)(* (Ec.
3.21)
Ti
SEKSESKSMnS
)(*)(**)(* (Ec.
3.22)
Aplicando Diferencias Finitas:
n
nn ETi
K
Ts
EEK
Ts
Mn** 1 (Ec.
3.23)
Ti
ETsKEEKMM n
nnnn
*** 11 (Ec.
3.24)
Se obtiene finalmente la salida del controlador PI:
(Ec.
3.25)
Salida como Controlador:
La salida en corriente puede expresarse según la ecuación 5.16:
(Ec.
3.26)
Fuente: Ing. Efraín Roca (Notas de curso).
3.5 Dispositivos auxiliares de Hardware
3.5.1 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
Ti
ETsKEEKMM n
nnnn
**)(* 11
)(*100
lowhighlowout mAmAMn
mAmA
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. 3.14 Pantalla de Cristal Líquido de 2 líneas por 8 caracteres.
Fuente: www.microelect.com
3.5.1.1 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 HD44780. 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
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. 3.15 Aspecto del chip HITACHI HD4480.
3.5.1.2 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.
3.5.1.3 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.
Fig. 3.16 Vista trasera de tarjeta de circuito impreso con sus circuitos integrados.
Fig. 3.17 Terminales de una Pantalla sencilla LCD.
A continuación se explicará la función que cumple cada uno de los terminales del
display.
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.
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.
3.5.2 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 3.18.
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.
Fig. 3.18 Esquema típico de circuito procesador de señal.
Sistema de Transición o Procesado de Señal
Convertidor Digital
Analógico
Convertidor Analógico
Digital
Señal Analógica
Señal Analógica
Fuente: Elaboración propia.
Una palabra digital (D) se representa como una cadena de n bits b1, b2, … , bn
representando en codificación binaria un número valor, este puede adquirir 2n valores
comprendidos entre 0 y 1 – ½n, equiespaciados ½
n.
n
nbbbbD
2...
222 3
3
2
2
1
1 (Ec.
3.27)
El bit b1 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 bn 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 Vref. Si para generalizar añadimos un
posible factor de escala K, la tensión de salida de un convertidor D/A se expresa como:
n
nrefrefout
bbbKVDKVV
2...
22 2
2
1
1 (Ec.
3.28)
Gráficamente, la función de transferencia que relaciona la salida analógica con la
entrada digital adquiere el aspecto de una escalera con 2n escalones iguales, tal como se
muestra en la Fig 3.19.
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]
Fig. 3.19 Curva de transferencia ideal de un convertidor digital / analógico.
Fuente: Diseño de circuitos y sistemas integrados.
Donde:
- KVref = Tensión de fondo de escala (Valor máximo).
- K.(Vref /2n) = 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 2n = 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 2n posibles valores, la
salida del convertidor no podrá adquirir cualquier valor de tensión entre 0 y KVref,
sino sólo valores equiespaciados en (KVref/2n)
3.5.2.1 Clasificación de los convertidores D/A
3.5.2.1.1 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. 3.21
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.
Fig. 3.20 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. 3.20. 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. 3.21 Resistencias Equivalentes.
Fuente: Instrumentación Electrónica.
Las tensiones equivalentes vistas desde los puntos son:
Hasta P0: 2
0 ref
equ
VSV (Ec. 3.29)
Hasta P1: refequ VSS
V24
10 (Ec. 3.30)
Hasta P2: refequ VSSS
V248
210 (Ec. 3.31)
Hasta PN-1: refN
NNNequ VSSSS
V2
...222
1
2
2
1
10 (Ec. 3.32)
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:
1
0
22
N
i
i
N
ref
equ SiV
V (Ec. 3.33)
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.
3.6.1 Programas ensambladores de bajo nivel
3.6.1.1 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
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
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).
3.6.2 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]
3.6.2.1 Principales lenguajes de alto nivel
3.6.2.1.1 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]
3.6.2.1.2 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 X3.159-1989.
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.
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.
3.6.3 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
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]
3.6.3.1 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.
A continuación se presenta un resumen de las herramientas más importantes que posee
este software.
Ventanas y Sub-ventanas del IDE de MikroBasic
Fig. 3.22 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.
Fig. 3.24 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. 3.25. 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
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. 3.26 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. 3.27 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.
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 Descripción Tipo de
Archivo
Intel HEX Archivo usado para programar el
chip .hex
Binary
Distribución binaria de la aplicación
que puede ser incluida en otros
proyectos.
.mcl
List File
Vista de la memoria del
PIC;Dirección de instrucciones ,
Registros, Rutinas y Etiquetas.
.lst
Assembler File
Archivo de assembler que puede ser
leido con nombres simbolicos,
extraidos de un archivo lista
.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
12 Error: Parámetros actuales y formales deben ser
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
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.
5 Warning: Identificador “%s” elimina la declaración el
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.
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.
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 . . .
‘ 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 .
- 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
3.6.4 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.
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.
3.6.4.1 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
1
2
3
Fig. 3.28 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.
Fig. 3.29 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:
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.
3.6.4.2 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.
Fig. 3.30 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. 3.31 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.
Fig. 3.32 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. 3.33. 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. 3.34. Cuadro de Coordenadas.
Fuente: Ares Help
Colocaciones básicas y Técnicas de Ruteo
Fig. 3.35. 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. 3.36. 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. 3.37. Ventana para escoger paquetes de elementos.Fuente: Ares Help
Turbina
Acondicionador de Señal
Protección de
Voltaje
PIC
D/A V/I
Pantalla LCD
Teclado
Alarma
4-20mA
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)
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
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.
- 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 16F877.
- 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
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.
+V
+V
-V
TURBINA+
TURBINA -
-V
3
2
1
84
U1:A
LF353N
3
2
1
84
U2:A
LM393
R133k
R2100R
R32k4
CCP2
COMPARADOR
R44k7
C10.1uF
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
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.
nrefOUT
CODEVV
22 (Ec.
4.1)
Donde:
Vref = Es el voltaje de referencia.
CODE = Es el valor de entrada digital con un rango entre 010 a 2n -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
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 I/O DESCRIPCIÓN
NOMBRE NO.
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 TLV5615.
4.5 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 I0 siempre se mantiene
constante (igual a Vda/R1), sin importar que el valor de la resistencia de carga cambie su
valor. La corriente I0 es censada por R13 para producir el voltaje de realimentación adecuado
para U3:A.
A continuación se presentan las ecuaciones que hacen posible este relación V/I
101 RIV (Ec.
4.2)
Por condición de diseño 1VVda (Ec.
4.3)
Sustituyendo la Ec. 4.1 en la Ec. 4.2, nos queda:
10 RIVda (Ec.
4.4)
Despejando Io de la Ec. 4.3 finalmente se obtiene:
1
0R
VI da
(Ec.
4.5)
ZL (+)
ZL (-)
3
2
1
84
U3:ALF353N
Q1PN2222
R1
10k
R2
30k
R3
82
R13100
+24V
R1410k
Q2BD136
R15
30k
C410n
D4
BZX85C5V1
C6
1u
R16
2k4
GND1
+24V
D3
1N4742A
R12
82
GND1 GND1 GND1
CA
RG
A
V1
Vda
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 HD44780.
- Entrada de datos de 4 bits u 8 bits.
- Alimentación de 5V.
I=0
Io
Io
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.
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.
RA0/AN0/C1IN-2
RA1/AN1/C2IN-3
RA2/AN2/C2IN+/VREF-/CVREF4
RA3/AN3/C1IN+/VREF+5
RA4/T0CKI/C1OUT6
RA5/AN4/SS/HLVDIN/C2OUT7
RA6/OSC2/CLKO14
RA7/OSC1/CLKI13
RB0/AN12/FLT0/INT033
RB1/AN10/INT134
RB2/AN8/INT235
RB3/AN9/CCP2A36
RB4/KBI0/AN1137
RB5/KBI1/PGM38
RB6/KBI2/PGC39
RB7/KBI3/PGD40
RC0/T1OSO/T13CKI15
RC1/T1OSI/CCP2B16
RC2/CCP1/P1A17
RC3/SCK/SCL18
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP5/P1B28
RD6/PSP6/P1C29
RD7/PSP7/P1D30
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
RE3/MCLR/VPP1
U1
PIC18F4520
VDD
SETUP
R11k
VCC
R21k
R31k
R41k
R51k
R61k
FUNC
ENTER
INC
DEC
MULT
Fig. 4.7 Arreglo de teclas para el frontal del dispositivo.
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
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 4.10. 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.
0V
12
0V
22
0V
+5V
+24V
+16V
GN
D1
GN
D1
GN
D2
BR
1
W04G
BR
2
W04G
BR
3
W04G
VI
1V
O3
GND2
U1
78
05
VI
1V
O3
GND2
U2
78
24
VI
1V
O3
GND2
U3
78
05
L1
B8
24
22
H1
22
3K
100
L2
B8
24
22
H1
22
3K
100
L3
B8
24
22
H1
22
3K
100C
71
00n
C8
10
0n
4 5 6 7 8 9
1 2 3
T1
FU
1
1A
+ -
C5
22
0u
+ -
C1
10
00u
+ -
C3
47
0u
C2
10u
C4
1u C6
10u
GN
D1
GN
D1
GN
D2
ALARMA
NO
NC
CO
M
+24V
R1
10k
Q1PN2222
D11N4007
R2
39R
R3
39R
VR1
S10K11
VR2
S10K11
C9
39nf
C10
39nf
RL1RT114012F
GND
Fig. 4.10 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.
Fig. 4.11 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.
4.10 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.
En el circuito mostrado en la Fig. 4.12 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.
GN
D2
+5V
GND2
+16V
+RS485
-RS485
GNDRS485
DE
+5V
GND1
R0
DI
DE
GN
D2
DI GNDRS485
R0
GN
D1
-RS485
+RS485GN
D2
1
2
3
4
5
6
7
8
9
10
J1
CONN-SIL10
R1
10k
R2
10k
1
2
3
U1:A
74HC86
4
5
6
U1:B
74HC86
9
10
8
U1:C
74HC86
C1100u
R3
10k
R4
10kR5
10k
R6
10k
R7
10k
AC128
AC227
B25
ISO DI IN22
ISO DE IN21
ISO COM120
ISO DI DRV19
ISO VCC218
ISO DE DRV17
ISO COM216
ISO RO LED15
VCC11
VCC22
GND15
VCC38
DI9
VCC410
DE11
GND212
RO13
VCC514
ISO VCC126
SD7
D13
FS6
ISO RO DRV24
A23
D24
U2
MAX1480
C21nF
Fig. 4.12 Circuito de Comunicación Serial.
4.11 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. 4.14. En el caso de la comunicación serial se agregará una tarjeta
opcional dependiendo si el usuario necesite o no esta modalidad.
+ P
ICK
-UP
D4
ZL
(+
)
Func Button
Setup Button
Reset Button
Exit
+ P
ICK
-UP
- P
ICK
-UP
+ R
S4
85
- R
S4
85
GN
D4
85
Up Button Dow
n B
utt
on
Le
d A
lm1
Le
d P
rog
FUNC BUTTON
SETUP BUTTON
RESET BUTTON
EXIT
UP BUTTON
DOWN BUTTON
LED ALM1
LED PROG
ZL
(+
)
ZL
(-)
+5V
+24V
+16V
ALARMA
GND2
GND1
ALARMA
GND1
+5V
GND2
+16V
+ RS485
- RS485
GND485
ZL
(-)
+24V
+5V
GND1
- P
ICK
-UP
RA
0/A
N0/C
1IN
-2
RA
1/A
N1/C
2IN
-3
RA
2/A
N2/C
2IN
+/V
RE
F-/
CV
RE
F4
RA
3/A
N3/C
1IN
+/V
RE
F+
5
RA
4/T
0C
KI/C
1O
UT
6
RA
5/A
N4/S
S/H
LV
DIN
/C2O
UT
7
RA
6/O
SC
2/C
LK
O14
RA
7/O
SC
1/C
LK
I13
RB
0/A
N12
/FL
T0
/IN
T0
33
RB
1/A
N10
/IN
T1
34
RB
2/A
N8/IN
T2
35
RB
3/A
N9/C
CP
2A
36
RB
4/K
BI0
/AN
11
37
RB
5/K
BI1
/PG
M38
RB
6/K
BI2
/PG
C39
RB
7/K
BI3
/PG
D40
RC
0/T
1O
SO
/T1
3C
KI
15
RC
1/T
1O
SI/C
CP
2B
16
RC
2/C
CP
1/P
1A
17
RC
3/S
CK
/SC
L18
RC
4/S
DI/S
DA
23
RC
5/S
DO
24
RC
6/T
X/C
K25
RC
7/R
X/D
T26
RD
0/P
SP
019
RD
1/P
SP
120
RD
2/P
SP
221
RD
3/P
SP
322
RD
4/P
SP
427
RD
5/P
SP
5/P
1B
28
RD
6/P
SP
6/P
1C
29
RD
7/P
SP
7/P
1D
30
RE
0/R
D/A
N5
8
RE
1/W
R/A
N6
9
RE
2/C
S/A
N7
10
RE
3/M
CLR
/VP
P1
U1
PIC
18
F4
520
PA
CK
AG
E=
DIL
40B
VD
D=
+5V
VS
S=
GN
D1
SC
LK
2
CS
3
DIN
1
DO
UT
4
OU
T7
RE
FIN
6
U2
TL
C56
15
C(L
)P
PA
CK
AG
E=
DIL
08B
GN
D=
GN
D1
VC
C=
+5V
3 2
1
8 4
U3
:AL
F3
53N
Q1
PN
2222
R1
10k
R2
30k
R3
82K
3 2
1
8 4
U4
:A
LM
393
R4
10
0k
R5
4k7
D1
BZ
X8
5C
5V
1
R6
1k
R7
1k
R8
10k
R9
4k7
R10
1k
C1
10n
PR
OP
ER
TY
=V
ALU
E
1 2
D2
LM
38
5-2
V5
R11
2k4
R13
100
X1
CR
YS
TA
L
C2
33p
C3
33p
GND1
+24V
+5V
+5V
+5V
+5V
+5V
R14
10k
Q2
BD
136
R15
30k
C4
10n
C5
1u
ED
GE
CO
NN
EC
TO
R
CA
JA
DIN
1/4
1 2 3 4
14
13
12
11
510
69
78
J1
CO
NN
-DIL
14
CO
NE
CT
OR
PA
RA
EL
DIS
PL
AY
GND1
1
2
3
4
5
6
7
8
J2
CO
NN
-SIL
8
9
10
11
12
13
14
15
16
J3
CO
NN
-SIL
8B
D4
BZ
X8
5C
5V
1C
6
1u
R16
2k4
1
2
3
4
5
6
7
8
J4
CO
NN
-SIL
8
CO
NE
CT
OR
EN
L
1
2
3
4
5
6
7
8
9
10
J5
CO
NN
-SIL
10
GN
D1
+24V
D3
1N
47
42A
R12
82k
5 6
7
8 4
U3
:B
LF
35
3N
5 6
7
8 4
U4
:B
LM
393
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. 4.14
Fig. 4.14 Esquema de caja DIN ¼.
4.11.1 Tarjeta Madre
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.
Fig. 4.15 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.
AL
AR
MA
NO
NC
COM
0V
12
0V
22
0V GN
D
AL
AR
MA
CO
M
NO
NC
22
0V
12
0V
0V
+5V
+24V
+16V
GN
D1
GN
D1
GN
D2
AL
AR
MA
+5V
+24V
+16V
+24V
GN
D1
GN
D1
GN
D2
BR
1
W04G
BR
2
W04G
BR
3
W04G
VI
1V
O3
GND2
U1
78
05
VI
1V
O3
GND2
U2
78
24
VI
1V
O3
GND2
U3
78
05
L1
B8
24
22
H1
22
3K
100
L2
B8
24
22
H1
22
3K
100
L3
B8
24
22
H1
22
3K
100C
71
00n
C8
10
0n
4 5 6 7 8 9
1 2 3
T1
FU
1
1A
R1
10k
Q1
PN
2222
D1
1N
40
07
R2
39R
R3
39R
VR
1
S1
0K
11
VR
2
S1
0K
11
C9
39
nf
C10
39
nf
RL1
RT
11
40
12F
+ -
C5
22
0u
+ -
C1
10
00u
+ -
C3
47
0u
C2
10u
C4
1u C6
10u
1 2 3 4 5 6 7 8
J1
CO
NN
-SIL
8-R
1 2 3 4 5 6 7 8
J2
CO
NN
-SIL
8
GN
D1
GN
D1
GN
D2
GN
D
(RE
PO
SIC
ION
)
Fig. 4.16 PCB de la tarjeta madre.
4.11.2 Tarjeta Fuente
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 4.17.
Fig. 4.17 Diagrama esquemático de la tarjeta fuente.
Y a continuación en la Fig. 4.18 se presenta la vista de planta de la representación en
PCB
Fig. 4.18 PCB de la tarjeta fuente.
4.11.3 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. 4.19.
Fig. 4.19 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
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.
5.2. 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.
5.3. 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.
Fig. 5.1 Sistema de desarrollo EasyPIC5.
5.4. 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).
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:
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.
5.5. 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:
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.
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:
TfLTfHNvecesFTiLTiHTtotal *25665535*1*256655351 (Ec. 5.1)
Tomando en cuenta la frecuencia del oscilador:
Fosc
TtotalTtotal
4*1 (Ec. 5.2)
Finalmente la frecuencia habiendo integrado Npulsos es:
(Ec. 5.3) Ttotal
NpulsosFreq
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.
FreqKV *1 (Ec. 5.4)
El Caudal viene expresado por la ecuación 5.5
(Ec. 5.5)
Donde:
Q= Cantidad de flujo (m3/s)
A= Área transversal (m2)
V=Velocidad del flujo (m/s)
5.5.1 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
VAQ *
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.
Fig. 5.3 Diagrama de Bloques del subsistema de medición de frecuencia.
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
Freq=0, FaseCap=4
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.
5.6. 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:
(Ec. 5.5)
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
2*1** KKVSQ
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.
outda mA
R
VI
1
0 (Ec. 5.6)
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).
La ecuación 5.7 define la corriente de salida cuando el equipo opera como transmisor
de caudal:
(Ec. 5.7)
Donde:
mAout: Salida de corriente del transmisor
mAlow: Valor mas bajo del rango (Ej: 4 mA)
mAhigh: Valor mas alto del rango (Ej:20 mA)
Qlow: Caudal mínimo predeterminado (Ej: 0 GPM)
Qhigh: 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.
LowHigh
LowHigh
LowOut mAmAQQ
QmAmA *
)(
Fig. 5.6. Vista frontal del equipo.
Fig. 5.7 Mensaje Inicial.
5.8.1 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.
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.
5.8.2 Menú y Submenús
Se tiene acceso al menú y submenús del sistema, a través del subsistema de manejo de
teclado.
Los bloques principales de configuración son:
SENSOR
SALIDA MA
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
- Ts (min): Tiempo de muestreo
- Set Point: Punto de corte
- Modo: Automático/Manual
- Acción: Directa /Inversa
- Valor de falla segura
EXIT
DISPLAY
5.8.3 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.
Fig. 5.10 Diagrama de Bloques del Subsistema de teclado y display.
Fig. 5.11 Continuación diagrama de Bloques del Subsistema de teclado y display.
5.8.3.1 Subrutina Números:
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. 5.12 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
deseado, debe presionar la tecla ENTER para que el valor quede guardado en la EEPROM y
luego pueda ser utilizado por el sistema.
Fig. 5.13 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
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.
6.1. Pruebas Preliminares
6.1.1 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)
Fig. 6.2 Ajuste en el Generador de Señal.
Se obtiene como resultado en el Display LCD un valor igual a 100,00000Hz (Figura
6.3)
Fig. 6.3. Visualización en la Pantalla.
Como requerimiento del sistema se fijó una frecuencia máxima a medir de 10000 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 0.00000, 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,00000 0
0,5 0,00000 0,5
0,8 0,79999 0,001250016
1 1,00000 0
5 5,00000 0
5,5 5,50000 0
100 100,00000 0
350 350,00003 8,57143 x 10-6
1000 1000,00000 0
5400 5400,00195 3,61111x 10-5
10000 10000,00000 0
20000 20000,00000 0
Tabla 6.1 Ajustes-Valor Arrojado.
Como puede verse, la exactitud obtenida es excelente arrojando un error máximo de 0.5 %
Ajustes vs. Valor arrojado en la LCD
-5000
0
5000
10000
15000
20000
25000
-5000 0 5000 10000 15000 20000 25000
Valor LCD (Hz)
Aju
ste
(H
z)
Fig. 6.4 Ajustes vs. Valor arrojado en la LCD
6.2. Pruebas realizadas en el laboratorio
6.2.1 Prueba como indicador
La prueba como indicador se realizó según el esquema de la figura 6.4:
Caudal vs. Frecuencia
0
5
10
15
20
25
30
35
27,3 39,8 43,7 85,3 131,9 170 224,6 267
Frecuencia (Hz)
Cau
dal
(GP
M)
Fig. 6.5 Diagrama de la prueba como indicador.
En el diagrama anterior se observa el rotámetro que fue el elemento utilizado como
patrón, el cual esta conectado en línea con la turbina, esta proporciona al FIT2500 la
frecuencia proveniente del rotor de la turbina. El FIT2500 funcionando como indicador
proporcionó los datos de frecuencia en Hz para la realización de la tabla 6.2 y de caudal en
GPM para la realización de la tabla 6.3.
Frecuencia. (hz) Rotametro (GPM)
27,3 3,2
39,8 4
43,7 5
85,3 9,7
131,9 14,7
170 20,3
224,6 25,2
267 30
Tabla 6.2 Tabla de valores del rotámetro vs. Frecuencia (FIT 2500).
Fig. 6.6 Salida del FIT 2500 en Frecuencia.
Rotámetro (GPM) FIT 2500(GPM)
3 3,2
4 4
5 5
10 9,7
15 14,7
20 20,3
25 25,2
30 30
Tabla 6.3 Tabla de valores del rotámetro vs. FIT 2500.
Salida como Indicador
0
5
10
15
20
25
30
35
3 4 5 10 15 20 25 30
Rotametro (GPM)
FIT
2500 (
GP
M)
Fig. 6.7 Salida del FIT 2500 como indicador de caudal.
6.2.2 Prueba como transmisor
La prueba como transmisor se realizó según el esquema de la figura 6.8:
Fig. 6.8. Diagrama de la prueba como transmisor
Para los efectos de la prueba funcionando como transmisor, la frecuencia que genera
el rotor de la turbina, es captada por el FIT2500 este realiza el cálculo del caudal y la
convierte en una señal de transmisión con rango desde 4mA hasta 20 mA. La salida en mA la
captamos con el controlador TZ4ST que esta en el laboratorio de Instrumentación, este fue
utilizado como patrón, mostrando una salida en porcentaje de la corriente de transmisión.
La tabla de valores obtenidos de la prueba es la siguiente:
Salida FIT2500 ControladorTZ4ST
4 0,3
8 25,1
12 50,1
20 100,3
Tabla 6.4 Tabla de valores del controlador vs. FIT 2500.
Salida como transmisor
0
5
10
15
20
25
0,3 25,1 50,1 100,3
Controlador (%mA)
FIT
2500 (
mA
)
Fig. 6.9. Salida del FIT2500 como transmisor
El cálculo de la Salida en mA operando como transmisor, se realiza en base a las
siguientes ecuaciones:
(Ec. 6.1)
(Ec. 6.2)
Unidad: GPM
mA Low= 4,00mA
mA High= 20mA
Diámetro de la tubería=2”
Qlow = 0GPM
Qhigh=30GPM
LowHigh
LowHigh
LowOut mAmAQQ
QmAmA *
)(
KVSQ **
Como era de esperarse debido a las pruebas preliminares realizadas antes de llegar al
laboratorio, las gráficas arrojadas por las dos pruebas como indicador y como transmisor son
bastante lineales. Sin embargo para caudales menores a 3 GPM encontramos ligeras
desviaciones.
Además de estas pruebas obtuvimos los siguientes parámetros del Instrumento
FIT2500:
Constante de la turbina = 84.175
Clase del instrumento patrón = 1%
Clase del FIT2500 respecto al patrón como transmisor = 0.3%
Clase del FIT2500 = 1.03%
Rangoabilidad = (3-30)GPM
CONCLUSIONES
A continuación se presentan las conclusiones resultantes del diseño de un
“Transmisor, Indicador y Controlador en base a turbina”, así como las recomendaciones
en caso de seguir adelante con la realización de este proyecto.
- Se considera acertada la selección de los elementos que componen el diseño,
principalmente la técnica de captura, la cual resulta la más apropiada puesto que el
error en la medición de tiempo solamente depende del cristal de cuarzo. Cumpliendo
con holgura las especificaciones planteadas en el diseño, de exactitud, rangoabilidad
y respuesta del sistema, como pudo constatarse mediante las pruebas realizadas en el
laboratorio de Instrumentación de la Facultad de Ingeniería.
- Se diseño un instrumento versátil, que puede ser adaptado a cualquier sistema, ya que
el usuario puede realizar ajustes mediante el teclado, de los elementos que caracterizan
al sistema, tales como las constantes de la turbina, del conversor digital analógico, de
primer orden, diámetro de la tubería, entre otras.
- Los Programas de simulación utilizados permitieron un mayor acercamiento a los
resultados antes de llevar a cabo cualquier diseño. Poseen herramientas tan poderosas
que permiten ir monitoreando todas las fases de un proyecto.
- En el diseño de medidores en base a turbina uno de los aspectos más importantes a
desarrollar es la medición de pulsos generado por la turbina. Esta es una fase muy
importante que va a influir en las prestaciones del dispositivo; mientras mas exacta sea
la medición de frecuencia con más detalle será la medición de caudal, tomando en
cuenta que hay procesos que requieren de una gran exactitud.
- Existe una gran cantidad de Microcontroladores en el mercado con unas prestaciones
que integran recursos y periféricos de ultima generación que permiten el desarrollo de
proyectos de cualquier tipo, desde automatizaciones hasta control de procesos. El
desarrollo de este trabajo sustenta lo anteriormente dicho habiendo logrado un
hardware de dimensiones reducidas.
- Los lenguajes de programación utilizados actuales muestran un entorno más amigable
para que el usuario programe cualquier Microcontrolador. El programa de este trabajo
se hizo en alto nivel logrando el desarrollo con relativa facilidad de funciones de
funciones como el algoritmo PI, filtro de primer orden, entre otros.
RECOMENDACIONES
- Desarrollar de un software para computadora que permita la interacción directa con el
equipo, bajo un entorno amigable y educativo, que puedan interactuar el usuario con el
dispositivo.
- Cambiar la posición de la turbina, colocándola a una longitud mínima de quince
diámetros aguas arriba y seis diámetros aguas abajo asegurando mayor exactitud en la
medición
- Desarrollar equipos similares para la rehabilitación de otros instrumentos del el
laboratorio de Instrumentación de Procesos de la Facultad de Ingeniería de la
Universidad de Carabobo.
Referencias Bibliográficas
[1] HIDALGO P, Jesus R., “Multimedia didáctico para la enseñanza de la
Instrumentación de procesos I del Departamento de Sistemas y Automática de la
Escuela de Ingeniería Eléctrica de la Universidad de Carabobo”, Trabajo Especial de
Grado, Universidad de Carabobo, Valencia (Venezuela ), 2005.
[2] SMITH, Carlos A. y CORRIPIO Armando B, ”Control Automático de Procesos
(Teoría y Práctica)”, Primera Edición, Editorial Limusa, México, D.F., 1991.
[3] CREUS, Antonio, “Instrumentación Industrial”, Sexta Edición, Alfa Omega Grupo
Editor, México D.F.,1998.
[4] MALONEY, Timothy, “Electrónica Industrial Moderna”, Quinta Edición, Editorial
Pearson, Prentice Hall.
[5] CAMPOS C., Manuel F., CASTAÑEDA P., Ramiro, CONTRERAS T, Arturo C.,
“Implementaciçon de un sistema de desarrollo utilizando los Microcontroladores PIC”,
Tesis de Grado, Centro Universitario de Ciencias Exactas e Ingeniería, Universidad de
Guadalajara.
[6] http://aguas.igme.es/igme/publica/pdfart2/teoria.pdf
[7] http://www.investigacion.frc.utn.edu.ar/sensores/Caudal/Clases.pdf
[8] www.mikrobasic.com
[9] DÍAZ DE LEZANA, Yosu, “Diseño y Construcción de un sistema de control basado
en microcontrolador para soldadura de componentes de montaje superficial” Trabajo
Especial de Grado, Universidad de Carabobo, Valencia (Venezuela), 2005.
[10] PALMER, Mark, Nota de Aplicación de Microchip AN545, 1997.
[11] www.labcenter.co.uk
[12] ARGAÑEZ, José Hugo, Instrumentación digital - Medición de frecuencia,
Universidad Nacional del Sur, Departamento de Ingeniería Eléctrica y de
Computadoras. Notas de curso, 2003.
[13] http://es.geocities.com/jeeesusmeeerino/procesos/tipos/tipos.html
[14] http://proton.ucting.udg.mx/posgrado/PID/SINTONIZADOR_PID_ADALINE
[15] http://www.seametrics.com/
[16] http://www.info-
ab.uclm.es/labelec/Solar/Microcontroladores/ArquitecturaHardward.htm
[17] http://es.wikipedia.org/wiki/SPI
[18] http://www.ucontrol.com.ar/wiki/index.php?title=El_microcontrolador
[19] REDREJO, José L, Desarrollo de sistemas de regulación y control, I.E.S. Santiago
Apostol – Almendrejo, Dpto. de Electricidad y Electrónica, Notas de curso.
[20] http://es.wikipedia.org/wiki/LCD
[21] www.ucontrol.com.ar/wiki/index.php?title=LCD
[22] www.microelect.com sc0802a.pdf
[23] RUBIO, Antonio, Diseño de circuitos y sistemas integrados, Ediciones UPC, 2003.
[24] GONZALEZ, Juan, Instrumentación Electrónica.
[25] http://es.wikipedia.org/wiki/assembler
[26] http://es.wikipedia.org/wiki/lenguaje_de_alto_nivel
[27] http://es.wikipedia.org/wiki/basic
[28] http://es.wikipedia.org/wiki/compilador