Post on 14-Feb-2015
DISEÑO Y CONSTRUCCIÓN DE MEDIDORES DE FLUJO PARA LÍQUIDOS Y SENSORES DE TEMPERATURA CON SALIDA DIGIT AL
JUAN SALVADOR ROSERO TOVAR
UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA MECÁNICA SANTAFÉ DE BOGOTÁ D.C.
2001
DISEÑO Y CONSTRUCCIÓN DE MEDIDORES DE FLUJO PARA LÍQUIDOS Y SENSORES DE TEMPERATURA CON SALIDA DIGIT AL
JUAN SALVADOR ROSERO TOVAR
Proyecto de grado para optar el título de Ingeniero Mecánico
Director Ing. Fabio Sierra Vargas
UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA MECÁNICA SANTAFÉ DE BOGOTÁ D.C.
2001
Nota de aceptación
________________________________
________________________________
________________________________
________________________________
Ing. Sierra Vargas Director del proyecto
________________________________ Jurado
________________________________ Jurado
Santafé de Bogotá D.C. 22 de junio de 2001.
Este proyecto va dedicado única y exclusivamente a Dios, ya que es mi fuente de agua permanente. Él me ha dado todo lo que tengo. Por él poseo la inteligencia que me permite realizar este proyecto, él me ha dado la tranquilidad y seguridad para hacer las cosas; por él he podido disfrutar de dos grandes hermanos, José Leonardo y Sandra. Por él he aprendido a dar gracias por la existencia de mis amigos y enemigos, la cual en sus buenos consejos y humillaciones, respectivamente, mi vida se ha hecho más fuerte y relevante para hacer feliz a las personas que en mis años de vida se han esmerado por hacerme saber cuanto me quieren: mi abuela Ana Tilde y mis mamás Lesvia y Rebe.
AGRADECIMIENTOS
Expreso mis más sinceros agradecimientos a aquellas personas que de una
u otra forma colaboraron moral y/o materialmente con la realización de este
proyecto:
FABIO SIERRA, Ingeniero Mecánico, profesor del área de ciencias térmicas
de Ingeniería Mecánica, Universidad Nacional de Colombia. Director del
presente proyecto por su increíble paciencia para conmigo y por sus valiosos
aportes durante el proyecto.
NELSON COGUA, Técnico encargado del laboratorio de motores,
Universidad Nacional de Colombia. Gracias a él me llené de ganas para
culminar este proyecto. Siempre me llamó la atención su espíritu de servicio
y el sentido de pertenencia por todo aquello relacionado con la Universidad
Nacional.
CARLOS JULIO HERNÁNDEZ, Licenciado en electromecánica, encargado
del laboratorio de plantas térmicas. Gracias a él aprendí a tener un poco más
de paciencia.
JOSÉ Y LORENA, por toda la colaboración prestada durante toda mi
carrera.
WILLIAM DEL CASTILLO, fue la persona que más confianza depositó en mí.
FAMILIA ROSERO, por la ayuda económica que siempre me brindó.
ALVARO, FIDEL Y JOHN, su apoyo moral nunca lo olvidaré porque con
ustedes aprendí lo bueno que es pasar dificultades cuando tienes a alguien
te respalde.
FAMILIA RAMÍREZ-HOME, FAMILIA DEFFIT-TELLEZ, FAMILIA SUÁREZ Y
ANDRÉS, mi hermanito, gracias por dejarme contar con sus vidas y con sus
consejos, sin ellos no hubiera mejorado mi forma de ser.
ELVIS VALDIVIESO Y ALEJANDRO GALINDO, mis amigos de toda la
carrera.
A mis tíos, Salvador, David y Arturo, y a todas aquellas personas cuyos
nombres se me escapan en este momento. Gracias por su tiempo, sus ganas
y su afecto.
TABLA DE CONTENIDO
Página
INTRODUCCIÓN 15
1. MEDIDORES O SENSORES DE FLUJO
1.1 DEFINICIÓN 15
1.2 GENERALIDADES 15
1.3 PARTES DE UN SENSOR 16
1.3.1 Mecanismo de contacto directo 16
1.3.2 Transductor primario 16
1.3.3 Sistema de lectura 16
1.4 TIPOS DE SENSORES DE FLUJO 18
1.4.1 Medidores de presión diferencial 18
1.4.2 Medidores magnéticos 17
1.4.3 Medidores de desplazamiento positivo 19
1.4.4 Medidores tipo turbina 19
1.4.4.1 Factores de pérdida de energía en medidores
tipo turbina 19
2. CONSIDERACIONES DE DISEÑO DE LOS SENSORES DE FLUJO
2.1 REGÍMENES DE FLUJO DE FLUIDOS EN TUBERÍAS:
LAMINAR Y TURBULENTO 22
2.1.1 Velocidad media de flujo 22
2.1.2 Número de Reynolds 25
2.1.3 Radio hidráulico 26
2.2 LLENADO DE LA TUBERÍA 26
3. CONSTRUCCIÓN DE LOS SENSORES DE FLUJO
3.1 RÉGIMEN DE FLUJO PARA EL RANGO DE TRABAJO 30
3.2 CARACTERÍSTICAS DEL SENSOR ESCOGIDO 31
3.2.1 Número de álabes utilizado 32
3.2.1.1 Turbina de 4 álabes 33
3.2.1.2 Turbina de 6 álabes 33
3.2.1.3 Turbina de 8 álabes 34
3.2.2 Cubierta del sensor 35
3.2.3 Sistema de acople del sensor 36
3.2.4 Ventajas 53
3.2.5 Desventajas 53
4. SISTEMA DE ADQUISICIÓN DE DATOS (SAD)
4.1 DEFINICIÓN 54
4.2 ELEMENTOS DEL SISTEMA 55
4.2.1 Sensores o transductores 56
4.2.2 Circuito de acondicionamiento de señales 56
4.2.3 Circuito de muestreo y retención (Sampled and Hold) 57
4.2.4 Multiplexor analógico 57
4.2.5 Conversor Análogo – Digital (A/D) 57
4.2.6 Conversor Digital – Análogo (D/A) 62
4.3 PARÁMETROS CARACTERÍSTICOS DE UN SAD 64
4.4 CLASIFICACIÓN DE LOS SAD’s 65
4.5 ERRORES QUE SE PRESENTAN EN LA DIGITALIZACIÓN
DE SEÑALES 65
5. SENSORES DE TEMPERATURA
5.1 CARACTERÍSTICAS DE LOS INSTRUMENTOS 67
5.2 SENSORES DE TEMPERATURA 68
5.3 TIPO DE SENSOR UTILIZADO 69
5.4 CONFORMACIÓN DE LA TARJETA (SAD’s) PARA
SENSORES DE TEMPERATURA 70
5.4.1 Etapa de acondicionamiento 70
5.4.2 Tarjeta principal 72
5.4.3 Etapa de visualización 74
5.4.4 Ventajas 75
5.4.5 Desventajas 79
6. SENSORES DE FLUJO : MODO DE UTILIZACIÓN Y
FUTURAS MODIFICACIONES
6.1 CUIDADOS PARA USAR EL SENSOR DE FLUJO 81
6.2 MODO EN QUE REALIZA INTERNAMENTE LA MEDICIÓN 82
7. TARJETA SAD PARA SENSORES DE TEMPERATURA:
MODO DE UTILIZACIÓN Y FUTURAS MODIFICACIONES
7.1 CUIDADOS PARA USAR LA TARJETA 84
7.2 FUNCIONAMIENTO INTERNO DE LA TARJETA 85
8. SOFTWARE PARA PROGRAMAR MICROCONTROLADORES
PIC 86
9. CONCLUSIONES 94
ÍNDICE DE FIGURAS
Página
FIGURA 1.1 Medidor de presión diferencial 18
FIGURA 1.2 Medidor magnético 18
FIGURA 2.1 Flujo laminar 23
FIGURA 2.2 Flujo en zona crítica 23
FIGURA 2.3 Flujo turbulento 23
FIGURA 2.4 Perfil de velocidades en régimen laminar 24
FIGURA 2.5 Perfil de velocidades en régimen turbulento 25
FIGURA 2.6 Tubería parcialmente llena 27
FIGURA 2.7 Tubería totalmente llena 28
FIGURA 2.8a Fotografía de turbinas artesanales 28
FIGURA 2.8b Fotografía de turbinas artesanales 28
FIGURA 3.1 Fotografía de turbinas en resina 29
FIGURA 3.2a Fotografía tarjeta de lectura del sensor de flujo 32
FIGURA 3.2b Fotografía de turbina de 4 álabes 33
FIGURA 3.3 Fotografía de turbina de 6 álabes 34
FIGURA 3.4 Fotografía de turbina de 8 álabes 35
FIGURA 3.5 Posición de cubierta inicialmente pensado 36
FIGURA 3.6 Posición de cubierta actualmente implementado 36
FIGURA 3.7 Sistema de acople del sensor 37
FIGURA 3.7a Diagrama eléctrico sensor flujo 38
FIGURA 3.8 Un imán no registra ¼ de vuelta 39
FIGURA 3.9 Cuatro imanes si registran ¼ de vuelta 39
FIGURA 3.10 Gráfico para turbina de 4 álabes y un imán(ensayo 1) 44
FIGURA 3.11 Gráfico para turbina de 4 álabes y un imán ( ensayo 2 ) 45
FIGURA 3.12 Gráfico para turbina de 4 álabes y un imán ( ensayo 3 ) 46
FIGURA 3.13 Gráfico para turbina de 4 álabes y un imán ( ensayo 4 ) 47
FIGURA 3.14 Gráfico para turbina de 4 álabes y cuatro imanes
( ensayo 1 ) 48
FIGURA 3.15 Gráfico para turbina de 4 álabes y cuatro imanes
( ensayo 2 ) 49
FIGURA 3.16 Gráfico para turbina de 4 álabes y cuatro imanes
( ensayo 3 ) 50
FIGURA 3.17 Gráfico para turbina de 4 álabes y cuatro imanes
( ensayo 4 ) 51
FIGURA 3.21 Fotografía del sensor y la tarjeta de lectura 52
FIGURA 4.1 Esquema general de un SAD 55
FIGURA 4.2 Señal digitalizada 57
FIGURA 4.3 Conversor A/D tipo escalera 60
FIGURA 4.4 Conversor A/D de aproximaciones sucesivas 61
FIGURA 5.0 Diagrama de conexiones eléctricas ampliif. operacional 71
FIGURA 5.1 Fotografía etapa de acondicionamiento 72
FIGURA 5.1a Diagrama eléctrico sensor temperatura 73
FIGURA 5.2 Fotografía tarjeta principal con las subetapas 74
FIGURA 5.3 Fotografía etapa de visualización 74
FIGURA 5.3a Diagrama conexiones display 7 segmentos 75
FIGURA 5.4 Fotografía de la tarjeta mostrando modo solo display 76
FIGURA 5.5 Fotografía de la tarjeta mostrando modo solo serial 77
FIGURA 5.6 Fotografía de la tarjeta mostrando modo display y serial 77
12
ÍNDICE DE TABLAS
Página
TABLA 3.1 Resultados para turbina de 4 álabes y un imán
( ensayo 1) 40
TABLA 3.2 Resultados para turbina de 4 álabes y un imán
( ensayo 2) 40
TABLA 3.3 Resultados para turbina de 4 álabes y un imán
( ensayo 3) 41
TABLA 3.4 Resultados para turbina de 4 álabes y un imán
( ensayo 4) 41
TABLA 3.5 Resultados para turbina de 4 álabes y cuatro imanes
( ensayo 1) 41
TABLA 3.6 Resultados para turbina de 4 álabes y cuatro imanes
( ensayo 2) 42
TABLA 3.7 Resultados para turbina de 4 álabes y cuatro imanes
( ensayo 3) 42
TABLA 3.8 Resultados para turbina de 4 álabes y cuatro imanes
( ensayo 4) 43
13
INTRODUCCIÓN
La transferencia de calor es un fenómeno que está presente en la mayoría de
los procesos industriales. Se menciona éste por ser uno de los más
frecuentes y está bastante asociado con el siguiente proyecto.
En el mercado se pueden encontrar diferentes sistemas de transferencia de
calor, tales como: Intercambiador de Calor de Placas, Intercambiador de
Carcasa y Tubo, etc. Estos sistemas no pueden ser instalados
indiscriminadamente sin antes analizar dos factores de vital importancia
durante la ejecución de un proyecto: la factibilidad y la viabilidad, las cuales
determinan si es posible realizar un proyecto y que tan conveniente puede
resultar el mismo.
En el momento de diseñar un sistema de este tipo se fijan límites de
transferencia que hay que cumplir para poder garantizar su rendimiento y
resulta necesario conocer las condiciones reales de operación para saber en
que rango de eficiencia está trabajando el proceso. Esto es un punto a tener
en cuenta si se sabe que una disminución, por pequeña que sea, de este
parámetro puede representar pérdidas enormes en industrias donde los
procesos de transferencia de calor son de magnitud considerable. Unos
parámetros requeridos para realizar este análisis son: temperaturas y
caudales de los fluidos de trabajo.
En los últimos años, la Universidad Nacional de Colombia ha estado
fomentando la ejecución de proyectos de grado que tienen como objetivo
principal el desarrollo de investigaciones que permitan la creación de nuevas
tecnologías o el mejoramiento de otras ya existentes; lográndose con esto el
acondicionamiento de las diferentes instalaciones a un costo razonable para
el presupuesto de la universidad.
14
Teniendo en cuenta los anteriores aspectos, se decidió diseñar unos
sensores de flujo que permitan obtener valores de caudal con una precisión
bastante buena en el rango de 1 a 200 lt / min; dispositivo de gran
importancia en los procesos de transferencia de calor. Además, consciente
de la importancia que representa la medición de la temperatura en dicho
proceso se decidió también diseñar una tarjeta de adquisición de datos para
sensores de temperatura que pueda enviar lecturas a una base de datos, y
que al igual que los sensores de flujo, sea portátil y permita visualizar valores
en un display, en caso de faltar el computador.
Los anteriores dispositivos se realizaron con la tecnología de los
microcontroladores PIC 16F84 y 16C74B (16F874 ó 16F877) de Microchip.
15
1. MEDIDORES O SENSORES DE FLUJO
DEFINICIÓN
Un medidor o sensor de flujo, es inicialmente, un transductor (transforma un
tipo de señal en otra) que recibe un tipo de señal, dependiendo de la clase de
sensor, y la transforma en un valor de caudal.
En el siguiente trabajo se contemplan los sensores de tipo volumétrico, es
decir, miden el paso de volumen en la unidad de tiempo de un determinado
fluido, que para el caso, es agua.
GENERALIDADES
En diferentes procesos industriales es de gran relevancia conocer el flujo en
la unidad de tiempo de los fluidos de trabajo con el fin de determinar si se
está actuando a la mínima o a la máxima capacidad de operación de los
mismos. Es aquí donde juega un papel importante el sensor de flujo.
En el mercado se pueden encontrar sensores de diferentes tamaños,
principios, precisiones etc., pero dependiendo de los parámetros para la
escogencia pueden resultar bastante costosos. Este último factor ha dado
motivación para desarrollar sensores capaces de cumplir con determinados
requisitos de operación y que, ante todo, sean de fácil adquisición,
económicamente hablando. Esto porque hay usuarios que necesitan medir
caudales en diferentes puntos sin demasiada precisión; es obvio, que si no
se necesita alta precisión, no se justifica tener que adquirir un sensor de alta
designación y alto costo si se puede obtener otro de menor designación, pero
ajustado al presupuesto de los usuarios.
16
PARTES DE UN SENSOR DE FLUJO
Por lo general un sensor de flujo completo está constituido por un mecanismo
de contacto directo con el flujo que está pasando, un transductor primario y
un sistema de lectura.
Mecanismo de contacto directo
Esta es la parte que permanece en contacto con el fluido de trabajo. Dicha
parte debe cumplir con ciertos requisitos con el fin de evitar errores en las
posteriores transformaciones de señal; por lo general, éste representa el
“cuello de botella” en la construcción de estos sensores.
Transductor primario
Este dispositivo se encarga de recibir la señal enviada por el mecanismo de
contacto directo y realizar una transformación con el fin de hacer un cambio
de variable para que el sistema de lectura lo pueda interpretar.
Sistema de lectura
Éste se encarga de recibir la señal proveniente del transductor primario y
realizar una serie de acondicionamientos para poder mostrar el determinado
valor de caudal en un display o simplemente enviarlo al computador. En
cualquiera de los dos casos debe permitir visualizar en diferentes unidades,
para mayor comodidad.
Al iniciar esta sección se habló de sensor de flujo completo porque se puede
presentar el caso en el que dicho sensor esté contemplado sólo con medidor
17
de contacto directo y transductor primario. Este último arrojaría una señal de
voltaje o corriente que necesitaría ser acondicionada para relacionarla con
valores de caudal, como se dijo anteriormente.
TIPOS DE SENSORES DE FLUJO
Hay diferentes formas de medir caudal volumétrico. Los más utilizados son:
medidores de presión diferencial, medidores magnéticos, medidores tipo
turbina, medidores de desplazamiento positivo.
Medidores de presión diferencial
Se fundamentan en la aplicación del teorema de Bernoulli, el cual se resume
en que
Energía Cinética + Energía de Presión = Constante Ec. (1)
Una disminución del diámetro de la tubería ocasiona una restricción al paso
del fluido. La sección mínima por la cual pasa el fluido se denomina vena
contracta, figura 1.1.
Al medir la diferencia de presión (P1) aguas arriba de la restricción y en la
vena contracta (P2) y conociendo los diámetros se puede deducir que el
caudal es proporcional a la raiz cuadrada de la caída de presión:
Q = k* esiónlDiferencia Pr Ec. (2)
18
Éstos se conocen también como medidores de presión diferencial.
Medidores magnéticos
Éstos derivan su funcionamiento de la ley de inducción de Faraday. Dicha ley
establece que la tensión inducida en cualquier conductor al moverse éste
perpendicularmente a través de un campo magnético, es proporcional a la
velocidad del conductor. Se construye colocando un campo magnético en
posición normal a la dirección del flujo a medir, sobre el mismo plano y
rotados 90 grados se colocan dos electrodos sobre los cuales se mide la
magnitud de la fuerza electromotriz inducida por el paso del fluido, figura 1.2.
F.E.M. Inducida
Campo magnético
Figura 1.2 Medidor magnético
P2 P1
Figura 1.1 Medidor de presión diferencial
Dirección flujo
Vena contracta
19
Medidores de desplazamiento positivo
Este tipo de transductores miden el caudal contando o integrando volúmenes
separados de líquido. La precisión depende de la holgura que se tenga en
las paredes móviles y las fijas.
Medidores tipo turbina
Está constituido por un rotor o turbina que gira con el paso del fluido con una
velocidad directamente proporcional al caudal. Éste ofrece grandes ventajas
ya que es de fácil construcción y permite realizar mediciones para caudales
pequeños.
1.4.4.1 Factores de pérdida de energía en medidores tipo turbina
En este tipo de sensores se pueden presentar inconvenientes (debido a
pérdidas de energía) al momento de ser operados, entre éstos se pueden
citar: rotación defectuosa, lectura de caudal errónea, etc. Por lo anterior, es
importante conocer las causas que originan tales inconvenientes. Como
causas principales pueden citarse:
Pérdidas por fricción sobre las paredes de los contornos; éstas varían con
el cuadrado de la velocidad relativa y con la longitud del ducto o canal por
donde se mueve el fluido, siendo inversamente proporcional al radio
hidráulico de la sección de dicho ducto.
También intervienen la viscosidad del fluido y la rugosidad de las paredes.
Pérdidas por separación del fluido de los contornos de los álabes o por
choques contra los mismos, produciéndose turbulencias o vibraciones
perjudiciales. Este efecto tiene lugar, por ejemplo, en la operación a carga
20
parcial o sobrecarga en las máquinas de álabes fijos, al modificarse la
incidencia con la regulación del caudal. La máquina, ya sea bomba o
turbina, está ligada rígidamente a otra máquina de velocidad angular
constante (motor o generador) y para modificar la potencia de acuerdo
con la demanda, se regula el gasto, cambiando en magnitud o dirección
de la velocidad absoluta de entrada al rotor; pero como la velocidad de
arrastre permanece constante, necesariamente la velocidad relativa se
sale de la posición tangente que debe tener respecto al álabe,
produciéndose la separación o choque contra el mismo.
Desde luego, la separación se produce en el borde de ataque del álabe,
al modificarse el ángulo de incidencia y para velocidades subsónicas del
fluido. En el caso de velocidades supersónicas, como sucede con algunas
máquinas que trabajan con aire, gas o vapor, la separación se presenta
en el borde de fuga del álabe debido a un gradiente de presión adversa
que se crea en virtud de una interacción entre la onda de choque que se
genera en la parte convexa del álabe. Esta separación lugar a
turbulencias que aumentan la fuerza de arrastre del álabe, disminuyendo
el rendimiento. Este efecto obliga a limitar el valor del cambio en las
velocidades relativas del fluido y a sacrificar la energía estática transferida
por este concepto.
Pérdidas por recirculación del fluido entre el rotor y la carcasa. El rotor al
gira dentro de la carcasa llena de fluido produce una verdadera
centrifugación de las partículas que están en su contacto periférico, dando
lugar a una corriente circulatoria que sigue al rotor en su movimiento. En
ciertas máquinas hidráulicas se ha podido comprobar que la velocidad
angular de esta corriente llega a ser la mitad de la del rotor. Varía de unas
máquinas a otras, siendo evidente una pérdida energética a causa de una
recirculación del fluido.
21
Pérdidas por fugas. Resulta difícil evitar las fugas del fluido entre las
partes móviles y fijas de una turbomáquina, pues si se fuerza la presión
sobre los sellos de ajuste, se aumenta el efecto abrasivo sobre los
mismos y se acelera su destrucción, además de producir un frenado que
reduce el movimiento. Preferible es tolerar una ligera fuga, en muchos
casos, como en las máquinas hidráulicas, que ayude a mantener
húmedos los sellos, no sólo para protección de éstos, sino también para
favorecer el deslizamiento y mejorar las condiciones de funcionamiento.
22
2. CONSIDERACIONES DE DISEÑO DE LOS SENSORES DE FLU JO
En el capítulo anterior se habló acerca de los sensores de flujo, las clases
existentes y sus partes. Antes de realizar cualquier selección respecto al tipo
de medidor es relevante considerar dos aspectos:
¿ El flujo con el que se va a trabajar es laminar para el rango de trabajo, o
siempre es turbulento ?
¿ La tubería por la que se va a transportar el fluido está totalmente llena ?
Son factores que deben ser manejados con cuidado, ya que de esto depende
el desempeño del sensor. A continuación se profundizará acerca de los
anteriores aspectos.
2.1 REGÍMENES DE FLUJO DE FLUIDOS EN TUBERÍAS: LAMI NAR Y
TURBULENTO
Un experimento simple muestra que hay dos tipos de flujo de fluidos en
tuberías. Éste consiste en inyectar pequeñas cantidades de fluido coloreado
en un líquido que circula por una tubería de cristal y observar el
comportamiento de los filamentos coloreados en diferentes zonas, después
de los puntos de inyección.
Si la descarga o la velocidad media es pequeña, las láminas de fluidos
coloreado se desplazan en líneas rectas, figura 2.1. A medida que el caudal
se incrementa, esta láminas continúan moviéndose en líneas rectas hasta
que se alcanza una velocidad en donde las láminas comienzan a ondularse y
se rompen en forma brusca y difusa, figura 2.2.
23
Esto ocurre en la llamada velocidad crítica. A velocidades mayores que la
crítica los filamentos se dispersan de manera indeterminada a través de toda
la corriente, figura 2.3.
El tipo de flujo que existe a velocidades más bajas que la crítica se conoce
como régimen laminar y a veces como régimen viscoso. Este régimen se
caracteriza por el deslizamiento de capas cilíndricas concéntricas una sobre
otra de manera ordenada. La velocidad es máxima en el eje de la tubería y
disminuye rápidamente hasta anularse en la pared de la misma, figura 2.4.
A velocidades mayores que la crítica, el régimen es turbulento. En el régimen
turbulento hay un movimiento irregular e indeterminado de las partículas del
fluido en direcciones transversales a la dirección principal del flujo; la
distribución de velocidades en el régimen turbulento es más uniforme a
través del diámetro de la tubería que en el régimen laminar, figura 2.5. A
Flujo laminar
Figura 2.1
Flujo en zona crítica
Figura 2.2
Flujo turbulento
Figura 2.3
24
pesar de que existe un movimiento turbulento a través de la mayor parte del
diámetro de la tubería, siempre hay una pequeña capa de fluido en la pared
de la tubería, conocida como la “capa periférica” o “subcapa laminar”, que se
mueve en régimen laminar.
2.1.1 Velocidad media de flujo
Ésta se refiere a la velocidad promedio de cierta sección transversal dada por
la ecuación de continuidad para un flujo estacionario:
ν = A
q Ec. (5)
en donde “q” es el caudal volumétrico y “A” el área de la sección transversal
de la tubería.
La velocidad media es un punto importante, ya que el caudal que se desea
medir depende de ella, y por tanto, es necesario saber cual es su valor en
cierta posición de la tubería (debido al perfil de velocidades en la tubería)
para poder determinar “q”.
Figura 2.4 Perfil de velocidades en régimen laminar
25
2.1.2 Número de Reynolds
Las investigaciones de Osborne Reynolds han demostrado que el régimen de
flujo en tuberías, es decir, si es laminar o turbulento, depende del diámetro
de la tubería, de la densidad y la viscosidad del fluido y de la velocidad del
flujo. El valor numérico de una combinación adimensional de estas cuatro
variables, conocido como el número de Reynolds, puede considerarse como
la relación de las fuerzas dinámicas de la masa del fluido respecto a los
esfuerzos de deformación ocasionados por la viscosidad. Este es:
Re =µ
νρ **D Ec. (6)
Donde µ = viscosidad del fluido
ρ = densidad de masa del fluido
ν = velocidad media del fluido
D = diámetro de la tubería
Para estudios técnicos, el régimen de flujo en tuberías se considera como
laminar si el número de Reynolds es menor que 2000 y turbulento si es
superior a 4000. Entre estos dos valores está la zona denominada “crítica”
donde el régimen de flujo es impredecible, pudiendo ser laminar, turbulento o
de transición, dependiendo de muchas condiciones con posibilidad de
Figura 2.5 Perfil de velocidades en régimen turbulento
26
variación. La experimentación cuidadosa ha determinado que la zona laminar
puede acabar en Re tan bajo como 1200 o extenderse hasta 40000, pero
estas condiciones no se presentan en la práctica.
El número de Reynolds es importante porque ayuda a ubicar el régimen de
flujo, y por consiguiente, el perfil de velocidades.
2.1.3 Radio hidráulico
A veces se tienen conductos con sección transversal que no es circular.
Para calcular el número de Reynolds en estas condiciones, el diámetro
circular es sustituido por el diámetro equivalente(cuatro veces el radio
hidráulico).
RH = ojadoPerímetroM
aLíquidaSecciónVenSuperficie Ec. (7)
Esto se aplica a cualquier tipo de conducto(conducto circular no
completamente lleno, ovalado, cuadrado o rectangular), pero no a formas
muy estrechas, como aberturas anulares o alargadas, donde la anchura es
pequeña en comparación con la longitud. En tales casos, el radio hidráulico
es aproximadamente igual a la mitad de la anchura del paso.
2.2 LLENADO DE LA TUBERÍA
Un punto importante al momento de construir un sensor de flujo es la
garantía de que la tubería esté totalmente llena. Como lo que se quiere
obtener es una medida de caudal, en este caso volumétrico, este valor viene
expresado en función de la velocidad del fluido y del área transversal de la
tubería a través de la cual está pasando el mismo. En caso de construirse un
sensor que determine valores de velocidad relacionados con su respectivo
27
caudal, se hace indispensable multiplicar dicho valor por una constante, el
área transversal. Debido a que va a haber áreas diferentes para caudales
diferentes (antes del llenado total de la tubería) lo que antes era una
constante, ahora es una variable, figura 2.6. Esto representa un obstáculo
tremendo para las turbinas de reacción como son la Kaplan y la Francis,
debido a que necesitan ser ubicadas lo más centradas posible en el ducto,
con el fin de obtener el movimiento deseado; sin contar la turbulencia que
altera su rotación; muy diferente sería si estuviera totalmente llena la tubería,
figura 2.7. Todo esto se pudo corroborar porque se construyeron turbinas
axiales, mixtas y radiales con el único motivo de observar sus
comportamientos. Inicialmente se hicieron construcciones con materiales
caseros que aumentaron considerablemente el peso de las turbinas y al ser
sometidas a los caudales pertinentes, no se movían, figura 2.8, a y b.
Área variable con el caudal
Vista frontal Vista lateral
Figura 2.6 Tubería parcialmente llena
Tubería
28
Vista lateral
Figura 2.7 Tubería totalmente llena
Vista frontal
Área siempre constante Tubería
Figura 2.8b Fotografía de las turbinas artesanales
Figura 2.8a Fotografías de las turbinas artesanales
29
3. CONSTRUCCIÓN DE LOS SENSORES DE FLUJO
En el capítulo primero se habló acerca de los mecanismos para medición de
caudal más utilizados. Por razones de simplicidad en la construcción y por el
rango de trabajo en el caudal se analizarán los sensores tipo turbina.
Teniendo en cuenta lo que se estudió en el capítulo segundo ( tipo de flujo y
llenado de tubería ), se tomó la decisión de buscar materiales más livianos
con que construir las turbinas, y fue así que se recurrió a la resina
poliestérica ( viene con un catalizador ); ésta resultó ser bastante liviana,
pero presentó un inconveniente en el momento de crear los moldes (
fabricados con caucho silicona ), ya que para lograr un espesor de álabe
pequeño se necesitaba de un sistema de llenado muy bueno. Al momento
de sacar la turbina en resina sus álabes resultaron incompletos, y lo que
definitivamente puso las condiciones para descartar este sistema, fue la gran
fragilidad de dicha resina, figura 3.1.
Figura 3.1 Fotografías de turbinas en resina
30
Es conveniente anotar que no para todos los caudales el área era variable,
ya que, para cada diámetro de tubería hay un rango de caudal, hacia el
infinito, en el que dicha tubería empieza a aparecer siempre totalmente llena.
Después de la selección del mecanismo de medición se realizó la
construcción de tres clases de turbina: Francis, Kaplan y Pelton. Cada una
se sometió a diferentes flujos con el fin de observar su movimiento. Debido a
los caudales tan pequeños con los que se necesita trabajar, las turbinas
Francis y Kaplan no mostraron un buen desempeño, por tal efecto, se tomó
como turbina para el mecanismo, la Pelton. Ésta según los ensayos mostró
mejor desempeño, debido a que es una turbina de impulso, la turbulencia no
la afecta tanto como a las otras turbinas, es de construcción sencilla, y lo
que es mejor, para su funcionamiento no se necesita que la tubería esté
totalmente llena.
3.1 RÉGIMEN DE FLUJO PARA EL RANGO DE TRABAJO
En el capítulo segundo se habló de los regímenes de flujo de fluidos en
tuberías; en esta sección se pretende caracterizar el régimen de flujo para el
rango de caudal a trabajar.
Con lo estudiado y con los datos del problema se puede determinar con qué
tipo de flujo se está trabajando. Los sensores o medidores de flujo se
pondrán a operar con dos tipos de tubería φ1/2 “ y con φ1 ¼”. Consultando
tablas se tiene que
Para tubería φ1 ¼” :
Si se trabaja con 200 lt / min ( condición máxima que se pretende ) se
obtiene una velocidad del fluido de 3,5 m / s. Se sabe que para el agua a 17
°C, µ = 0,001 N*s / m2, ρ = 1000 Kg. / m3, ν = 3,5 m / s, luego con estos
31
valores Re es aproximadamente igual a 111125. Esto indica que el flujo
pasando a 200 lt / min es turbulento.
Para tubería φ1 / 2” :
Trabajando con 60 lt /min se obtiene una velocidad del fluido de 0,45 m/ s;
tomando los valores para agua se obtiene un Re de 5715. Indica que también
es turbulento.
Según los resultados anteriores, los sensores van a estar sometidos a flujo
en régimen turbulento que de acuerdo con lo estudiado, este tipo de régimen
muestra un perfil de velocidades más uniforme a través del diámetro de la
tubería que para régimen laminar.
3.2 CARACTERÍSTICAS DEL SENSOR ESCOGIDO
Como se dijo anteriormente la turbina seleccionada para construir el sensor
fue la Pelton debido a las ventajas ofrecidas. Después de descartar turbinas
y materiales se decidió emplear acrílico para construir la Pelton deseada.
Este material, es muy liviano, es fácil de maquinar y para conseguir, y tuvo
una resistencia buena a altas temperaturas ( fue sometido en agua a 92 °°°°C
durante 50 minutos que es el equivalente a los minutos de una práctica de
laboratorio).
Es importante recalcar que la turbina que en el sensor se denomina una
Pelton no es 100% igual, ya que la utilizada tiene álabes rectos ( con el fin de
disminuir al máximo su peso ) y no cucharas como la Pelton real, pero
siguen compartiendo el hecho de ser denominadas turbinas de impulso, es
decir, aprovechan solamente la energía cinética del fluido de trabajo.
32
3.2.1 Número de álabes utilizado
Este es un factor que sólo se le da la importancia que requiere al momento
de hacer pruebas, las cuales son las que dan el veredicto final acerca de si
funciona o no el sistema utilizado, independientemente de si el accesorio
aparenta arrojar datos confiables.
Para realizar pruebas de movimiento se construyó una tarjeta que recibe
señales provenientes de la turbina y las transforma en revoluciones por
minuto de la misma, figura 3.2. Esta tarjeta está conformada, principalmente,
por un microcontrolador PIC 16F84 de MICROCHIP que se encarga de
recibir señales provenientes del sensor ( en forma de pulsos ) y pasarla a
valores de r.p.m. Con esto se puede estudiar que tan homogéneo es el giro
de la turbina durante el paso del fluido a diferentes caudales con el fin de
obtener gráficas de comportamiento, Caudal Vs. r.p.m.
Como último procedimiento, después de estudiar las diferentes curvas de
Caudal Vs. r.p.m. se saca una regresión ( observando cual es la más lineal
y para que rango de trabajo ) con la que se vuelve a programar el PIC para
Figura 3.2 Fotografía tarjeta de lectura del sensor de flujo
33
relacionar los r.p.m. con valores de caudal que finalmente son enviados a un
display.
Se debe aclarar que la tarjeta posee un sensor de lectura condensado en un
transistor de Efecto Hall, la cual funciona bajo la acción de campos
magnéticos. Para que la turbina mande señal a la tarjeta se le adaptó un
imán que produce un campo magnético.
3.2.1.1 Turbina de 4 álabes
Ésta arrojó los mejores resultados. Se procuró que el núcleo de la misma
fuera lo más pequeño posible con el fin de disminuir la cantidad de material
usado ( resultando de menor peso ); también se hicieron sus álabes lo más
delgados y largos posibles, figura 3.2.
De este tipo se construyeron dos turbinas, una para flujos grandes y otra
para pequeños.
3.2.1.2 Turbina de 6 álabes
Mostró buenos resultados, pero para caudales grandes. Es bastante útil
debido a que cuando está pasando el fluido por la tubería, la cual no está
Figura 3.2 Fotografía de turbina de 4 álabes
34
siempre totalmente llena, necesita de longitudes de arco pequeñas entre
álabe y álabe para poder mantener una rotación permanente. Es un poco
más pesada que la de 4 álabes a iguales dimensiones, figura 3.3.
La turbina de seis álabes presenta un inconveniente y es que su construcción
es mucho más compleja que la de cuatro, por tal motivo, presenta un gran
desbalanceo. Durante la rotación de turbinas tan pequeñas sometidas a
flujos pequeños, el desbalanceo es un fenómeno totalmente indeseable.
3.2.1.3 Turbina de 8 álabes
Éste tipo de turbina se esperaba mostrara mejores resultados. Es decir, todo
indicaba que por la pequeña longitud de arco entre álabe y álabe, mucho
más pequeña que la de 6 álabes, el fluido iba a tener un acople perfecto con
dicha turbina. Pero en la práctica no ocurrió así, debido a que, para flujos
grandes difícilmente se movía ( rotación irregular ), mucho menos para flujos
Figura 3.3 Fotografía de turbina de 6 álabes
35
pequeños. La última modificación realizada fue disminuirle el núcleo de
soporte de los álabes con el fin de hacerla más liviana y sus álabes quedaran
más largos; con esto se logró mejorar su movimiento, pero definitivamente su
construcción es mucho más compleja que la de las turbinas anteriormente
mencionadas ( la 4 y la 6 álabes ), figura 3.4.
3.2.2 Cubierta del sensor
Por lo general, los sensores de flujo demandan garantías en el llenado de la
tubería, debido a esto, el mecanismo de contacto directo aparece ubicado en
la parte superior o central de la tubería, así se construyó inicialmente el
sensor, figura 3.5. Realizando ensayos se pudo constatar que al rotar la
posición del mecanismo de contacto directo 180 grados, se podía garantizar
la rotación de la turbina y poder realizar mediciones de caudal en tubería que
no estuvieran totalmente llenas, figura 3.6.
La cubierta, como se puede apreciar en la figura 3.6, es una “T” común y
corriente ( encontrada en el mercado ).
Figura 3.4 Fotografía de turbina de 8 álabes
36
3.2.3 Sistema de acople del sensor
Este sistema está conformado por la cubierta y por el dispositivo de
accesorios integrado. Este último está conformado por: turbina, transistor de
Efecto Hall, tubería soporte, plug ( para enviar señal a la tarjeta ), cable
apantallado, accesorios de sello ( para evitar humedad ), imán ( para la
excitación del transistor de Efecto Hall ), ver figura 3.7.
Figura 3.6 Posición de cubierta actualmente implementado
Envío de señal
El fluido SI alcanza el mecanismo
Figura 3.5 Posición de cubierta inicialmente pensado
Envío de señal
El fluido NO alcanza el mecanismo
37
Figura 3.7 Sistema de acople del sensor
Turbina Accesorio para sello
Tapa para sello
Transistor de Efecto Hall
Cable apantallado para envío de señal
Plug
Tubería soporte
“T”
Imán
38
39
Luego de realizar pruebas con la tarjeta de lectura para diferentes caudales
se sacaron curvas de r.p.m. de la turbina contra caudal y se observó que
para algunos caudales, sobre todo para los más pequeños, las lecturas de
r.p.m. eran muy similares. Esto representó un gran problema porque de esta
manera se hacía imposible sacar una regresión que relacionara estas dos
variables. Inicialmente se pensó en que como se estaba probando con
turbina de cuatro álabes se podría presentar el caso que para caudales muy
pequeños, la turbina no alcanzara a registrar una revolución completa. Por
ejemplo, tomando dos caudales Q1 y Q2, siendo Q1 mayor que Q2. El sistema
de lectura tiene un tiempo base para contabilizar revoluciones ( 6 segundos )
y después de este tiempo base desprecia los giros posteriores. Al pasar el
caudal Q1, éste registra 9 vueltas y ¾ de vuelta, y al pasar el caudal Q2,,
registra 9 vueltas y ¼ de vuelta. Si analizamos las dos rotaciones, en esencia
son iguales, aunque en la realidad sean diferentes. Luego, el sistema de
lectura como en ese momento no entendía ¼ de vueltas, entonces
visualizaba r.p.m. iguales para rotaciones diferentes; induciendo esto una
gran error. Este problema se pudo superar ubicando un imán en cada álabe (
relación 4:1 respecto al sistema anterior, figura 3.8 ), figura 3.9. Así el
sistema de lectura puede entender ¼ de vuelta y la regresión mejoraría, cosa
que ocurrió en la realidad.
De los anteriores procesos se sacaron curvas que corroboraron el hecho.
Figura 3.8 Un imán No registra ¼ de vuelta
Figura 3.9 Cuatro imanes Si registra ¼ de vuelta
40
UN SOLO IMAN (Grafico 1) (Tomando todos los datos) Hz r.p.m. Caudal(Lt/min)
0 0,00 010 216,00 13,4220 241,30 37,2830 340,69 56,9540 401,74 77,7346 431,82 90,7250 486,67 92,5256 495,00 93,4960 520,83 103,43
UN SOLO IMAN (Grafico 2) (Descartando datos) Hz r.p.m. Caudal(Lt/min)
0 0,00 010 213,30 13,4220 240,00 37,2830 338,33 56,9540 395,88 77,7346 436,67 90,7250 483,75 92,5256 491,90 93,4960 518,33 103,43
Tabla 3.1 Para turbina de 4 álabes y un imán (todos los datos)
Tabla 3.2 Para turbina de 4 álabes y un imán (datos parciales)
41
UN SOLO IMAN (Grafico 3) (Tomando todos los datos) Hz r.p.m. Caudal(Lt/min)
0 0,00 010 180,00 14,096720 207,83 41,204830 293,53 56,772140 354,71 79,764750 421,76 6860 457,65 93,913
UN SOLO IMAN (Grafico 4) (Descartando datos) Hz r.p.m. Caudal(Lt/min)
0 0,00 010 180,00 14,096720 212,86 41,204830 290,77 56,772140 354,62 79,764750 418,67 6860 457,65 93,913
CUATRO IMANES (Grafico 5) (Tomando todos los datos de r.p.m y caudal) Hz r.p.m. Caudal(Lt/min)
0 0,00 0,0010 668,00 13,3515 715,00 26,2120 871,33 37,0725 970,74 47,6430 1131,67 60,3135 1240,19 68,7640 1540,00 78,3045 1680,00 83,6950 1772,86 90,5055 1853,46 93,2260 1912,38 97,66
Tabla 3.3 Para turbina de 4 álabes y un imán (todos los datos)
Tabla 3.4 Para turbina de 4 álabes y un imán (datos parciales)
Tabla 3.5 Para turbina de 4 álabes y cuatro imanes (todos los datos)
42
CUATRO IMANES (Grafico 6) (Descartando datos de r.p.m. y caudal ) Hz r.p.m. Caudal(Lt/min)
0 0,00 0,0010 666,67 13,3515 710,00 26,2120 872,80 37,0725 980,59 47,5030 1134,14 57,4835 1340,00 69,2240 1542,63 78,6445 1677,89 83,03
CUATRO IMANES (Grafico 7) (MAS ACEPTABLE ) (Tomando todos los datos de caudal ) Hz r.p.m. Caudal(Lt/min)
0 0,00 0,0010 666,67 13,3515 710,00 26,2120 872,80 37,0725 980,59 47,6430 1134,14 60,3135 1340,00 68,7640 1542,63 78,3045 1677,89 83,6950 1773,53 90,5055 1860,00 93,2260 1912,35 97,66
Tabla 3.6 Para turbina de 4 álabes y cuatro imanes (datos parciales)
Tabla 3.7 Para turbina de 4 álabes y cuatro imanes (todos los datos)
43
CUATRO IMANES (Grafico 8) (Tomando todos los datos de r.p.m ) Hz r.p.m. Caudal(Lt/min)
0 0,00 0,0010 668,00 13,3515 715,00 26,2120 871,33 37,0725 970,74 47,5030 1131,67 57,4835 1240,19 69,2240 1540,00 78,6445 1680,00 83,0350 1772,86 89,1755 1853,46 82,8360 1912,38 95,25
Tabla 3.8 Para turbina de 4 álabes y cuatro imanes (todos los datos)
44
Figura 3.10 Para turbina de 4 álabes y un imán (todos los datos)
Grafico 1. Caudal Vs. r.p.m. (Todo r.p.m. - Todo ca udal - 1 iman)
0
20
40
60
80
100
120
0,00 100,00 200,00 300,00 400,00 500,00 600,00
r.p.m.
Cau
dal (
Lt/m
in)
45
Grafico 2. Caudal Vs. r.p.m. (Desc. r.p.m. - Todo caudal - 1 iman)
0
20
40
60
80
100
120
0,00 100,00 200,00 300,00 400,00 500,00 600,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.11 Para turbina de 4 álabes y un imán (datos parciales)
46
Grafico 3. Caudal Vs. r.p.m. (Todo r.p.m. - Todo ca udal - 1 iman)
0
10
20
30
40
50
60
70
80
90
100
0,00 50,00 100,00 150,00 200,00 250,00 300,00 350,00 400,00 450,00 500,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.12 Para turbina de 4 álabes y un imán (todos los datos)
47
Grafico 4. Caudal Vs. r.p.m. (Todo r.p.m. - Todo ca udal - 1 iman)
0
10
20
30
40
50
60
70
80
90
100
0,00 50,00 100,00 150,00 200,00 250,00 300,00 350,00 400,00 450,00 500,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.13 Para turbina de 4 álabes y un imán (datos parciales)
48
Grafico 5. Caudal Vs. r.p.m. (Todo r.p.m. - Todo ca udal - 4 imanes)
0,00
20,00
40,00
60,00
80,00
100,00
120,00
0,00 500,00 1000,00 1500,00 2000,00 2500,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.14 Para turbina de 4 álabes y cuatro imanes (todos los datos)
49
Grafico 6. Caudal Vs. r.p.m. (Desc. r.p.m. - Desc. caudal - 4 imnaes)
0,00
20,00
40,00
60,00
80,00
100,00
120,00
0,00 500,00 1000,00 1500,00 2000,00 2500,00
r.p.m
Cau
dal (
Lt/m
in)
Figura 3.15 Para turbina de 4 álabes y cuatro imanes (datos parciales)
50
Grafico 7. Caudal Vs. r.p.m. (Desc. r.p.m. - Todo caudal - 4 imanes) GRAFICA A UTILIZAR PARA REGRESION
y = 0,0565x - 9,7146
0,00
20,00
40,00
60,00
80,00
100,00
120,00
0,00 500,00 1000,00 1500,00 2000,00 2500,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.16 Para turbina de 4 álabes y cuatro imanes (todos los datos)
51
Grafico 8. Caudal Vs. r.p.m. (Todo r.p.m. - Desc. c audal - 4 imnaes)
0,00
20,00
40,00
60,00
80,00
100,00
120,00
0,00 500,00 1000,00 1500,00 2000,00 2500,00
r.p.m.
Cau
dal (
Lt/m
in)
Figura 3.17 Para turbina de 4 álabes y cuatro imanes (todos los datos)
52
En la figura 3.16 se muestra la regresión utilizada para pasar de r.p.m. de la
turbina a valor de caudal en Lt / min. El gráfico se puede observar que esta
es la curva que mejor relaciona estas dos variables.
En este proyecto se construyeron cuatro sensores de flujo: uno con turbina
de 8 álabes, otro con turbina de 6 álabes y dos con turbinas de 4 álabes (
uno grande y otro pequeño ). El acople sensor tarjeta de lectura puede verse
en el figura 3.21.
En la práctica, los sensores con los que se está realizando mediciones
poseen turbina Pelton de 4 álabes.
Figura 3.21 Fotografía del sensor y la tarjeta de lectura
53
3.2.4 Ventajas
Estos sensores permiten su desarrollo a menor costo que los del mercado.
Están sujetos a mejorías. Pueden asociarse con la tarjeta de adquisición de
datos (futura aplicación), mencionada más adelante, con el fin de enviar
datos de caudal y temperatura al computador con propósitos estadísticos.
3.2.5 Desventajas
Estos están diseñados para trabajar en el rango de 1 a 200 lt / min, pero se
ha observado que para caudales muy pequeños se presentan problemas. Se
tiene la plena convicción que si se construyen no tan artesanalmente las
pérdidas disminuirán considerablemente.
El sistema de rodadura es un pequeño eje de relojería que mostró poco
rozamiento con el acrílico. A este sistema se le adecuaron unos bujes
bastante imprecisos debido a la pequeñez del eje.
54
SISTEMA DE ADQUISICIÓN DE DATOS (SAD)
4.1 DEFINICIÓN
La aplicación de métodos digitales en los procesos implica el desarrollo de un
sistema electrónico que se encargue de llevar información de las variables
del proceso al sistema digital que recibe los datos.
Cuando se habla de la entrada de la información hacia del sistema digital, se
refiere a adquisición de datos.
Las señales que maneja un SAD pueden ser de dos tipos:
Señales digitales, las cuales pueden tomar dos estados (bajo o alto) y
pueden ser usadas para determinar la presencia o ausencia de un evento (el
paso de una persona, por ejemplo), cambio de posición de un interruptor
(abrir o cerrar una puerta, ejemplo también válido).
Señales análogas, que pueden tomar cualquier valor entre un mínimo y un
máximo y que por lo general varían en el tiempo de acuerdo con las
condiciones del proceso. Estas señales provienen, en la mayoría de los
casos, de sensores o transductores; también, en vez de recibirlas, se pueden
enviar hacia un actuador.
La habilidad del sistema para preservar la exactitud e integridad de las
señales originales que van desde o hacia el sistema digital es la principal
medida de su calidad.
55
4.2 ELEMENTOS DEL SISTEMA
Un sistema de adquisición de datos se compone básicamente ( figura 4.1 )
de:
Sensores o transductores
Circuito de acondicionamiento de señales
Circuito de muestreo y retención
Multiplexor analógico
Conversores Análogo - Digital (A/D)
Conversores Digital - Análogo (D/A)
A continuación se hace un estudio general de cada uno de estos
subsistemas.
Sensor
Acondicionamiento de señal
Multiplexor analógico
Muestreo y retención
Conversor A / D
Salida digital
Recepción de datos
Figura 4.1 Esquema general de un SAD
56
4.2.1 Sensores o transductores
Corresponde al primer elemento del sistema y es el que mide la magnitud de
interés. Su función es la de convertir energía de una forma física que puede
ser mecánica, térmica, magnética, etc. en una señal eléctrica.
La cantidad de energía convertida por un transductor es pequeña, de manera
que hay que acondicionarla para adaptarla a la etapas posteriores.
Si la cantidad de energía convertida, y por ende, extraída del proceso, es
muy grande, se podría perturbar el funcionamiento del proceso en forma
indeseada.
4.2.2 Circuito de acondicionamiento de señales
Por lo general, los rangos de las señales entregadas por los transductores no
están acordes con los de las entradas que ofrece el SAD; e igualmente los
niveles de tensión y de corriente que requieren los actuadores, en caso de
haberlos, son mayores que los que está en capacidad de ofrecer un sistema
de distribución de señales (este proyecto no distribuye señales), por tanto, se
hace imprescindible una etapa intermedia llamada acondicionamiento de
señales. Este circuito se encarga de la amplificación, filtrado y adaptación de
señales de los transductores al SAD. Dado que maneja sólo señales
eléctricas, el acondicionador de señales constituye lo que se denomina una
interfaz, la cual se encarga de garantizar que todas las señales de entrada
tengan un rango dinámico similar, y las de salida se adapten a las
necesidades del actuador.
57
4.2.3 Circuito de muestreo y retención (Sampled and Hold)
Este circuito se encarga de tomar una muestra (Sample) y mantenerla (Hold)
durante el tiempo que dura su conversión a código digital.
Este se hace necesario siempre y cuando la señal de entrada sufra
variaciones apreciables durante el tiempo que dura la conversión.
4.2.4 Multiplexor analógico
Este circuito actúa como un interruptor rotatorio de varias posiciones que
periódicamente selecciona una señal de entrada y la enruta al circuito de
muestreo y retención.
El proceso de muestreo involucra al multiplexor analógico y al circuito de
muestreo y retención (S&H).
4.2.5 Conversor Análogo – Digital (A/D)
Un conversor de este tipo es un dispositivo que recibe una entrada de voltaje
Señal análoga
Señal digital
Tiempo
Figura 4.2 Señal digitalizada
58
Vent (puede variar desde cero hasta un valor máximo llamado Vref) y que
entrega una palabra digital con una precisión y una resolución dadas que se
obtienen mediante la comparación de dicha entrada con el voltaje de
referencia Vref. La figura 4.2 muestra una señal digitalizada debido al
conversor A / D.
El proceso de conversión implica dos etapas: la cuantificación de la señal y la
codificación de la misma.
Cuantificación : consiste en representar la amplitud de la señal análoga
mediante un número finito de valores distintos en un instante de tiempo
determinado. Si el convertidor es de “n” bits, se pueden representar 2n
estados; el error máximo cometido por el convertidor es la mitad de la
distancia existente entre dos valores de salida, así:
Emax = 0,5*Vref / 2n Ec. (8)
Codificación : es la representación del valor asignado a la señal mediante
combinaciones de estados lógicos altos y bajos.
El voltaje análogo medido es una fracción del voltaje de referencia igual a la
fracción que forma el valor digital con respecto al valor binario máximo:
Vent / Vref = valor digital de salida / 2n Ec. (9)
El valor digital de salida se expresa de la siguiente forma:
b1*2n-1 + b2*2
n-2 + b3*2n-3 + ...... + bn*2
0 Ec. (10)
de donde b1,b2,b3,...,bn corresponden a los bits de la palabra digital (siendo
b1 el más significativo).
59
Las principales especificaciones de los conversores A/D son:
Número de bits : es la longitud de bits de la palabra de salida.
Voltaje de referencia : corresponde al valor máximo que puede tener el valor
análogo de entrada.
Resolución : corresponde al mínimo valor de voltaje en la entrada que causa
una variación en la salida digital.
Resolución = Vref / 2n Ec. (11)
Tiempo de conversión : tiempo desde el comienzo hasta el final de la
conversión.
Tensión de alimentación : algunos conversores A/D requieren una sola
fuente, otros necesitan una dual.
Señales de digitales de control : CS (conversión start), es un pulso que se
envía al convertidor para indicarle un proceso de conversión; EOC (end of
conversión), es un pulso que se origina del convertidor para avisar a la
unidad externa que ya ha terminado el proceso de conversión.
Los conversores A/D más conocidos considerando sus ventajas y su
implementación en una gran cantidad de sistemas son: el de tipo escalera, el
de aproximaciones sucesivas y de voltaje a frecuencia.
Tipo escalera : este incorpora un convertidor digital analógico cuya salida se
denota Vx.
Inicialmente el valor de este voltaje es de cero, la salida del comparador está
en alto y la compuerta AND deja pasar los pulsos del reloj al contador;
cuando se activa el contador mediante la señal CS enviada por el circuito de
control, suministra un valor digital binario que empieza en cero y se va
incrementando en una unidad con cada pulso del reloj, figura 3.3. Este valor
60
digital pasa al convertidor D/A que entrega un voltaje Vx que aumenta en
forma escalonada. Cuando el voltaje Vx supere el valor análogo de entrada,
la salida del comparador cambia de un valor lógico alto a uno bajo, por lo
cual la compuerta AND no deja pasar más pulsos al reloj del contador
terminando así la conversión.
Para comenzar otra conversión se debe dar un “reset” al contador.
Aproximaciones sucesivas : al igual que el anterior incorpora también un
convertidor D/A.
El circuito de control coloca un 1 en el bit más significativo (MSB) b1
manteniendo los otros bits con el valor lógico cero. El convertidor D/A realiza
la conversión y envía un valor de voltaje Vx al comparador, si el voltaje de
entrada resulta mayor que el voltaje Vx el valor alto permanece como valor
definitivo para el b1; pero si el voltaje Vent resulta menor que Vx entonces el
circuito de control remueve el valor alto y coloca un cero que permanece
como valor definitivo para b1, figura 4.4.
Contador
Conversor A/D
Salida digital
AND
Reloj
Entrada análoga
Vx + -
Figura 4.3 Conversor A/D tipo escalera
61
Voltaje a frecuencia (V/F) : Este tipo de convertidores permite obtener una
buena conversión a bajo costo y con una buena resolución (puede ser
superior a ocho bit).
El convertidor V/F entrega un tren de pulsos cuya frecuencia es proporcional
al voltaje de entrada.
La frecuencia F que entrega el contador es:
F = Kf * Vent Ec. (12)
siendo Kf la constante del convertidor V/F.
Si se cuentan esos pulsos durante un tiempo determinado, se obtiene un
valor digital proporcional a su frecuencia y por consiguiente proporcional al
valor análogo de entrada.
Este conteo se hace para una base de tiempo fija “ts”.
El número de pulsos N que pasa al contador es:
N = F * ts Ec. (13)
Algunos de estos convertidores entregan directamente código BCD (Binario
Codificado Decimal) para facilitar el uso del display.
Lógica de control
Conversor D/A
Comparador Entrada análoga
Salida digital
Figura 4.4 Conversor A/D de aproximaciones sucesivas
62
4.2.6 Conversor Digital – Análogo (D/A)
Este dispositivo transforma un dato de entrada dado como una palabra
binaria de “n” bits en un nivel de tensión proporcional a dicha palabra Vsal,
que se ubica en un rango entre cero y el Vref.
Debido a que se dispone de un número limitado de bits en la entrada, se
dispone también de un número limitado de niveles análogos en la salida del
dispositivo, por lo cual la señal de salida será análoga discreta.
La salida análoga es una fracción del voltaje de referencia igual a la fracción
que forma el valor binario de entrada con respecto al valor binario máximo
Vsal / Vref = valor digital de entrada / 2n Ec. (14)
de donde el valor digital de entrada se puede expresar como en la Ec. (10).
Las principales especificaciones de los conversores D/A son:
Número de bits : es la longitud en bits de la palabra de entrada al convertidor.
Voltaje de referencia : es el valor máximo que puede alcanzar el voltaje
análogo de salida.
Resolución : es la variación en voltios que experimenta el voltaje análogo de
salida al cambiar el bit menos significativo (LSB) del valor digital de entrada.
Resolución = Vref / 2n Ec. (15)
Tiempo de asentamiento (Setting time): es el tiempo que transcurre desde el
momento en que se produce un cambio en la entrada que involucre al dígito
más significativo hasta el momento en que la salida se estabiliza en un nuevo
valor.
63
Tensión de alimentación : algunos conversores D/A requieren de una fuente
simple, en cambio otros necesitan una dual.
Voltaje de desplazamiento (offset) : algunos conversores presentan un voltaje
de desplazamiento cuando la entrada digital es nula, debido al amplificador
operacional que se encuentra en su salida; por ello generalmente existen
terminales para compensación de voltaje de desplazamiento.
Los principales tipos de conversores D/A son:
Conversor con red de resistencias R – 2R : utiliza un sumador con tantos
canales de entrada como bit posee el convertidor y cada uno de ellos es
seleccionado por el valor del bit correspondiente. Éste usa un amplificador
operacional para obtener en la salida una señal de voltaje proporcional al
nivel de corriente de su entrada.
Este convertidor puede presentar problemas debido a la precisión de las
resistencias.
Conversor de resistencias ponderadas : consta de una red de resistencia en
la que la corriente que circula por cada resistencia es la mitad de la corriente
que circularía por la resistencia correspondiente al bit inmediatamente
superior.
Cada resistencia proporciona una corriente con un valor determinado que se
suma con las contribuciones de corriente de las otras resistencias en la
entrada del amplificador operacional, el cual entrega un nivel en su salida
proporcional a la suma de corrientes.
Conversor por modulación de ancho de pulso : primero se convierte el dato
de “n” bits de entrada en una serie de pulsos con un determinado ancho.
Se usa un comparador con dos canales de “n” bits, uno de los cuales es el
código binario de entrada y el otro es el valor binario de un contador interno
de “n” bits, el cual está aumentando su cuenta gracias a un oscilador y
cuando las dos entradas del comparador son iguales el comparador bascula
64
su salida y el proceso vuelve a empezar basculando de nuevo la salida al
finalizar, con lo cual se obtiene un tren de pulsos con una ancho determinado
por el tiempo en que el reloj alcanza el dato de entrada.
Después de un tren de pulsos se pasa a través de un filtro pasabajos y se
obtiene la señal de salida del convertidor.
La principal desventaja de este convertidor es el número elevado de pasos
que se debe realizar.
4.3 PARÁMETROS CARACTERÍSTICOS DE UN SAD
Las características más sobresalientes para evaluar la configuración de un
sistema de adquisición de datos son:
El número de canales analógicos y digitales de entrada y salida.
Exactitud : este parámetro involucra la resolución, la cual indica la desviación
de la medida respecto al valor real. Debe englobar los efectos de la
resolución de los conversores y los diferentes errores de linealidad, offset y
ganancia de todos los elementos del sistema.
Velocidad de muestreo : está dada por el tiempo entre dos lecturas
consecutivas de una misma variable. Éste depende de: el tiempo que
necesite el multiplexor para seleccionar y conectar el canal, el tiempo que
necesite el conversor A/D para realizar la conversión, el tiempo que tarde la
comunicación con el microprocesador, el tiempo promedio que tarda el
microprocesador en procesar cada variable y el número de variables
muestreadas.
65
4.4 CLASIFICACIÓN DE LOS SAD’s
Existen diversas clasificaciones de los SAD’s. Éstas dependen de : su
arquitectura, tipo de bus a que están conectados, etc.
En esta sección sólo se dará la clasificación de acuerdo con el tipo de bus
usado.
Basado en bus externo : estos sistemas están formados por varios
instrumentos interconectados a través de algún bus, como puede ser el:
GIPB, VXI, etc. En estos sistemas el ordenador actúa como controlador
del sistema; éste se encarga de gestionar todas las operaciones que se
realizan en el BUS.
Basado en bus interno : Estos consisten en tarjetas de adquisición de
datos que se conectan al bus del sistema a través de uno de los slots de
expansión de la tarjeta madre.
Circuitos integrados de adquisición de datos : tiene circuitos integrados
que incorporan la mayor parte de los subsistemas necesarios para
realizar la adquisición de las señales analógicas (amplificador,
multiplexor, filtros, S&H, conversores A/D, conversores D/A, timers, etc.).
4.5 ERRORES QUE SE PRESENTAN EN LA DIGITALIZACIÓN D E
SEÑALES
Muestreo :
Una señal análoga se muestrea observando y memorizando su amplitud
instantánea a intervalos regulares e ignorándola el resto del tiempo, figura
3.2.
La velocidad a la cual se realiza la actualización de las muestras se
denomina rata o frecuencia de muestreo (Fs). El teorema de Nyquist dice que
la rata de muestreo del sistema debe ser mayor que dos veces la
66
componente de más alta frecuencia presente en las señales de entrada
multiplicada por el número de canales análogos.
Fs ≥ 2 * Fc * N Ec. (15)
El uso de una frecuencia de muestreo inferior a la establecida por el criterio
de Nyquist cusa pérdida de información debido a que el número de muestras
por ciclo resultante es insuficiente para reconstruir todas las señales de
entrada; esta condición se denomina submuestreo o error de aliasing.
El error promedio de muestreo se obtiene comparando el área bajo la curva
de un semiciclo de la señal reconstruida con el área bajo la curva del
semiciclo de la señal original.
Ruido :
Debido a la interferencia electromagnética, las señales que van desde los
transductores hasta el microprocesador puede presentar ruido, la cual origina
errores en los datos muestreados. Este factor es muy importante cuando se
trabaja en ambientes industriales debido a que puede afectar severamente el
control de los procesos.
Alinealidad :
Los conversores A/D y D/A presentan un error de Alinealidad del voltaje de
entrada y el código de salida. Este error se obtiene de la diferencia del valor
que entrega el conversor y la línea recta ideal. La única forma de evitar este
error es utilizando conversores de alta calidad.
En muchas ocasiones el comportamiento del transductor el no lineal. Esta
característica se puede corregir por software, con el programa de control, o
por hardware, mediante circuitos que contienen linealizadores como
extractores de raiz cuadrada, amplificadores logarítmicos, etc.
67
5. SENSORES DE TEMPERATURA
El conocimiento y selección apropiada de los elementos de instrumentación
industrial es un factor muy importante en el desarrollo de cualquier proceso
donde se haga estudio de variables, y más, si se realiza un proceso de
control y automatización.
La calidad de los instrumentos utilizados y el conocimiento de las condiciones
de operación son factores que afectan en gran medida el desempeño del
sistema que se implemente.
En el capítulo 3 se habló acerca de las tarjetas de adquisición de datos, las
cuales se encargan de tomar señales provenientes de sensores o
transductores y hacerle una serie de acondicionamientos, con el fin de que
los dispositivos posteriores puedan entenderlas. En este capítulo se pretende
mostrar una aplicación del SAD’s con sensores de temperatura.
5.1 CARACTERÍSTICAS DE LOS INSTRUMENTOS
Antes de empezar con la aplicación de las SAD’s es necesario conocer los
parámetros más relevantes con los que debe cumplir un instrumento de
medida :
Precisión : es la tolerancia de medida del instrumento y define los
límites del error cuando éste se emplea en condiciones normales de
servicio. Generalmente se da en unidades de la variable medida.
Resolución : se refiere al cambio más pequeño que puede detectar el
instrumento.
Repetibilidad : es la habilidad del instrumento para mostrar la misma
indicación (Vm) cuando se presente el mismo valor (Vr). Se da en
porcentaje.
68
Sensibilidad : es la relación entre el incremento de la lectura y el
incremento de la variable que la ocasiona; si la sensibilidad es grande
en todo el rango se dice que el transductor es lineal.
Rango : es el intervalo de valores de la variable de entrada que se
puede medir.
Alcance : es la diferencia entre el valor máximo y el valor mínimo que
se puede medir.
Histéresis : es la diferencia máxima que se observa en los valores
indicados por el instrumento para el mismo valor cualquiera del campo
de medida cuando la variable recorre toda la escala en los dos
sentidos, ascendente y descendente.
5.2 SENSORES DE TEMPERATURA
En la industria, la medida de la temperatura constituye uno de los
procedimientos más comunes y de mayor importancia. En el mercado se
puede encontrar una gran variedad de sensores o transductores de
temperatura, entre ellos se pueden mencionar : termómetro de vidrio,
termómetro bimetálico, termómetro de bulbo y capilar, termómetro de
resistencia, termistor, termopar y pirómetro de radiación, entre otros.
A continuación se explica brevemente el principio de funcionamiento de los
transductores de temperatura cuya señal puede ser fácilmente digitalizada.
Punto importante si se sabe que en muchas ocasiones es más ventajoso
tomar los datos obtenidos y enviarlos a un computador para graficarlos en
lugar de mostrarlos en un display.
Termopar : su funcionamiento se basa en el efecto Seebeck, es decir, al
unir dos alambres de diferente metal, por un extremo, dejando las otras
dos puntas libres. Luego, si los extremos unidos están a una temperatura
(T1) diferente a la temperatura (T2) de los extremos libres, se genera entre
69
estos dos últimos una diferencia de potencial (e) que depende de los
materiales empleados en los dos alambres y la diferencia de temperatura.
Termistor : es un elemento semiconductor en el que pequeños cambios
de temperatura ocasionan cambios muy grandes en la resistencia
eléctrica, la cual disminuye al aumentar la temperatura. Debido a lo
anterior, éste es un dispositivo de alta sensibilidad.
El tiempo de servicio es un factor que afecta la respuesta de este tipo de
sensores, con la cual va cambiando el porcentaje de aumento de la
resistencia. Este efecto se conoce como envejecimiento.
Detector resistivo : su sistema de funcionamiento es bastante parecido al
del Termistor, la única diferencia es que tiene un coeficiente de variación
de la resistencia positivo, es decir, que su resistencia aumenta al
aumentar la temperatura, y adicionalmente esta relación es lineal.
Circuito integrado : es de tamaño reducido y se encuentra en diferentes
tipos de encapsulado: metálico, plástico, montaje superficial, etc.
Su principio de funcionamiento se deriva de la influencia que ejerce la
temperatura sobre las características eléctricas de los semiconductores.
La salida es lineal con la temperatura. Son fáciles de usar debido a que
no requieren una gran cantidad de dispositivos externos para su
operación y los rangos de salida dan buena inmunidad al ruido.
5.3 TIPO DE SENSOR UTILIZADO
Para el siguiente trabajo se utilizará el sensor integrado LM35. Éste es
barato, sólo necesita una etapa de amplificación, contrario al termopar que
necesita mayor amplificación debido al valor de voltaje tan pequeño que
envía. Además, los rangos de temperatura trabajados en el laboratorio están
dentro del rango para el cual están diseñados los LM35.
70
5.4 CONFORMACIÓN DE LA TARJETA ( SAD’s ) PARA SENSO RES DE
TEMPERATURA
Debido a la necesidad que se tiene en algunas ocasiones de visualizar
valores de temperatura en diferentes posiciones de una máquina térmica, o a
veces, enviar esos mismos valores a un computador a intervalos de tiempo
demasiado pequeños, se ha planteado una solución con el fin de suplir tales
necesidades. La solución viene con el diseño de una tarjeta que recibe 5
señales análogas de temperatura y las procesa en dos modalidades:
visualización en un display y envío serial al computador.
La tarjeta viene conformada por varias etapas.
5.4.1 Etapa de acondicionamiento
Ésta etapa está conformada en subetapas de amplificación no inversoras, es
decir, cada una de ellas recibe una señal análoga de temperatura del orden
de los milivoltios y la pasa al rango de 0 a 5 V ( valores TTL para que los
pueda entender el microcontrolador ). Dependiendo de los voltajes de
alimentación de los amplificadores, el rango de amplificación puede ser
cambiado ( en futura aplicación donde se necesite de 0 a 24 V ) mediante la
manipulación de potenciómetros de precisión contenidos en la tarjeta, figura
5.1.
71
72
5.4.2 Tarjeta principal
Esta etapa contiene inicialmente un microcontrolador PIC 16C74B de
MICROCHIP la cual se encarga de procesar toda la información proveniente
de la tarjeta de acondicionamiento. El PIC tiene un algoritmo que recibe
señales análogas de temperatura y las procesa enviándolas al PC o a un
display para ser interpretada por el usuario. El valor de temperatura puede
ser expresado en grados Celsius o en grados Fahrenheit. Esta misma etapa
contiene una subetapa para realizar comunicación serial mediante el chip
MAX232 y otra subetapa de acondicionamiento para enviar datos a un
display de 7 segmentos, figura 5.2.
Figura 5.1 Fotografia etapa de acondicionamiento
73
74
5.4.3 Etapa de visualización
Esta es la etapa más sencilla y simplemente contiene una configuración triple
de displays dobles de 7 segmentos, las cuales reciben señal de la tarjeta
principal para visualizar temperaturas ya sean en grados Celsius o en grados
Fahrenheit, figura 5.3.
Figura 5.2 fotografía tarjeta principal con las subetapas
Figura 5.3 Fotografia etapa de visualizacion
75
La tarjeta completa permite realizar tres tareas opcionales :
Modo sólo display : en este caso, la tarjeta recibe las señales de
temperatura, les aplica una regresión y finalmente muestra el resultado de
76
la regresión en un display, únicamente. En este modo la temperatura se
visualiza en grados Celsius o Fahrenheit, dependiendo de lo deseado,
ver en figura 5.4 la configuración de los suiches.
Modo sólo serial : en esta selección, la tarjeta recibe las señales de
temperatura y envía los resultados al computador vía puerto serial,
únicamente, ver en la figura 5.5 la configuración de los suiches.
Modo display y serial : si se escoge esta opción se combinan las dos
anteriores. Es decir, en un momento dado está visualizando la
temperatura en el display’s y casi simultáneamente, se envían
serialmente al computador. Es importante anotar que el display sólo está
en capacidad de visualizar una temperatura a la vez, ver en la figura 5.6
la configuración de los suiches.
Figura 5.4 Fotografía de la tarjeta mostrando modo solo display
77
5.4.1 Ventajas
Esta tarjeta ofrece la ventaja de ser portátil, algo semejante al lector de
termocuplas, en el cual se conecta la termocupla tipo J o K y el lector arroja
el valor de la temperatura medida en un display. La ventaja de la tarjeta es
Figura 5.5 Fotografía de la tarjeta mostrando modo solo serial
Figura 5.6 Fotografía de la tarjeta mostrando modo display y serial
78
que ésta puede tomar lecturas de 5 temperaturas sin necesidad de estar
conectando y desconectando los sensores como ocurre con el lector (sólo
puede leer una temperatura al tiempo). Se hace énfasis en que la tarjeta
puede visualizar una temperatura a la vez, pero constantemente está
haciendo la lectura de las 5 temperaturas, excepto en el modo de sólo
display.
La tarjeta está compuesta por módulos : acondicionamiento, sistema de
lectura, comunicación serial, es decir, los módulos no se han integrado con el
fin de realizar futuras aplicaciones. Por ejemplo, actualmente se trabaja con
sensores LM35 que entregan 10 mV por cada grado Celsius; en caso que se
quiera tomar lecturas de termocuplas éste arrojaría un error, en caso de
integrar los módulos, debido a que las termocuplas y los LM35 necesitan
ganancias diferentes para alcanzar los 5 V. Luego, si a 50 °C, por ejemplo, el
LM35 entrega 500 mV, la termocupla entrega un valor mucho menor; ahora,
cuando pasa por el módulo de acondicionamiento, la señal proveniente del
LM35 entregaría alrededor de 2,5 V mientras que la de la termocupla no
alcanzaría este rango. Finalmente, el conversor A/D recibe cada señal y
arrojaría un error para la lectura de la termocupla, debido a que la ganancia
fue realizada para los LM35. Análogamente, si se calcula una ganancia para
señal de termocupla puede ocurrir un daño en el sistema. Éste consiste en
que como la señal LM35 es mayor que la de la termocupla, por haberse
realizado el acondicionamiento para una señal más pequeña, la ganancia es
mayor que antes; la consecuencia de esto es que la amplificación sobre el
LM35 arrojará más de 5 V, fatal para el microcontrolador.
Otra ventaja de la tarjeta es que permite visualizar valores de temperatura en
un display (muy cómodo para el usuario que simplemente desea conocer
como se está comportando cierto proceso), y además, si se desea, puede
enviar los datos serialmente a un computador (bastante útil para estudiantes
79
que requieren hacer un seguimiento completo a un proceso) para sacar
estadísticas.
La tarjeta es susceptible de modificaciones (es lo ideal) con el fin de
mejorarla. Éste es tal vez el punto más importante en este proyecto, debido a
que lo importante en los proyectos realizados por la universidad es que se
estén realizando constantemente mejorías para retardar la llegada de la
inminente obsolescencia.
Actualmente se está realizando un proyecto de grado para trabajar con
sensores de presión. La tarjeta puede ser habilitada más adelante para que
reciba señales de presión logrando así un sistema más integrado de lectura
en procesos en donde presión y temperatura juegan un papel preponderante.
5.4.2 Desventajas
Debido a que la tarjeta no está integrada (ya se vio el por qué de su ventaja)
hace que la velocidad de lectura se disminuya, aunque según las
proyecciones, las exigencias futuras no se verán afectadas de manera
considerable.
Por otra parte, se hace hincapié, en que si se fuera a realizar control en
procesos de alta precisión, la tarjeta se encontraría en serios problemas de
restricción, es decir, la velocidad con la que se muestrea es muy baja y por
tanto el sistema reacciona lento.
El sistema de filtrado es demasiado sencillo (entre las proyecciones está en
que no va a afectar considerablemente la lectura) y en caso de ponerla a
80
trabajar en ambientes sumamente contaminados por ruido podría arrojar
muchos errores.
81
6. SENSORES DE FLUJO : MODO DE UTILIZACIÓN Y FUT URAS
MODIFICACIONES
6.1 CUIDADOS PARA USAR EL SENSOR DE FLUJO
Para la manipulación de los sensores es necesario tener ciertos cuidados.
Una parte del sensor va a estar constantemente en la red de la tubería y una
tapa impedirá que cuando no se esté utilizando el sensor salga agua por
dicho lugar. Es conveniente que esto permanezca tapado.
Se recomienda que el sensor después de utilizado se saque de la cubierta y
se seque.
Evite quitar los imanes ubicados en los álabes de la turbina, éstos son de
vital importancia en el funcionamiento del sensor.
Al momento de realizar medidas de caudal haga lo siguiente:
Tome el sensor e introdúzcalo en la cubierta teniendo cuidado de
colocarlo de acuerdo con el pasador de posición. Él sensor entra
fácilmente, así que no hay que forzarlo, esto podría provocar el quiebre
de la turbina.
Gire la tapa de ajuste para evitar fugas durante la medición.
Conecte el cable apantallado tanto al sensor como al sistema de lectura.
Alimente con 5 V ( no exceder este valor ) el sistema de lectura.
Escoja la unidad de medida oprimiendo el botón indicado.
82
6.2 MODO EN QUE REALIZA INTERNAMENTE LA MEDICIÓN
El sistema de lectura está basado en el uso del microcontrolador PIC 16F84
de MICROCHIP. Éste dispositivo tiene 13 puertos I/O de los cuales 12 se
usan para visualizar en el display y uno para realizar el cambio de unidades
(litros por minutos o galones por minutos). En general se puede decir que un
PIC es como una pequeña computadora que se programa para que realice
una determinada tarea.
Este PIC maneja interrupciones, de las cuales se están usando dos : una por
pin externo y otra por rebose del temporizador.
Interrupción por pin externo : el microcontrolador empieza a realizar el
algoritmo programado y cuando por el pin RB0/INT ocurre un cambio, ya
sea de alto a bajo o viceversa, el PIC suspende el algoritmo inicial y se
pone a realizar otro. Este otro algoritmo es el que cuenta giros de la
turbina. En el programa de adelante se verá más claramente de que se
está hablando.
Como inicialmente se van a medir r.p.m. ( como cada álabe tiene un imán
los r.p.m. aparecen cuadruplicados ), se sabe que si se miden
revoluciones durante 6 segundos y lo multiplico por 10, entonces se
obtienen r.p.m.
Interrupción por rebose del temporizador : ésta ocurre cuando un registro
llamado TMR0 se rebosa (de 0 a 255 o viceversa). El rebose ocurre
porque con cada ciclo de instrucción el registro se va incrementando o
decrementando en una unidad. Esta es la interrupción para realizar la
temporización de los 6 segundos.
La rutina general del PIC es la de llenar un registro (interrupciones debido al
giro de la turbina) y asociarlo con un valor de caudal, la cual se ha
determinado previamente mediante la obtención de curvas Caudal Vs. r.p.m.
83
Si se analiza bien el programa se le pueden realizar modificaciones para
aumentar las funciones del programa, por ejemplo: mostrar el caudal es más
de dos unidades, realizar comunicación serial etc.
La siguiente es la rutina para realizar la medición de caudal de agua. Ésta
utiliza interrupción por pin externo y por tmr0.
Se realiza una regresión lineal para relacionar CAUDAL y RPM. La regresión
es: CAUDAL = 0,056*RPM - 9,7. Para la tarea se uso el microcontrolador PIC
16f84.
NOTA: El programa para el microcontrolador puede ser realizado en lenguaje
ensamblador MPASM del MPLab o en lenguaje C propio de
microcontroladores MPC que trabaja también con el MPLab.
84
7. TARJETA SAD PARA SENSORES DE TEMPERATURA : MODO DE
UTILIZACIÓN Y FUTURAS MODIFICACIONES
7.1 CUIDADOS PARA USAR LA TARJETA
La tarjeta para realizar adquisición de datos está basada en la tecnología del
microcontrolador PIC 16C74B de MICROCHIP. Este está contiene 33 puertos
I/O, maneja comunicación serial, posee conversor A/D de 8 canales a 8 bits.
Éste es de mayor capacidad que el utilizado para los sensores de flujo.
Por otra parte, es importante saber que el circuito del microcontrolador debe
ser alimentado con 5 V (no se debe exceder este valor) al igual que el
módulo para realizar la comunicación serial. En cambio, para el módulo de
acondicionamiento se hace necesario tener una fuente dual: +10 V y –10 V.
Para utilizarlo se deben seguir los siguientes pasos:
Conectar los sensores por los que se van a tomar lecturas. Tener cuidado
que no vayan a estar en corto, esto ocurre frecuentemente con conectores
de mala calidad.
Verificar que el pin RA4/TOCKI esté en alto para visualizar en que modo se
va a trabajar.
Escoger entre las tres operaciones posibles de manipulación del algoritmo.
Activar la temperatura que se quiere visualizar, en caso de estar con modo
display. Si se activan todas, la tarjeta visualizará todas a intervalos muy
pequeños de tiempo, por tal efecto, es recomendable visualizar una a la vez.
Alimentar la tarjeta con los voltajes correspondientes
85
7.2 FUNCIONAMIENTO INTERNO DE LA TARJETA
El algoritmo de trabajo es bastante parecido al de los sensores de flujo con la
diferencia de que acá se realiza conversión A/D y comunicación serial,
ambos implementados en el PIC desde la fábrica.
Inicialmente el PIC recibe señales análogas de temperatura, éste realiza la
conversión A/D y la envía a un registro. Éste último es enviado a una rutina
para pasarlo a valor de temperatura (se usa una regresión). Posteriormente,
dependiendo del modo de operación, el PIC muestra la temperatura (en
Celsius o Fahrenheit) y/o la envía serialmente al computador.
En la tarjeta se pueden encontrar una serie de suiches para escoger unidad
de la temperatura, otros para seleccionar las temperaturas y otro para
visualizar el modo de trabajo.
Más adelante aparece la rutina del microcontrolador.
La siguiente es la rutina para realizar la adquisición de datos por parte del
SAD
86
8. SOFTWARE PARA PROGRAMAR MICROCONTROLADORES PIC
Los microcontroladores PIC con los que se realizaron las tarjetas son de la
fábrica MICROCHIP. Dependiendo de la tarea que se les va a asignar éstos
deben ser programados con un algoritmo propio de la tarea que va a realizar.
De fábrica, ellos vienen sin ningún tipo de algoritmo grabado. Para realizar la
programación de los PIC’s se utiliza el software MPLAB, el cual ofrece varias
herramientas para la simulación del algoritmos antes de grabarlos, figura 8.1.
Éste es un punto importante si se tiene en cuenta que hay PIC’s que sólo
Figura 8.1 Ventana de inicio del MPLAB
87
admiten una grabación; en caso de quedar mal el algoritmo habría que
desechar el chip.
Para empezar a elaborar un programa se le da la opción New Source del
menú File, figura 8.2.
Figura 8.2 Opción para crear un programa
Figura 8.3 Opción para definir procesador
88
Debido a que hay diferentes tipos de PIC’s se debe escoger el tipo con el
cual se va a trabajar. Para esto se escoge la opción Development Mode, del
menú Options , figura 8.3. Enseguida el software despliega una ventana
para escoger el tipo de procesador ( tipo de PIC ), figura 8.4.
Figura 8.5 Opción para salvar el programa fuente
Figura 8.4 Ventana indicando tipo de procesador escogido
89
Luego de escoger las opciones preliminares se empieza a escribir el
algoritmo; posteriormente se debe salvar con un nombre fácil de reconocer,
para esto se escoge la opción Save As , del menú File , figura 8.5. El software
despliega ventana para ingresar el nombre del programa o algoritmo, figura
8.6.
Figura 8.6 Ventana para dar nombre al programa
Figura 8.7 Opción para crear un proyecto
90
Cuando ya se ha salvado el programa se procede a crear un proyecto; éste
último contiene información de archivos de: error, estímulos, ventanas etc.
Para esto se escoge la opción New Project , del menú Project , figura 8.7.
Figura 8.8 Ventana para dar nombre al proyecto
Figura 8.9 Ventana adicionar programa(s) fuente al proyecto
91
El software despliega ventana para escoger nombre del proyecto, figura 8.8.
Después de aceptar se abre otra ventana para escoger el nombre del
programa fuente (el mismo que se creó al principio); este paso es importante
Debido a que hay proyectos que pueden tener más de un programa fuente.
En caso de haber varios programas se deben adicionar los diferentes
nombres, figura 8.9. Para las tarjetas construidas sólo se tiene un programa
fuente.
El proceso final es la compilación del proyecto con el fin de saber si se tienen
errores sintácticos (errores en escritura); para esto se escoge la opción Make
Project (cuando se tiene un programa fuente) o Buid All (cuando se tienen
varios programas fuentes), ambos en el menú Project , figura 8.10.
Al final, el software despliega una ventana indicado si la compilación fue
exitosa o no, figura 8.11; en caso de no serlo, aparecen los errores y las
Figura 8.10 Opción para compilar el proyecto
92
líneas en donde se encuentran. Después de corregirlos se debe reiniciar la
compilación. Es importante recalcar que el software sólo corrige errores
sintácticos; los errores de algoritmo están bajo la responsabilidad de la
persona que va a programar.
Figura 8.11 Ventana indicando éxito en la compilación
Figura 8.12 Opción para activar programador
93
Cuando la compilación es exitosa y se sabe ( debe se 100% en caso de
usarse PIC de una sola grabación) que no hay errores de algoritmo,
entonces se puede proceder a programar el PIC. Esta tarea la realiza un
programador Picstart Plus de MICROCHIP que se conecta al puerto serial
(por defecto es el Comm1, pero se puede reconfigurar en software). La
activación se realiza ejecutando la opción Enable Programmer del menú
Picstart Plus , figura 8.12.
Es conveniente hacer saber que los PIC’s se pueden programar usando
lenguaje ensamblador, cuyos archivos fuentes quedan con la extensión *.
asm o usando lenguaje C propio de PIC, en cuyo caso la extensión es *.C.
La primera opción se puede realizar con el sólo MPLAB, pero la segunda
necesita del MPC para asociarlo con el MPLAB. Para mayor información se
deben consultar los catálogos del MPLAB y del MPC.
94
9. CONCLUSIONES
Con el anterior proyecto, fabricación de sensores de flujo y temperatura,
se pudo constatar que dentro de la universidad se pueden realizar
diferentes proyectos bastante buenos.
Con respecto a los sensores de flujo, se puede observar un gran avance,
pero definitivamente hay mucho por mejorar. Este proyecto puede
perfeccionarse más con el fin de obtener mediciones todavía más
precisas; para tal efecto, se necesita fabricar accesorios con muy buenos
acabados. Además, explorando otros materiales los resultados podrían
ser mejores.
La tarjeta para los sensores de temperatura ofrece comodidades en el
momento de realizar toma de datos, pero puede ser mejorada respecto al
filtrado de la señal, ya que actualmente tiene un filtro supersencillo la deja
pasar un poco de ruido ( para las condiciones de diseño esto no afecta )
que para futuras aplicaciones sería un problema.
Los dispositivos anteriormente construidos necesitan de cuidados con el
fin de evitar su avería. Es muy importante tener esto en cuenta.
95
APÉNDICE A
ALGORITMO PARA REALIZAR MEDICIÓN DE CAUDALES
ESPECIFICACIONES DEL PROCESADOR
#pragma option v;
#pragma __CONFIG @ 0x2007 = 0x3FF9;
ASIGNACIÓN DE LIBRERÍAS PROPIAS DEL MPC
#include <16f84.h>
#include <Delay14.h>
#include <math.h>
ASIGNACIÓN DE FUNCIONES Y VARIABLES DE TRABAJO
int vueltas;
int temporizador_1;
int decimales;
int unidades;
int decenas;
int centenas;
void handle_EXTERN();
void handle_TMR0();
int funcion(int num);
RUTINA QUE ADMINISTRA LAS INTERRUPCIONES
void __INT(void)
SaveContext();
if (INTCON.INTF)
INTCON.INTF = 0;
handle_EXTERN();
if (INTCON.T0IF)
INTCON.T0IF = 0;
temporizador_1 += 1;
96
if (temporizador_1 > 0x5A)
handle_TMR0();
RestoreContext();
RUTINA PRINCIPAL PARA MANIOBRAR DISPLAY'S
void main()
OPTION = 0x87;
INTCON = 0xB0;
TRISB = 1;
TRISA = 0x10;
PORTB = 0;
PORTA = 0;
centenas = 17;
decenas = 10;
unidades = 18;
decimales = 19;
temporizador_1 = 0;
TMR0 = 0;
vueltas = 0;
while(1)
PORTA = 0x08;
PORTB = funcion(decimales);
Delay_Ms_4MHz(5);
if (temporizador_1 > 0x5A)
temporizador_1 = 0;
PORTA = 0x04;
PORTB = funcion(unidades);
Delay_Ms_4MHz(5);
if (temporizador_1 > 0x5A)
temporizador_1 = 0;
97
PORTA = 0x02;
PORTB = funcion(decenas);
Delay_Ms_4MHz(5);
if (temporizador_1 > 0x5A)
temporizador_1 = 0;
PORTA = 0x01;
PORTB = funcion(centenas);
Delay_Ms_4MHz(5);
if (temporizador_1 > 0x5A)
temporizador_1 = 0;
CADA VEZ QUE PASA UN IMAN MARCA
void handle_EXTERN()
vueltas += 1;
REALIZA LA REGRESIÓN DESPUÉS DE 6 SG
void handle_TMR0()
Esta rutina realiza la regresión " Caudal = 0,056*RPM - 9,7 "
int vuelta1,vuelta2,temporal1,temporal2,uno_temp;
int temporalent,temporaldec;
temporal1 = vueltas/100;
if (temporal1 == 0)
temporal2 = vueltas/10;
temporalent = vueltas%10;
else
temporalent = vueltas%100;
temporal2 = temporalent/10;
98
temporalent = temporalent%10;
temporal1 = temporal1*10;
vuelta1 = temporal1 + temporal2;
vuelta2 = temporalent;
if (vuelta1 > 25)
centenas = 10; //L
decenas = 11; //i
unidades = 12; //m
decimales = 13; //S
else
if (vuelta1 < 7)
if (vuelta1 == 0)
if (vuelta2 == 0)
centenas = 17; //F
decenas = 10; //L
unidades = 18; //U
decimales = 19; //J
else
centenas = 10; //L
decenas = 11; //i
unidades = 12; //m
decimales = 14; //I
else
temporal1 = vuelta1*5;
temporal2 = vuelta1*6;
temporal2 = temporal2/10;
99
temporaldec = vuelta1*6;
temporaldec = temporaldec%10;
temporaldec = temporaldec*10;
temporalent = temporal2+temporal1;
temporal1 = vuelta2*5;
vuelta1 = temporal1%10;
vuelta1 = vuelta1*10;
temporal1 = temporal1/10;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec + vuelta1;
temporal1 = vuelta2*6;
temporaldec = temporaldec + temporal1;
temporal1 = temporaldec/100;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec%100;
temporalent = temporalent - 9;
if (temporaldec < 70)
temporalent = temporalent - 1;
temporaldec = 30 + temporaldec;
else
temporaldec = temporaldec - 70;
centenas = temporalent/100;
if (centenas > 0)
uno_temp = centenas*100;
temporalent = temporalent-uno_temp;
else
centenas = 15;
100
decenas = temporalent/10;
unidades = temporalent%10;
decimales = temporaldec/10;
vueltas = 0;
vuelta1 = 0;
vuelta2 = 0;
temporal1 = 0;
temporal2 = 0;
FUNCION PARA CARGAR ENCENDIDO DE LEDS
int funcion(int num)
int value;
switch (num)
case 0: value = 0xBE; //Para el 0;
break;
case 1: value = 0x12; // 1;
break;
case 2: value = 0x7C; // 2;
break;
case 3: value = 0x76; // 3;
break;
case 4: value = 0xD2; // 4;
break;
case 5: value = 0xE6; // 5;
break;
case 6: value = 0xEE; // 6;
break;
case 7: value = 0x32; // 7;
break;
case 8: value = 0xFE; // 8;
break;
case 9: value = 0xF6; // 9;
break;
case 10: value = 0x8C; // Para la "L"
break;
case 11: value = 0x08; // "i"
break;
case 12: value = 0x4A; // "m"
101
break;
case 13: value = 0xE6; // "S"
break;
case 14: value = 0x12; // "I"
break;
case 15: value = 0; // "espacio"
break;
case 16: value = 0x4C; // "c"
break;
case 17: value = 0xE8; // "F"
break;
case 18: value = 0x9E; // "U"
break;
case 19: value = 0x1E; // "J"
break;
return (value);
#include <Delay14.lib>
102
APÉNDICE B
ALGORITMO PARA REALIZAR MEDICIÓN DE TEMPERATURAS
ESPECIFICACIONES DEL PROCESADOR
#pragma option v;
ESPECIFICACIÓN DE LIBRERIAS
#include <16c74a.h>
#include <Ser14.h>
#include <Ad74.h>
#include <Delay14.h>
#include <math.h>
DECLARACION DE FUNCIONES Y VARIABLES
int funcion(int num);
void multiplicacion(unsigned char analogo);
unsigned char conversion(registerx canal);
void muestra(int letra,int fin);
unsigned char canal0,canal1,canal2,canal3,canal4,canal5,canal6,canal7;
int vueltas;
int temporizador_1;
int centenas,decenas,unidades,decimales;
int conver255;
int contador;
int valor;
void handle_TMR0();
RUTINA PRINCIPAL DEL MICROCONTROLADOR
void main()
Setup_Async_Mode(51); Rata baudios = Fosc/64(SPBRG +1)
= 4MHz / 64(51+1) = 1200 baudios
INIT_A2D(ANA5_VDDN,FRC); Para 5 canales análogos y oscilador RC
TRISA = 0x3F; Todos como entrada
TRISB = 0x01; RB7:RB1 salida - RB0 entrada
103
TRISC = 0x8F; RC3:RC0-RC7 (I) RC6:RC4 (O)
TRISD = 0x0F; RD7:RD4 (O) RD3:RD0 (I)
TRISE = 0x07; RE2:RE0 (I)
INTCON = 0;
while(PORTA.4 == 1)
if (PORTD.3 == 0)
if (PORTD.2 == 0)
Mensaje de solo Display
centenas = 18; //o
decenas = 1; //l
unidades = 13; //d
decimales = 24; //i
muestra(20,20); //S y S
else
Mensaje de Display y Serial
centenas = 24; //i
decenas = 20; //S
unidades = 20; //S
decimales = 14; //E
muestra(13,21); //D y r
else
if (PORTD.2 == 0)
Mensaje de solo Serial
centenas = 18; //o
decenas = 1; //l
unidades = 20; //S
decimales = 14; //E
104
muestra(20,21); //S y r
else
Mensaje de Futura Aplicacion
centenas = 26; //u
decenas = 27; //t
unidades = 10; //A
decimales = 28; //P
muestra(15,1); //F y L
centenas = 0;
decenas = 0;
unidades = 0;
decimales = 0;
OPTION = 0x87;
while(1)
if (PORTD.3 == 0)
if (PORTD.2 ==0)
RUTINA PARA MOSTRAR EN DISPLAY
if (PORTC.0 == 1)
canal0 = conversion(Ch0);
multiplicacion(canal0);
INTCON = 0xA0;
while(contador < 16)
muestra(10,0);
INTCON = 0;
contador = 0;
105
if (PORTC.1 == 1)
canal1 = conversion(Ch1);
multiplicacion(canal1);
INTCON = 0xA0;
while(contador < 16)
muestra(11,0);
INTCON = 0;
contador = 0;
if (PORTC.2 == 1)
canal2 = conversion(Ch2);
multiplicacion(canal2);
INTCON = 0xA0;
while(contador < 16)
muestra(12,0);
INTCON = 0;
contador = 0;
if (PORTC.3 == 1)
canal3 = conversion(Ch3);
multiplicacion(canal3);
INTCON = 0xA0;
while(contador < 16)
muestra(13,0);
INTCON = 0;
contador = 0;
106
if (PORTD.0 == 1)
canal4 = conversion(Ch4);
multiplicacion(canal4);
INTCON = 0xA0;
while(contador < 16)
muestra(14,0);
INTCON = 0;
contador = 0;
else
RUTINA PARA MOSTRAR EN DISPLAY Y ENVIAR A SERIAL
canal0 = conversion(Ch0);
Transmit(canal0);
canal1 = conversion(Ch1);
Transmit(canal1);
canal2 = conversion(Ch2);
Transmit(canal2);
canal3 = conversion(Ch3);
Transmit(canal3);
canal4 = conversion(Ch4);
Transmit(canal4);
if (PORTC.0 == 1)
multiplicacion(canal0);
INTCON = 0xA0;
while(contador < 16)
107
muestra(10,0);
INTCON = 0;
contador = 0;
if (PORTC.1 == 1)
multiplicacion(canal1);
INTCON = 0xA0;
while(contador < 16)
muestra(11,0);
INTCON = 0;
contador = 0;
if (PORTC.2 == 1)
multiplicacion(canal2);
INTCON = 0xA0;
while(contador < 16)
muestra(12,0);
INTCON = 0;
contador = 0;
if (PORTC.3 == 1)
multiplicacion(canal3);
INTCON = 0xA0;
while(contador < 16)
muestra(13,0);
INTCON = 0;
contador = 0;
108
if (PORTD.0 == 1)
multiplicacion(canal4);
INTCON = 0xA0;
while(contador < 16)
muestra(14,0);
INTCON = 0;
contador = 0;
else
if (PORTD.2 == 0)
RUTINA PARA SOLO ENVIAR DATOS VIA PUERTO SERIAL
NOTA: Aqui se realizan todas las conversiones A/D
de los 5 canales y se envian al computador. El PC
decide cuantas temperaturas de las cinco posibles
va a recibir
if (PORTC.0 == 1)
canal0 = conversion(Ch0);
Transmit(canal0);
if (PORTC.1 == 1)
canal1 = conversion(Ch1);
Transmit(canal1);
if (PORTC.2 == 1)
109
canal2 = conversion(Ch2);
Transmit(canal2);P
if (PORTC.3 == 1)
canal3 = conversion(Ch3);
Transmit(canal3);
else
RUTINA PARA FUTURA APLICACION
Mensaje de Futura Aplicacion
centenas = 26; //u
decenas = 27; //t
unidades = 10; //A
decimales = 28; //P
muestra(15,1); //F y L
FUNCION PARA ENVIAR LA INFORMACION A LOS PUERTOS
void muestra(int letra,int fin)
PORTC = 0;
PORTD = 0x80;
PORTB = funcion(letra);
Delay_Ms_4MHz(5);
PORTC = 0;
PORTD = 0x40;
PORTB = funcion(centenas);
Delay_Ms_4MHz(5);
110
PORTC = 0;
PORTD = 0x20;
PORTB = funcion(decenas);
Delay_Ms_4MHz(5);
PORTC = 0;
PORTD = 0x10;
PORTB = funcion(unidades);
Delay_Ms_4MHz(5);
PORTC = 0x20;
PORTD = 0;
PORTB = funcion(decimales);
Delay_Ms_4MHz(5);
if (PORTA.4 == 1)
PORTD = 0;
PORTC = 0x10;
PORTB = funcion(fin);
Delay_Ms_4MHz(5);
else
if (PORTB.0 == 0)
PORTD = 0;
PORTC = 0x10;
PORTB = funcion(12); //Muestra la C
Delay_Ms_4MHz(5);
else
PORTD = 0;
PORTC = 0x10;
PORTB = funcion(15); //Muestra la F
Delay_Ms_4MHz(5);
111
FUNCION PARA CARGAR ENCENDIDO DE LEDS
int funcion(int num)
int value;
El valor del digito en binario debe ser cargado en el puerto B
retardo = 2ms
Estos son los valores de los puertos que controlan los transistores
RC4 = D6, RC5 = D5, RD4 = D4, RD5 = D3, RD6 = D2, RD7 = D1
switch (num)
case 0: value = 0x7E; // Para el 0
break;
case 1: value = 0x0C; // 1
break;
case 2: value = 0xB6; // 2
break;
case 3: value = 0x9E; // 3
break;
case 4: value = 0xCC; // 4
break;
case 5: value = 0xDA; // 5
break;
case 6: value = 0xFA; // 6
break;
case 7: value = 0x0E; // 7
break;
case 8: value = 0xFE; // 8
break;
case 9: value = 0xDE; // 9
break;
case 10: value = 0xEE; // A
break;
case 11: value = 0xF8; // B
break;
case 12: value = 0x72; // C
break;
112
case 13: value = 0xBC; // D
break;
case 14: value = 0xF2; // E
break;
case 15: value = 0xE2; // F
break;
case 16: value = 0xFA; // G
break;
case 17: value = 0xEC; // H
break;
case 18: value = 0xB8; // o
break;
case 19: value = 0xA8; // m
break;
case 20: value = 0xDA; // S
break;
case 21: value = 0x62; // r
break;
case 22: value = 0; // Espacio
break;
case 23: value = 0x10; // Raya
break;
case 24: value = 0x08; // i
break;
case 25: value = 0xB0; // c
break;
case 26: value = 0x38; // u
break;
case 27: value = 0xF0; // t
break;
case 28: value = 0xE6; // P
break;
return (value);
ESTA RUTINA FUE REALIZADA PARA PASAR EL VALOR DE 8 BITS DEL CONVERSOR
A UN VALOR DE TEMPERATURA CENTIGRADA.
TEMPERATURA(C) = analogo*90/255 = analogo*0.353
113
TEMPERATURA(F) = 1.8(analogo*0.353) + 32
void multiplicacion(unsigned char analogo)
int vuelta1,vuelta2;
int temporal1,temporal2,uno_temp;
int temporalent,temporaldec;
centenas = 0;
decenas = 0;
unidades = 0;
decimales = 0;
if (PORTB.0 == 0)
RUTINA PARA MOSTRAR LA TEMPERATURA EN GRADOS CENTIG RADOS
temporal1 = analogo/100;
if (temporal1 == 0)
temporal2 = analogo/10;
temporalent = analogo%10;
else
temporalent = analogo%100;
temporal2 = temporalent/10;
temporalent = temporalent%10;
temporal1 = temporal1*10;
vuelta1 = temporal1 + temporal2;
vuelta2 = temporalent;
temporal1 = vuelta1*3; //5
temporal2 = vuelta1*5; //6
114
temporal2 = temporal2/10;
temporaldec = vuelta1*5; //6
temporaldec = temporaldec%10;
temporaldec = temporaldec*10;
temporalent = temporal2+temporal1;
temporal1 = vuelta2*3; //5
vuelta1 = temporal1%10;
vuelta1 = vuelta1*10;
temporal1 = temporal1/10;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec + vuelta1;
temporal1 = vuelta2*5; //6
temporaldec = temporaldec + temporal1;
temporal1 = temporaldec/100;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec%100;
centenas = temporalent/100;
if (centenas > 0)
uno_temp = centenas*100;
temporalent = temporalent-uno_temp;
else
centenas = 22;
decenas = temporalent/10;
unidades = temporalent%10;
decimales = temporaldec/10;
else
115
RUTINA PARA MOSTRAR LA TEMPERATURA EN GRADOS FARENH EIT
temporal1 = analogo/100;
if (temporal1 == 0)
temporal2 = analogo/10;
temporalent = analogo%10;
else
temporalent = analogo%100;
temporal2 = temporalent/10;
temporalent = temporalent%10;
temporal1 = temporal1*10;
vuelta1 = temporal1 + temporal2;
vuelta2 = temporalent;
temporal1 = vuelta1*6; //5
temporal2 = vuelta1*3; //6
temporal2 = temporal2/10;
temporaldec = vuelta1*3; //6
temporaldec = temporaldec%10;
temporaldec = temporaldec*10;
temporalent = temporal2+temporal1;
temporal1 = vuelta2*6; //5
vuelta1 = temporal1%10;
vuelta1 = vuelta1*10;
temporal1 = temporal1/10;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec + vuelta1;
116
temporal1 = vuelta2*3; //6
temporaldec = temporaldec + temporal1;
temporal1 = temporaldec/100;
if (temporal1 > 0)
temporalent = temporalent + temporal1;
temporaldec = temporaldec%100;
temporalent = temporalent + 32;
centenas = temporalent/100;
if (centenas > 0)
uno_temp = centenas*100;
temporalent = temporalent-uno_temp;
else
centenas = 22;
decenas = temporalent/10;
unidades = temporalent%10;
decimales = temporaldec/10;
analogo = 0;
vuelta1 = 0;
vuelta2 = 0;
temporal1 = 0;
temporal2 = 0;
RUTINA PARA REALIZAR CONVERSIÓN A/D
unsigned char conversion(registerx canal)
int suma;
Select_A2D_Ch(canal);
Delay_10xUs_4MHz(20);
117
valor = ConvertAD();
return(valor);
RUTINA REALIZADA CON CADA INTERRUPCION
void __INT(void)
SaveContext();
if (INTCON.T0IF)
INTCON.T0IF = 0;
contador ++;
RestoreContext();
#include <Ser14.lib>
#include <Delay14.lib>
#include <Ad14.lib>
118
APÉNDICE C
MANUAL PARA LA FABRICACION DE TARJETAS ELECTRONICAS
1. INTRODUCCIÓN
La universidad a través de los años ha tenido la necesidad de adquirir equipos
útiles para el desarrollo o elaboración de prácticas de laboratorio con el fin de
acercar al estudiantado más a la realidad. En este proceso se encuentran grandes
restricciones, una de ellas es el factor económico determinado por el presupuesto.
En el mercado se pueden encontrar dispositivos de alta calidad construidos a
través de muchos años de investigación e inversión de capital. Con el presente
proyecto, y con muchos otros, lo que se pretende es desarrollar nuevas
tecnologías, mejorarlas progresivamente, y por qué no, adaptar otras ya existentes
dándole un toque personal para lograr la economía.
En este proyecto se desarrollaron tarjetas para sensores de flujo y de temperatura;
dichas tarjetas se pueden mandar a fabricar, pero el costo es bastante alto. Por
tanto, este manual está enfocado a motivar a los estudiantes para que se
introduzcan en el amplio mundo de la electrónica , y por supuesto, proporcionar
ideas de cómo fabricar tarjetas que funcionen aceptablemente (siempre que sea
viable) evitando tener que realizar trabajos costosos por fuera de la universidad.
119
2. TEORÍA BÁSICA
Con el fin de hacer una inducción en el tema de la electrónica, es necesario
mencionar una teoría básica para aquellas personas que les gustaría ingresar a
este mundo, pero que no saben por donde empezar. Entre los conceptos básicos
están:
• Materia: todo lo que se ve a nuestro alrededor está hecho de materia. El
escritorio, el lapicero, el papel, el agua, etc. La materia es algo que tiene masa
y ocupa espacio. Se puede encontrar en tres estados: sólido, gaseoso y
líquido.
• Elementos: la materia está hecha de elementos, las cuales son sustancias que
se encuentran normalmente en el universo, tales como: carbono, oxígeno,
plata, oro, etc.
• Átomos: cada elemento está hecho de átomos. Estos últimos poseen un
corazón central llamado núcleo, lleno con partículas cargadas positivamente
conocidas como protones. En las órbitas del núcleo se encuentran partículas
cargadas negativamente llamadas electrones. Todos los átomos están así
constituidos, sin importar si conforman un núcleo como el hidrógeno o el oro.
La única diferencia importante, es el número de electrones y protones que
posee cada átomo, ver figura 2.1.
Figura 2.1
120
Los tres conceptos anteriores se tocaron muy someramente y pueden parecer
irrelevantes, pero si se analiza uno de los componentes que revolucionó la
electrónica, es decir el transistor, se puede constatar que éste está fabricado a
base de elementos llamados semiconductores (silicio,
germanio); estos últimos, están compuestos por neutrones, protones y electrones
(de electrón viene el nombre de electrónica).
Los grandes inventores han llegado a la conclusión que del conocimiento de las
pequeñas cosas surgen las grandes ideas.
2.1 LOS ELECTRONES Y LA CORRIENTE ELÉCTRICA
Por definición, la electrónica es la parte de la física que estudia el movimiento de
los electrones. La corriente electrónica es el movimiento de millones de electrones
a través de un conductor (cable).
Cuando usted conecta una batería a una bombilla, la lámpara se ilumina, puesto
que una corriente electrónica circula a través de ella. Lo que realmente ocurre, es
que en el lado negativo de la batería, usted tiene millones y millones de electrones
en exceso, y en el lado positivo usted tiene un déficit o falta de ellos. Por tanto, los
electrones fluyen desde el terminal negativo de la batería, al positivo (es decir, de
donde hay más electrones hacia donde hay menos), pasando a través de la
lámpara. Esto, constituye una corriente electrónica, la cual hace que se encienda
la lámpara, ver figura 2.2.
Figura 2.2
121
2.2 IDENTIFICACIÓN DE COMPONENTES ELECTRÓNICOS
Ya conociendo en que consiste y como se produce la corriente, es relevante
familiarizarse con cada uno de los componentes que pueden integrar un circuito
electrónico. En un circuito de estos lo que se hace es combinar esos
componentes, para jugar con corrientes y voltajes; en el momento en que se
manipulen los tiempos de aparición de corrientes y voltajes (como también su
aumento o disminución) es cuando surgen las llamadas acciones de control; estas
últimas son las responsables de que se enciendan dispositivos automáticamente,
entre muchas aplicaciones. De los componentes electrónicos se pueden
mencionar:
• Batería o pila: esta se encarga de almacenar energía eléctrica, ver figura 2.3.
La batería proporciona la diferencia de potencial eléctrico que hace que los
electrones se desplacen de un lugar a otro produciendo la corriente. Imagínese
que el efecto de la batería es como la altura para que se produzca una caída
de agua, si no hay diferencia de alturas, el agua permanece quieta (no hay
cascada). Luego, sin este elemento, no se presenta corriente electrónica.
Apariencia Símbolo
Figura 2.3
122
• Interruptor o suiche: este dispositivo se encarga de abrir y cerrar un circuito
eléctrico para fluya o deje de fluir corriente en un circuito, ver figura 2.4.
Figura 2.4
• Resistencia o resistor: esta se usa para limitar o controlar la corriente que fluye
a través de un circuito, presentando una oposición o resistencia al paso de la
corriente, ver figura 2.5. Esto es semejante a un carro que va a una velocidad
(corriente) de 80 km/h y se choca contra una pared (resistencia). Después del
choque el carro sigue corriendo a 10 Km/h; esto quiere decir que la pared
controló la velocidad del auto. Luego, entre más robusta (alta resistencia) sea
la pared, menor va a ser la velocidad después del choque.
Figura 2.5
123
• Potenciómetro: este es una resistencia variable, es decir, se utilizan cuando se
requieren valores más precisos de resistencias, ver figura 2.6.
Figura 2.6
• Fotocelda: esta es un tipo especial de resistencia que varía de acuerdo con la
intensidad de la luz que incida en su superficie, ver figura 2.7.
Figura 2.7
124
• Capacitor o condensador de cerámica: este actúa como una batería temporal,
pues almacena electricidad. Los de cerámica almacenan pequeñas cantidades
de electricidad y no tienen polaridad (es decir, no importa el sentido en que se
conecten), ver figura 2.8.
Figura 2.8
• Capacitor o condensador electrolítico: estos almacenan cantidades
relativamente grandes de electricidad. Estos si poseen polaridad, lo que
significa que tienen un terminal positivo y uno negativo, por ende, se debe
tener cuidado al conectarlos en un circuito (instalarlo en la posición correcta),
ver figura 2.9.
Figura 2.9
Apariencia Símbolo
125
• Diodo: este es un dispositivo que permite el paso de corriente solo en una
dirección. Este se puede comparar con una calle de una sola vía, o una válvula
cheque.
Posee dos terminales: uno es el ánodo (terminal +) y el otro es el
cátodo(terminal -). El cátodo se indica con una banda que rodea el cuerpo del
diodo, ver figura 2.10.
Figura 2.10
• Diodo emisor de luz (LED): este es una clase especial de diodo que emite luz
cuando fluye una corriente a través de él. Tiene dos terminales: ánodo y
cátodo, ver figura 2.11.
Figura 2.11
126
• SCR: este permite el paso de corriente, solo si se le aplica un voltaje positivo a
uno de sus terminales llamado puerta o gate. Posee tres terminales: ánodo,
cátodo y gate, ver figura 2.12.
Figura 2.12
• Transistor: este es utilizado para conmutar y para amplificar electricidad. Tiene
tres terminales: base, colector y emisor.
De acuerdo con su fabricación los hay: NPN y PNP, ver figura 2.13.
Apariencia Símbolo
Figura 2.13
Circuito integrado: este contiene muchos componentes (transistores, diodos,
resistencias, condensadores etc) colocados dentro de un paquete muy
pequeño llamado chip. Cada clase de circuitos integrados, efectúa una función
127
distinta de acuerdo con los componentes que posea y a la forma como están
conectados con otros componentes. Estos dispositivos revolucionaron la
electrónica ya que uno o varios circuitos complejos pueden ser condensados
en un solo chip, ver figura 2.14.
Figura 2.14
• Parlante: su propósito es producir sonido, convirtiendo la corriente que fluye a
través de él, en ondas sonoras. Se puede usar como micrófono convirtiendo
las ondas sonoras en corriente, ver figura 2.15.
Apariencia Símbolo
Figura 2.15
128
2.3 USO DE LA TABLA DE CONEXIONES SIN SOLDADURA (protoboard)
Este es un dispositivo que permite ensamblar circuitos electrónicos sin uso de
soldadura. Esto hace posible conexiones rápidas y fáciles, y es útil para
experimentos puesto que permite el montaje y desmontaje de componentes sin
ningún problema. Ésta es usada por principiantes y científicos.
En la figura 2.16 se puede observar que la protoboard tiene muchos orificios
pequeños en cada tramo. Cada orificio aloja un terminal de un componente o un
cable. Todos los cinco huecos en cada grupo vertical o juego, están
interconectados. Así que cada grupo vertical está en contacto. Dos o más cables o
terminales conectados en alguno de los 5 huecos, se conectará o estará en
contacto con el otro. Hay 60 juego de huecos, ver figura 2.17.
Figura 2.16
Figura 2.17
129
Un canal central separa o divide la tabla en mitades. Los circuitos integrados son
conectados a través del canal.
Sobre la protoboard hay impresos números y letras para ayudar con la
identificación de cada orificio durante el proceso de ensamble, ver figura 2.18.
Figura 2.18
Para entender más acerca del manejo de la protoboard imagínese que desea
conectar una pila, una resistencia y un led en serie. En la figura 2.19 aparece el
diagrama esquemático, en la figura 2.20 aparece el diagrama de conexiones al
aire y en la figura 2.21 aparece el diagrama de conexiones sobre la protoboard;
observe la diferencia y sus ventajas.
Figura 2.19
130
Figura 2.20
Figura 2.21
131
3. INDUCCIÓN A LOS MICROCONTROLADORES
En el capítulo anterior se proporcionó una teoría básica sobre principios y
componentes electrónicos. En esta sección se pretende dar una inducción acerca
de los microcontroladores (este está contenido dentro de la familia de chip’s y se
pueden programar). Juegan un papel importante en el diseño y construcción de
tarjetas inteligentes, tales como: tarjetas receptoras de señales análogas de
temperatura, presión etc; tarjetas transmisoras de señales de control, o tarjetas
que realizan las dos tareas anteriores, y mucho más. Como se puede apreciar,
estos pequeños integrados son unas computadoras condensadas.
En el mercado se pueden encontrar diferentes tipos de microcontroladores de
todas las marcas y complejidad.
Para entrar a conocer un poco sobre estos dispositivos se tomará como base el
microcontrolador PIC16F84 (PIC significa Controlador de Interface Periférico) es
bastante sencillo y permite una familiarización rápida. Este último punto es muy
importante, ya que hay microcontroladores de gran complejidad que en primera
instancia podrían desmotivar a la persona que intentara manipularlo. Siempre es
mejor ir de lo sencillo a lo complejo.
Hay dos familias de microcontroladores: los de memoria EPROM y los de memoria
FLASH. La diferencia es que los primeros para reprogramarlos se hace necesario
borrarlos con luz ultravioleta (requiere un dispositivo para borrado ultravioleta),
mientras que la segunda familia se borra con pulsos
eléctricos (enviados por software).
132
3.1 TERMINOLOGÍA BÁSICA
Para entrar a conocer progresivamente los PIC, es necesario mencionar cierta
terminología:
• Pin: cada una de las patas de sostén del chip. El número de estos depende del
tamaño y complejidad del encapsulado.
• Oscilador (reloj): configuración electrónica que permite enviar un tren de pulsos
al PIC a una determinada frecuencia. Los hay: RC (resistencia – condensador),
XT (cristal) , etc. Este es útil para la ejecución de cada instrucción del algoritmo
de programación del PIC.
• Cristal: fragmento de cuarzo encapsulado en cuerpo metálico que envía un tren
de pulsos a determinada frecuencia de alta precisión (más preciso que el RC).
• Puerto: conjunto de líneas que pueden ser configuradas como entrada o como
salida, es decir, para recibir o para enviar señales, respectivamente. Los
puertos son el puente entre el microcontrolador y el exterior.
• Línea: pin que hace parte de un puerto.
• Interrupción: cambio de tarea en un algoritmo, provocado por la ejecución de
un evento especial.
• Evento: acción provocada por un agente externo o interno al PIC. Este chip
maneja cuatro tipo de eventos asociado a interrupciones. Hay PIC’s que traen
hasta 13 tipos de eventos.
• Memoria volátil: es aquella que se borra cuando no se encuentra alimentado el
chip.
• Memoria EEPROM (diferente a la EPROM): esta permite guardar información
incluso si se quita la alimentación.
• Registro: posición de memoria para guardar información valiosa. Está
conformado por 8 bits.
133
• Bit: memoria individual que almacena un alto o bajo (referido a los voltajes
usados para representar números binarios, es decir, 5 voltios = alto (1), 0
voltios = bajo (0)).
• Reset: acción con la que se obliga al PIC a comenzar nuevamente el algoritmo
de programación.
• Arquitectura: esto se refiere a los bloques funcionales internos que conforman el
microcontrolador y la forma en que están conectados.
• Memoria de datos: es aquella donde aparecen los registros de propósito general
(para guardar datos valiosos mientras se ejecutan líneas de código) y registros
de funciones especiales (guardan datos de configuración, por ejemplo: la
configuración de los puertos, como entrada o salida, etc). Este PIC tiene
además un tipo de memoria destinada a guardar datos EEPROM.
• Memoria de programa: es donde se encuentran guardadas las líneas de código.
• Bus: es un conjunto de líneas que transportan información entre dos o más
módulos.
• Módulo: bloque que realiza una tarea dentro de la arquitectura general del PIC.
3.2 CONSTITUCIÓN DE UN MICROCONTROLADOR
Este microcontrolador está fabricado con tecnología CMOS, tiene un consumo
bajo de potencia, y además, es completamente estático, es decir, que el reloj
puede detenerse (esto es diferente a quitar la alimentación) y los datos de la
memoria no se pierden.
La configuración de los pines puede apreciarse en la figura 3.1.
134
Figura 3.1
Al PIC16F84 se le pone un reloj de 4 MHz (puede ser de otra frecuencia) para
mayor facilidad. El reloj manda pulsos cuadrados al PIC, este último los recibe, y
por cada 4 pulsos recibidos ejecuta una línea de código. Así:
Fejec = Freloj / 4
De donde:
Freloj = es la frecuencia del reloj seleccionado
Fejec = es la frecuencia de ejecución de las líneas de código
Tejec = 1 / Fejec
De donde:
Tejec = es el tiempo que demora la ejecución de cada línea de código
Por ejemplo: si se tiene un reloj de 4 MHz ¿Cuánto demora ejecutándose cada
línea de código ?
135
Fejec = 4 000 000 Hz / 4 = 1 000 000 Hz
Tejec = 1 / 1 000 000 Hz = 1 x 10 E –6 seg = 1µSeg
Esto quiere decir que cada línea de código se demora 1 millonésima de segundo,
un tiempo bastante pequeño. Aquí radica la importancia de estos chip’s
programables, es decir, realizan tareas sumamente rápidas que ningún humano
podría reemplazar; por tal motivo se usan como dispositivos de control.
Para funcionar, como se dijo anteriormente, necesita de un oscilador. Este se
conecta como se muestra en la figura 3.2.
Figura 3.2
Este posee dos puertos: el A con 5 líneas (RA0 – RA4) y el B con 8 líneas (RB0
– RB7). Cada pin de los puertos puede proporcionar por si sólo 25 mA y puede
recibir 20 mA. Estos valores tienen que respetarse para evitar daños internos,
ver figura 3.3
136
Figura 3.3
Hay veces en que se necesita reiniciar el programa del PIC, para tal operación se
debe resetear (hacer reset) mandando a bajo voltaje el pin llamado MCLR (master
clear), ver figura 3.4.
Figura 3.4
El PIC durante la ejecución de instrucciones está realizando una cantidad de
operaciones inimaginables que son una realidad debido a la arquitectura general;
en ella aparecen la conexión de puertos, las memorias de datos y de programa,
bloques especiales, temporizadores de arranque, el oscilador, etc.
137
Todos los elementos se conectan entre si por medio de buses, ver figura 3.5.
Figura 3.5
138
El esquema de la memoria de programa, mostrado en la figura 3.6, tiene una
capacidad para 1Kbyte (1024 líneas de código), y es de tipo FLASH. Esta se
puede direccionar desde la posición 0000h hasta 03FFh, y además de
memorizar las líneas de código, es útil para guardar gran cantidad de
constantes con el fin de reservar la memoria de datos que son bastante
valiosas en la ejecución del programa.
Figura 3.6
En la memoria de programa aparecen dos vectores: el de reset y el de
interrupción. El primero es apuntado cada vez que se resetea el PIC y el segundo,
cuando ocurre una interrupción; en este último, debe aparecer la etiqueta hacia
donde debe dirigirse para ejecutar la rutina de interrupción.
139
El esquema de la memoria de datos, mostrado en la figura 3.7, tiene una
capacidad para direccionar 128 posiciones (aunque sólo aparecen 80
implementadas), de las cuales 12 son registros que cumplen un propósito
especial en el control del PIC y los otros 68 son registros de uso general en el que
se pueden guardar datos temporales. Cada registro especial tiene sus
correspondientes bits que realizan tareas distintas.
Figura 3.7
Se puede mencionar someramente lo que contiene cada registro especial para
lograr mayor motivación en las personas, así:
• TMR0: registro que se va incrementando o decrementando (se configura a
voluntad) con la ejecución de determinado número líneas de código, la cual
depende del preescalador (este determina si el TMR0 cambia cada 2, 4,
8,....,256 líneas de código ejecutadas).
140
• PCL: este pertenece al contador de programa y determina la posición de la
línea de código, en la memoria de programa, que actualmente se está
ejecutando.
• STATUS: este contiene el estado aritmético de la ALU (Unidad Lógica
Aritmética), la causa del reset y los bits de protección de página para la
memoria de datos.
• FSR: con este se trabajan apuntadores.
• PORTA y PORTB: estos guardan el estado actual (bajo o alto) de las líneas del
puerto A y B, respectivamente.
• EEDATA: este almacena el dato leído o escrito en la memoria de datos
EEPROM.
• EEADR: esta almacena la posición sobre la que se va a leer o escribir en la
memoria de datos EEPROM.
• INTCON: este se encarga de decir cuales interrupciones se van a habilitar e
informar en que momento han ocurrido.
• OPTION: este determina el tipo de preescalador a utilizar y los flancos (bajada
o subida) para señales externas respecto al llenado del TMR0.
• TRISA y TRISB: estos guardan el estado de la configuración de los puertos A y
B (entrada o salida), respectivamente.
Cuando ya se tiene claro lo que se quiere hacer en el programa, se empieza a
escribir en el software compilador, en el cual se crea un proyecto para simular y
verificar la lógica del algoritmo (para saber si va a funcionar en la realidad). El
compilador utilizado es el MPLAB de MICROCHIP (encontrado ,con manuales, en
el laboratorio de microprocesadores, Universidad Nacional). Para familiarizarse
con el manejo de este software, se debe consultar el texto principal de la tesis:
DISEÑO Y CONSTRUCCIÓN DE MEDIDORES DE FLUJO DE LÍQU IDOS Y
SENSORES DE TEMPERATURA CON SALIDA DIGITAL .
141
Sería inútil extender las explicaciones acerca de todo lo que se puede hacer con el
PIC y cual es su constitución completa. Por ende, si se quiere conocer
exhaustivamente todo sobre este PIC, o sobre otro en especial, se recomienda
visitar la página www.microchip.com en donde se podrá obtener toda la
información pertinente.
142
4. FABRICACIÓN DE TARJETAS ELECTRÓNICAS
( Circuitos impresos )
Vista ya la teoría básica y algunas aplicaciones dentro de la electrónica, es
sabido que como paso siguiente a la selección del circuito deseado es la
conexión de elementos en una protoboard; esto con el fin de observar su
funcionamiento y prever futuros cambios. La protoboard (llamada también tabla
de conexión sin soldadura) ofrece grandes ventaja en circuitos susceptibles de
cambios, pero para aplicaciones definitivas presenta una restricción, ya que
sus elementos quedan expuestos a las manos de personas inescrupulosas que
terminan por averiar parcial o totalmente (en caso de no existir diagramas
esquemáticos) la aplicación. Con el fin de suplir tales necesidades se recurre a
los circuitos impresos (aplicado en las tarjetas electrónicas) la cual están
diseñados para fijar elementos por medio de soldadura (en este caso se usa
estaño).
CIRCUITOS IMPRESOS
Son líneas metálicas fijadas en un material llamado baquelita que forma, a
través de uniones, las llamadas líneas de circuitos de la aplicación. La
elaboración de estas líneas son más exigentes que en la protoboard, ya que
aquí no están permitidas la “ sobre posición de líneas ” (puentes de cables) y
mucho menos la modificación del circuito; esto porque el diagrama obtenido no
se puede cambiar por ningún motivo, a menos que se imprima nuevamente el
circuito.
143
CONCEPTOS BÁSICOS
Para comenzar, es necesario exponer algunos conceptos básicos para
entender mejor lo que se va a hacer.
• Baquelita: placa de resina sintética obtenida por condensación de un fenol
en presencia de formol. Sobre esta se pone una capa de cobre con la que
se hacen las líneas del circuito. Estas placas pueden ser de dos tipos:
Perforada: en esta se hacen líneas semejantes a la de las protoboard
para unir con soldadura. En esta se permite la realización de puentes y
futuras modificaciones. La desventaja es que el circuito al igual que en la
protoboard tiende a quedar desordenado.
Virgen: esta viene totalmente cubierta en cobre y mediante procesos
químicos u ópticos se imprime el circuito. Esta no permite
modificaciones, pero el circuito que mucho más presentable y ordenado.
Para nuestras aplicaciones se usará este tipo.
• Percloruro férrico: óxido de hierro utilizado para realizar el ataque químico a
la capa de cobre de la baquelita. Esta es la solución de ataque.
• Tinta indeleble: tinta usada para proteger las líneas de circuito del ataque
químico.
• Acetato: material plástico en el que se hace la primera impresión del
circuito. Sobre éste se adhiere la tinta de la fotocopiadora, la cual es un
polvillo derretido por calor.
• Plancha: dispositivo usado para calentar los acetatos.
• Circuito base: dibujo del circuito realizado manualmente, por medio de
instrumentos o con software especializado. La forma como se realice este
no es muy importante siempre y cuando se haga claro. No se menciona un
software en especial para realizarlo, ya que cada día sale uno nuevo, pero
entre ellos están: Eagle, AutoCad, Winboard, etc.
144
• Choque térmico: diferencial de temperatura aplicado para desprender la
tinta del acetato y provocar su adherencia a la capa de cobre de la
baquelita.
PROCEDIMIENTO
Para empezar, se debe realizar el circuito base, la cual contiene todas las
conexiones hechas en la protoboard, pero en forma ordenada. Este debe ser
revisado minuciosamente con el fin de evitar futuros errores, o en el mejor de los
casos, perfeccionarlo, ver figura 4.1.
Obtenido el circuito base revisado, se procede a imprimirlo en un acetato. Este
proceso se realiza aprovechando las ventajas obtenidas al sacar las fotocopias;
esta viene en polvo, y por medio de calentamiento, se derrite y se pega en el
acetato. Algo semejante se hará con la plancha, más adelante.
Debido a que las primeras impresiones en la baquelita seguramente no saldrán
bien, mientras se aprende, se recomienda fotocopiar varias veces el circuito sobre
Circuito
Hoja
Figura 4.1
145
el acetato para aprovecharlo al máximo (para mayor economía, sobre todo si son
circuitos pequeños), ver figura 4.2.
Ahora se procede a tomar la baquelita virgen y cortarla de acuerdo con el tamaño
del circuito del acetato. Este paso es importante porque la solución férrica atacará
todo el cobre descubierto de la baquelita, y entre más cobre descubierto, se
requiere mayor tiempo de ataque y se presenta mayor desgaste de la solución.
La placa se puede cortar con un bisturí común haciéndole varias pasadas, y
posteriormente doblándola sobre una superficie plana, ver figura 4.3.
Después de cortada la placa, se procede a limpiarla para quitarle el mugre y la
grasa que pueda tener (se debe evitar ponerle los dedos). Para tal operación se
debe usar esponjilla metálica fina y jabón de loza.
Línea de corte
Fuerza aplicada para el doblez
Placa con las dimensiones deseadas
Figura 4.3
Figura 4.2
Acetato
Circuito base
146
Ahora se debe tomar una mesa totalmente plana y cómoda a la estatura del
operador; ubíquela cerca de un grifo que suministre agua para hacer el choque
térmico en el momento preciso.
Tome la baquelita y ubíquela sobre la mesa con la capa de cobre hacia arriba, ver
figura 4.4.
Sobre la capa de cobre ubique el acetato con la tinta en contacto con el cobre.
Ponga sobre la placa y el acetato una toalla gruesa o material que permita
transferencia de calor de la plancha a la baquelita y que proteja el acetato del
calor, ver figura 4.5.
Capa de cobre
Placa de baquelita
Figura 4.4
147
Empiece a calentar el conjunto anterior con la plancha (al máximo) por espacio de
10 minutos, procurando pasarla por toda el área, ver figura 4.6.
Después del tiempo estipulado, retire la plancha y la toalla. Enseguida, tome la
placa y el acetato, pegados, y póngalos debajo del chorro de agua para provocar
el choque térmico, esto hará que la tinta se desprenda del acetato y se pegue en
la baquelita. En caso de no haber un grifo cercano, deposite la placa y el acetato
en un platón con agua para provocar el mismo choque.
Plancha
Toalla
Mesa
Baquelita Acetato
Figura 4.6
Placa de baquelita
Mesa
Toalla gruesa
Acetato
Figura 4.5
148
Desprenda el acetato y verifique el estado de la tinta que quedó sobre la baquelita.
Si quedó totalmente continua, este proceso ha finalizado sino repita todas las
operaciones anteriores. Si se observan unas pocas líneas discontinuas, éstas se
pueden rellenar con marcador de tinta indeleble, con el fin de evitar repetir los
procesos anteriores.
Ahora, tome el agua tibia (40 C) y eche la solución de percloruro férrico (una
bolsita estándar por litro de agua) y disuélvala bien. Meta totalmente la baquelita
en la solución de ataque y muévalo constantemente hasta que observe que las
capas de cobre, excepto las del circuito, hayan desaparecido totalmente, ver figura
4.7.
Cuando finalice el ataque, tome la esponjilla metálica y raspe para quitar la tinta
que quedó sobre el circuito. Después de este paso se observará el circuito de la
aplicación totalmente impreso en cobre.
Por último, proceda a perforar los agujeros pertinentes para finalmente soldar los
elementos del circuito.
Baquelita (Contiene circuito adherido en tinta indeleble)
Figura 4.7
Solución de ataque (Percloruro férrico)
149
5. APLICACIÓN PRACTICA
En los capítulos anteriores se trataron conceptos básicos de electrónica; además,
se explicó lo que era una tarjeta electrónica y las ventajas que se obtienen al
construirla. También, se tocó tangencialmente el tema de los microcontroladores
PIC a manera de inducción: su arquitectura y su aplicabilidad. En este capítulo, se
pretende reunir todos esos conceptos con el fin de realizar una aplicación práctica.
En la siguiente sección se planteará un problema para resolverlo paso a paso.
5.1 Planteamiento de un problema
Se necesita tomar temperaturas en diferentes puntos de un intercambiador de
calor (dispositivo que permite la transferencia de calor de un fluido a otro). Este
dispositivo maneja temperaturas en el rango de 15°C (temperatura ambiente
promedio de Bogotá) y 95°C. Los valores de las temp eraturas deben ser enviadas
a un computador, y este último, debe realizar un algoritmo para finalmente retornar
una señal que permita cerrar o abrir una válvula que controle el paso de agua
caliente (fluido que transfiere el calor). Esto con el fin de que la transferencia de
calor se realice cumpliendo con las exigencias de temperatura del agua fría (fluido
que recibe el calor), una de ellas es el caudal que se esté manejando.
En un sistema de este tipo, primordialmente se deben sensar (tomar la lectura)
cuatro temperaturas, ver figura 5.1. Con estos valores, y con otros de caudal y de
geometría, se puede realizar el estudio del intercambiador de calor, es decir,
analizar como es su eficiencia.
150
TEntFría = Temperatura de entrada del agua fría
TSalFría = Temperatura de salida del agua fría
TEntCal = Temperatura de entrada del agua caliente
TSalCal = Temperatura de salida del agua caliente
5.2 Diagrama de bloques
Estos diagramas son realizados para realizar como están relacionadas las
diferentes etapas (bloques) con las que se va a resolver el problema, ver figura
5.2.
Para empezar a entender lo que en realidad se va a hacer, es importante estudiar
cada bloque. El bloque del intercambiador no es necesario porque ya fue
mencionado.
TEntFría
TSalCal
TEntCal
TSalFría
Intercambiador de Calor
Figura 5.1
151
Intercambiador de calor
Sensor 1
Sensor 2
Sensor 3
Sensor 4
TEntFría
TSalFría
TEntCal
TSalCal
Sensores
Acondicionador de señales
Interface Intercambiador - PC
Fuente regulada
Acondicionador de la señal de
control
Válvula que controla el paso del agua caliente
Señal del PC a la Interface (señal de control digital)
Señal de la Interface a la válvula (señal de control análoga). De 0 a 5 V.
Señal de 0 a – 0.5 V
Figura 5.2
152
5.2.1 Sensores
Este está constituido por otros cuatro sub-bloques, cada uno de los cuales, se
refiere a los dispositivos utilizados para pasar valores de temperatura a señales
eléctricas manipulables, es decir, son los transductores Temperatura-Voltaje .
Los transductores usados son los LM35, la cual tienen la apariencia de un
transistor, ver figura 5.3. Tienen tres pines: alimentación, tierra y señal análoga.
Esta última, es una señal que mantiene un valor continuo en el tiempo,
presentando una gran gama de valores; contrario a la señal digital que sólo
presenta dos valores: alto y bajo. Por ejemplo, supóngase que cuando un reóstato
(resistencia variable ubicada, por ejemplo, para saber el nivel de apertura de una
puerta) cambia de posición, dos transductores, uno análogo y otro digital, envían
ambos una señal máxima de 2 voltios (la mínima es de 0 voltios).
Si se analizan los dos transductores se observará que el de tipo análogo permite
conocer con mayor exactitud la posición de la puerta, ya que éste puede arrojar
muchos valores de voltaje (asociados con la ubicación de la puerta) entre 0 y 2 V,
por ejemplo, 0 , 0.5 , 1.5 y 2 V, que quiere decir que la puerta está totalmente
cerrada, abierta al 25%, abierta al 75% y totalmente abierta, respectivamente.
Tierra Alimentación
Señal análoga
LM35
Figura 5.3
153
Mientras que un transductor digital sólo envía 0 v o 2 V, es decir, la puerta está
totalmente cerrada o totalmente abierta, ver figura 5.4.
Como se vio anteriormente, los transductores análogos son mucho más
ventajosos que los digitales por la gama de valores ofrecida; pero, cuando se
quiere visualizar la temperatura medida en un dispositivo, el valor análogo por sí
sólo no se puede utilizar si no se le realizan cambios, ya que los dispositivos de
visualización como displays, computadores, etc., reciben sólo señales digitales. Es
On
Off
Señal Transductor digital
t
2 V
0 V
100% abierto
100% cerrado
100% abierto
75% abierto 1.5 V
0.5 V
Señal Transductor análogo
t
2 V
0 V 100% cerrado
25% abierto
Figura 5.4
154
por esto que surge la necesidad de expresar los valores análogos en digitales
(esto lo hacen los conversores A/D).
Un sistema siempre está restringido por las consideraciones de diseño, es decir,
como se planteó inicialmente el problema. El rango de trabajo está entre 15 y
95°C (para esta aplicación se pondrá entre 0 y 95° C, contando que se puede
bombear agua a 0°C) ,y éste, debe ser tenido en cue nta para interpretar los
resultados de la conversión A/D (Análoga a Digital).
Ahora, tomando el transductor ejemplo, la cual es lineal y tiene una salida:
Voltaje = 0.0211 * Temperatura
Donde la temperatura está en grados Celsius.
Es común encontrar en los dispositivos electrónicos registros de 8 bits (visto
anteriormente) y estos pueden la realización de 256 combinaciones de valores: de
00000000 hasta 11111111.
Si se va a trabajar de 0 a 95°C, se puede obtener la longitud de trabajo así:
95 – 0 = 95.
Para hallar la precisión de la conversión A/D se hace:
Longitud de trabajo / #Combinaciones = 95 / 256 = 0.37
Lo que quiere decir que la variación de temperatura más pequeña que puede
registrar el conversor A/D es de 0.37°C. El transdu ctor envía la señal al conversor
A/D para que cada uno de los posibles valores de temperatura entre 0 y 95°C
tenga su valor digital asociado, en la figura 5.5 se pueden ver algunos ejemplos.
155
Salida del Transductor Salida del Conversor A/D
Señal análoga (V) °°°°C Valor binario Valor decimal
0 0 00000000 0
0.0078 0.37 00000001 1
0.3158 15 00101000 40
0.9474 45 01111001 121
2 95 11111111 255
En la realidad, el LM35 arroja 10 mV/°C (contrario al del ejemplo), trabaja entre –
55°C y 150°C, se puede alimentar entre 4 y 30 V y su precisión es de 0.5 V. Esto
último quiere decir que el transductor registrará temperaturas como: 0.5, 10.5, 10,
90.5°C, etc., pero nunca registrará: 10.8 ni 90.1°C, etc. Si se compara el LM35 con
el conversor A/D, se puede corroborar que habrá combinaciones que nunca se
van a registrar, por ejemplo, 0.37°C, ya que el conversor A/D es capaz de hacerlo,
pero la precisión del transductor no lo permite. Para esta aplicación, el LM35 es
aceptable y es barato, pero para otras, sería mejor consultar catálogos de
transductores con el fin de observar toma la gama de precisiones.
Como se puede ver, el LM35, para 45°C arrojará una señal de 45°C*10mV/°C =
450mV, en lugar de 0.9474 V (este era un ejemplo).
5.2.2 Acondicionador de señales de los transductores Temperatura-
Voltaje
Debido a que la señal de los LM35 está en valores muy pequeños de voltaje (mV)
y debe ser enviada a un dispositivo de lectura TTL (maneja de 0 a 2V = bajo y 2.4
a 5 V = alto), ésta debe ser acondicionada. Esta tarea se realiza con base en los
Figura 5.5
156
amplificadores operacionales. Estos son integrados que permiten diferentes
funciones dependiendo de la configuración utilizada entre resistencias y
condensadores. Estas funciones pueden ser: amplificador inversor, no inversor,
seguidor unitario, sumador, integrador, diferenciador (para mayor información leer
cualquier libro de amplificador operacionales). Para esta aplicación se usará la
función de amplificador no inversor, cuya salida está en fase con la entrada y la
ganancia puede ser mayor o menor que 1 (es decir, puede salir más grande o más
pequeña).
Por ejemplo, si la entrada es de 150mV y se requiere una salida de 2000mV (2 V).
2000 = (1 + Rf / R1)*150, de donde, Rf / R1 = 12.33. Esto quiere decir que la
relación entre esas dos resistencias sea de 12.33 y de esta forma la configuración
siempre amplificará 13.33 veces la señal de entrada.
En la aplicación se debe tener cuidado que cuando la temperatura sea de 95°C
(máxima) el voltaje amplificado sea de 5 V (máximo), de lo contrario se dañaría el
dispositivo de lectura TTL. Luego, Rf puede ser un potenciómetro (porque se
puede cuadrar a propósito) de 5kΩ o una resistencia fija de 4KΩ; y R1 de 1kΩ.
Así:
Vo = (1 + 4kΩ/1kΩ)*950 mv = 4750 mV ≈ 4.75 V
El integrado usado es el LF347N (para mayor información de éste o de otro
integrado consultar Manual de Reemplazos ECG). Este trae cuatro amplificadores.
En la figura 5.6 aparece el diagrama esquemático.
157
Señal proveniente de los LM35 sin acondicionar
Señal de los LM35 acondicionada
Lugar donde se pueden ubicar filtros para evitar el ruido (puede ser tipo RC
o con amplificadores operacionales, aunque estos últimos son complejos)
Nota : Los valores de + Vcc y – Vcc dependen del tipo de amplificador utilizado.
Los valores de Rf y R1 son externas al integrado.
Θ
Figura 5.6
+ -
Rf R1
+ -
Rf R1
+ -
Rf R1
+ -
Rf R1
- Vcc
+ Vcc
Θ
Θ
Θ
Θ
LF 347N
158
5.2.3 Fuente regulada
Esta es la que se encarga de alimentar todos los circuitos integrados (MAX232,
amplificadores operacionales, microcontrolador, LM35, etc.) con los voltajes
respectivos. Ella puede ofrecer 10, -10 y 5 V, corriente continua. El diagrama
esquemático aparece en la figura 5.7.
5.2.4 Interface Intercambiador - PC
Está constituida por un microcontrolador PIC que se encarga de recibir las señales
análogas, convertirlas en digitales y enviarlas finalmente al PC (computador
personal).
Transformador LF 317T
LF 347T
TAB
1 µF
+ + + +
+ +
+ + 2200 µF
1 µF
100 µF
1 µF 1 µF
2200 µF
220 Ω
5 kΩ 5 kΩ
Tierra
+ Vcc - Vcc
Figura 5.7
159
Como el microcontrolador maneja voltajes TTL ( de 0 a 5 V) y debe enviar
información al PC (maneja voltajes RS232, de –12 a 12 V), debe utilizarse una
etapa intermedia conformada por el MAX232, la cual convierte un 0 V (TTL) en un
–12 V (RS232) y un 5 V (TTL) en un 12 V(RS232) para que el PC pueda
entenderlo.
El conector DB9 va unido al PC. Este recibe señales digitales de temperatura del
sistema y las envía al PC para alimentar el algoritmo de control.
Todo la Interface Intercambiador – PC se puede ver en la figura 5.8.
RXTTL = Señal TTL del PC al microcontrolador
TXTTL = Señal TTL del microcontrolador al PC
RX232 = Señal RS232 del PC al microcontrolador
TX232 = Señal RS232 del microcontrolador al PC
Algo importante es la señal de control. Esta se obtiene de la siguiente forma:
La señal que retorna el PIC es una PWM (pulso de ancho modulado) que pudo ser
sustituida por un conversor D/A (contrario al conversor A/D) para retornar una
señal análoga. El valor del registro PWM controla el ancho de los pulsos digitales
que con por medio de una configuración R-C se asemeja a una señal análoga, ver
figura 5.9.
En el caso A, el registro se llena casi con el máximo valor, en cambio, en el caso
B, es casi el valor mínimo. Si se analizan los dos casos, es los mismo que enviar
señales análogas proporcionales al ancho de pulso, entre 0 y 5 V, que es el rango
de trabajo del microcontrolador.
160
Figura 5.8
1
6
1
1
22 pF por 2
10 µµµµF por 5
MAX232
PIC 16C74B o semejante
Cristal XT 4 MHz
5V
5V
5V
Entrada Señales Análogas acondicionadas
Conector DB9 al PC
RXTTL
TXTTL
TX232
RX232
+
Señal de control análoga Filtro
161
≈≈≈≈
Señal PWM Voltaje señal análoga asociada
ON
OFF
≈≈≈≈
Voltaje señal análoga asociada Señal PWM
ON
OFF
Figura 5.9
+
+
Figura 5.10
162
6. ESTRATEGIAS DE CONTROL
En el capítulo anterior se mostró paso a paso como se debía armar el hardware
para sensar las temperaturas y realizar acciones de control sobre la válvula. En
este capítulo se pretende mencionar someramente dos estrategias de control con
el fin de motivar al estudiante en esta área.
Finalidad de una estrategia de control
Cuando uno va a realizar medidas frecuentes en un proceso, es muy dispendioso
poner a una persona a realizar dicha tarea. Es empíricamente imposible que un ser
humano esté en diferentes partes, simultáneamente, tomando medidas de
diferentes variables, comparar los resultados, y por último, manipular un accesorio
para lograr estabilizar el sistema. Son en estas situaciones donde se hace
indispensable tener un hardware (circuitos mostrados en el capítulo anterior -
parte física) que sirva de puente para que un software (programa en el que se
hace la estrategia de control – parte intangible) pueda actuar sobre los accesorios
que logran estabilizar el sistema en cuestión (para el caso, es la válvula neumática
que regula el paso del agua caliente).
Hay muchas estrategias de control, pero en este caso sólo se mencionarán dos:
Control con redes neuronales y Control con PID.
163
6.1.1 Control con redes neuronales
Este tipo de control es una emulación del sistema cerebral de los seres humanos.
Los humanos a lo largo de su existencia va recibiendo estímulos y los va
guardando en los respectivos espacios de memoria. A medida que se van
presentando situaciones, el cerebro, dependiendo de la cantidad de estímulos que
haya recibido reaccionará más rápido o más lento para resolver el problema. En el
control con redes neuronales se hace algo semejante, es decir, se estudia el
sistema, se escoge un determinado número de neuronas (nodos de la red) y se le
hace un entrenamiento para que reaccione de determinada forma ante ciertos
estímulos.
Este sistema es un poco complejo, pero si se desea conocer más a fondo sobre el
tema, hay bastante literatura relacionada con el Control con Redes Neuronales.
En las siguientes líneas aparece como se hace en Visual Basic el software para esta
estrategia de control:
DECLARACION DE LAS VARIABLES PÚBLICAS Y ARREGLOS
'-------------------------------------------------------------
Public Tem
Public eP
Public B
Public Tmax
Public x
Public dis
Public color
Public Suma
Public derivada
Public eOld
Public e
Public uTemp
Public A
164
Public d
Public Rango
Public V1
Public V2
Public V3
Public V4
Public V5
Public V6
Dim TempV(0 To 7) As Integer
Dim xlApp As Object
Dim Dia As String 'Nombre de la base de datos
Dim Hora As String 'Nombre de la tabla de trabajo
Dim NewWs As Workspace 'Epacios de trabajo
Dim NewDB As Database
Dim DbOpts As Long, DbName As String
Dim NewTbl As TableDef
Dim Fld(1 To 12) As Field 'Campos de la tabla
Dim NewDyn As Recordset
Dim lll As Workspace
Dim Datos(1 To 12) As String 'Datos de la comunicación
Dim Campos(1 To 12) As String
PROCEDIMIENTO PARA OCULTAR O HACER VISBLE POTENCIOMETROS
'---------------------------------------------------------
Private Sub cmdCalibrar_Click()
If cmdCalibrar.Caption = "Calibrar" Then
cmdCalibrar.Caption = "Ocultar C."
For i = 0 To 6
Potenciometro(i).Visible = True
Next
Else
cmdCalibrar.Caption = "Calibrar"
For i = 0 To 6
Potenciometro(i).Visible = False
Next
End If
End Sub
CIERRE DEL PUERTO SERIAL
'---------------------------------------------------------
Private Sub cmdCerrarP_Click()
' Cerrar el puerto serial
MSComm1.PortOpen = False
165
End Sub
BORRADO DE CURVA ACTUAL
'---------------------------------------------------------
Private Sub Command1_Click()
Grafica.Cls
Grafica.CurrentX = t
Grafica.CurrentY = txtT(4).Text
Grafica.CurrentX = t
End Sub
CARGA ULTIMAS CONSTANTES DE INTERES
'---------------------------------------------------------
Private Sub Form_Load()
txtTmuestreo_Change
cmdAplicar = True
Grafica.Scale (0, 70)-(1000, 0)
'Cargar ultima calibracion de los potenciometros
For i = 0 To 6
Potenciometro(i) = GetSetting(App.EXEName, "Potenciometro", i,Potenciometro(i))
Next
Kp = GetSetting(App.EXEName, "Constatntes", "Kp", Kp)
Ki = GetSetting(App.EXEName, "Constatntes", "Ki", Ki)
Kd = GetSetting(App.EXEName, "Constatntes", "Kd", Kd)
maximodelta = GetSetting(App.EXEName, "Constatntes", "MaximoDelta", maximodelta)
Minimo = GetSetting(App.EXEName, "Constatntes", "Minimo", Minimo)
'Número de caracteres a leer en cada entrada
MSComm1.InputLen = 1
color = 1
eOld = 0
muestra = 0
MSComm1.CommPort = 2
MSComm1.Settings = "1200,N,8,1"
End Sub
GUARDA ULTIMAS CONSTANTES DE INTERES
'---------------------------------------------------------
Private Sub cmdSalir_Click()
For i = 0 To 6
SaveSetting App.EXEName, "Potenciometro", i, Potenciometro(i)
166
Next
SaveSetting App.EXEName, "Constatntes", "Kp", Kp
SaveSetting App.EXEName, "Constatntes", "Ki", Ki
SaveSetting App.EXEName, "Constatntes", "Kd", Kd
SaveSetting App.EXEName, "Constatntes", "MaximoDelta", maximodelta
SaveSetting App.EXEName, "Constatntes", "Minimo", Minimo
Unload Me
End
End Sub
DIBUJA GRAFICO DE LA CAJA DE TEXTO SELECCIONADA
'---------------------------------------------------------
Private Sub PintarLineas()
Grafica.ForeColor = vbRed
For i = 1 To 7
Grafica.Line (0, 255 * i)-(200, 255 * i)
Next
Grafica.ForeColor = vbGreen
End Sub
FIJA PARAMETROS PARA LA COMUNICACION SERIAL
'---------------------------------------------------------
Private Sub cmdAplicar_Click()
' Usar el puerto especificado por el usuario
MSComm1.CommPort = 2 'txtPuerto.Text
' 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "1200,N,8,1" 'txtBaudios.Text & "," & txtParidad.Text & "," & txtBitDatos.Text & "," &
txtBitParada.Text
End Sub
PONE EN MANUAL O AUTOMATICO
'---------------------------------------------------------
Private Sub cmdAutomatico_Click()
If cmdAutomatico.Caption = "Automatico" Then
cmdAutomatico.Caption = "Manual"
MSComm1.PortOpen = True
Call ciclo
MSComm1.PortOpen = False
Else
cmdAutomatico.Caption = "Automatico"
167
End If
End Sub
LLAMA EL ALGORTIMO PARA RECIBIR Y ENVIAR DATOS EN MODO MANUAL
'---------------------------------------------------------
Sub ciclo()
While cmdAutomatico.Caption = "Manual"
Call Enviar
Wend
End Sub
ALGORITMO PARA EMPEZAR A CREAR LA BASE DE DATOS
LUEGO PROCEDE A RECIBIR Y ENVIAR DATOS
'---------------------------------------------------------
Private Sub cmdenviar_click()
'Abrir el puerto
CrearDB
MSComm1.PortOpen = True
Call Enviar
'Cerrar el puerto
MSComm1.PortOpen = False
End Sub
ALGORITMO PARA RECIBIR Y CONTROLAR CON REDES NEURONALES
'-------------------------------------------------------
Private Sub Enviar()
Dim Entrada(0 To 7) As Variant
Dim Nom(0 To 7) As Integer
Dim Valor(0 To 7) As Integer
' Send the attention command to the modem.
MSComm1.Output = Chr(RB.Text)
tt = Chr(u.Text)
tt = Asc(tt)
MSComm1.Output = Chr(u.Text)
' Wait for data to come back to the serial port.
'Numero de canales a usar
Tmax = txtTmaxima.Text
168
n = 7
A PARTIR DE AQUI SE EMPIEZA A REALIZAR LA ADQUISICIÓN DE DATOS
Do
DoEvents
Loop Until MSComm1.InBufferCount >= n
For i = 0 To n
V(i).Text = ""
Entrada(i) = MSComm1.Input
Next
t = t + 1
d = d + 1
If t > 1000 Then
Grafica.Refresh
t = 0
Grafica.CurrentY = x
Grafica.CurrentX = 0
End If
A = A + 1
If A >= B Then
A = 0
GoTo Llenar
End If
listo:
For i = 0 To n - 1
If Entrada(i) = "" Then
V(i).Text = "0" 'El cero se aproxima
Else
If Potenciometro(i) = "" Or Potenciometro(i) = "-" Then Potenciometro(i) = "0"
V(i) = Asc(Entrada(i)) + Potenciometro(i)
'filtro de señal
If muestra < 1 Then
txtT(i).Text = (V(i) * Tmax) / (255)
TempV(i) = V(i)
Else
J = Abs(V(i) - TempV(i))
169
K = Filtro.Text
'se cambia el valor del filtro, colocando un numero entre 0 a 255
If J > 5 Then
'detecta que hay ruido y:
txtT(i).Text = (TempV(i) * Tmax) / (255)
Else
'No hay ruido y puede colocar el valor de V(i) en pantalla
txtT(i).Text = (V(i) * Tmax) / (255)
TempV(i) = V(i)
End If
End If
End If
'TempV(i) = V(i)
Nom(i) = i
Valor(i) = V(i)
Next i
AQUI EMPIEZA EL ALGORITMO DE CONTROL '---------------------------------------------------------
ESTE MUESTRA EL NUMERO DE NEURONAS USADAS
V1 = R.Text
V3 = V2
V2 = txtT(4).Text
V6 = V5
V5 = u
B2 = (V1 - 12.3333) * 0.035294
B3 = (V2 - 9.95765) * 0.032403
B4 = (V3 - 9.95765) * 0.032403
B5 = (V5 + 62.15991) * 0.002522
B6 = (V6 + 62.15991) * 0.002522
B7 = 1
I2 = (-1) * (B2 * 1.2383 + B3 * 3.8207 + B4 * 0.27523 + B5 * -4.9377 + B6 * -2.0382 + B7 * 0.34929)
I3 = (-1) * (B2 * 0.43275 + B3 * 2.4483 + B4 * 1.4683 + B5 * 5.2239 + B6 * -0.32586 + B7 * -1.6974)
I4 = (-1) * (B2 * -0.87645 + B3 * 1.2681 + B4 * -0.014347 + B5 * 0.20294 + B6 * 1.11434 + B7 * 1.8012)
I5 = (-1) * (B2 * 5.1108 + B3 * -3.9979 + B4 * 2.5169 + B5 * 1.8462 + B6 * -0.71331 + B7 * -3.6779)
J2 = 1 / (1 + Exp(I2))
J3 = 1 / (1 + Exp(I3))
J4 = 1 / (1 + Exp(I4))
170
J5 = 1 / (1 + Exp(I5))
J6 = 1
J11 = (-1) * ((-1.6395 * J2) + 2.9752 * J3 + (-1.321 * J4) + 2.6468 * J5 + (-1.3677 * J6))
G11 = 1 / (1 + Exp(J11))
'UNEURO' ES LA SEÑAL DE CONTROL
Uneuro = G11 / 0.002522 - 62.15991
u = Uneuro
If u > 255 Then
u = 255
End If
If u < 90 Then
u = 90
End If
txteOld = eOld
txtE = e
txtsumaacum = Suma
muestra = d
Grafica.Line -(t, txtT(4).Text)
Exit Sub
Llenar:
Asignacion
Llenar_Tabla
GoTo listo
End Sub
CIERRA LA BASE DE DATOS
'-------------------------------------------------------
Private Sub SalirDB()
NewDB.Close
End
End Sub
171
ASIGNA VALORES A MOSTRAR EN LA BASE DE DATOS
'-------------------------------------------------------
Private Sub Asignacion()
Datos(1) = Format(Now, "h:mm:ssa/p")
Datos(2) = (d)
Datos(3) = (txtT(0))
Datos(4) = (txtT(1))
Datos(5) = txtT(3)
Datos(6) = txtT(4)
Datos(7) = u
Datos(8) = e
Datos(9) = derivada
End Sub
Public Sub Llenar_Tabla()
Dim Rst As Recordset
Dim i As Integer, Msg As String
Msg = DbName & ".mdb"
With NewTbl
On Error GoTo cantidad
Set Rst = NewDB.OpenRecordset(Hora)
Rst.AddNew
For i = 1 To 9
If Datos(i) = "" Then
Datos(i) = "Vacio"
End If
Rst(Campos(i)) = Datos(i)
Next i
End With
Rst.Update
NewWs.Databases.Refresh
Exit Sub
cantidad:
MsgBox Err.Description
Err.Clear
NewWs.Databases.Refresh
NewDB.Close
Set NewDB = NewWs.OpenDatabase(Msg, True)
Set NewDyn = NewDB.OpenRecordset(Hora)
172
End Sub
IDENTIFICA LAS COLUMNAS DE LA BASE DE DATOS
'-------------------------------------------------------
Public Sub CrearDB()
Dim Msg As String, i As Integer
'******************************
Campos(1) = "Hora"
Campos(2) = "muestra"
Campos(3) = "Tem_Ent_Cal"
Campos(4) = "Tem_Sal_cal"
Campos(5) = "Tem_Ent_fría"
Campos(6) = "Tem_sal_fría"
Campos(7) = "salida u"
Campos(8) = "error"
Campos(9) = "deriv_del err"
'Sintaxis para el metodo CreateDatabase
Set NewWs = DBEngine.Workspaces(0)
Set lll = DBEngine.Workspaces(0)
Dia = Format(Now, "mmm-dd")
Hora = Format(Now, "h:mm:ssa/p")
DbName = "C:\" & Dia
If Dir(DbName) = " " Then
Abrir:
Msg = "Abriendo" & Dia
MsgBox Msg
Msg = DbName & ".mdb"
Set NewDB = NewWs.OpenDatabase(Msg, True)
Set NewTbl = NewDB.CreateTableDef(Hora)
'Especificar el nombre, tipo, tamaño con el metodo
Set Fld(1) = NewTbl.CreateField(Campos(1), dbText, 250)
Set Fld(2) = NewTbl.CreateField(Campos(2), dbText, 250)
Set Fld(3) = NewTbl.CreateField(Campos(3), dbText, 250)
Set Fld(4) = NewTbl.CreateField(Campos(4), dbText, 250)
Set Fld(5) = NewTbl.CreateField(Campos(5), dbText, 250)
Set Fld(6) = NewTbl.CreateField(Campos(6), dbText, 250)
Set Fld(7) = NewTbl.CreateField(Campos(7), dbText, 250)
Set Fld(8) = NewTbl.CreateField(Campos(8), dbText, 250)
Set Fld(9) = NewTbl.CreateField(Campos(9), dbText, 250)
173
' Set Fld(10) = NewTbl.CreateField(Campos(10), dbText, 250)
' Set Fld(11) = NewTbl.CreateField(Campos(11), dbText, 250)
' Set Fld(12) = NewTbl.CreateField(Campos(12), dbText, 250)
'Añadir campos a la definición de la tabla mediante el metodo
For i = 1 To 9
NewTbl.Fields.Append Fld(i)
Next i
NewDB.TableDefs.Append NewTbl
Else
On Error GoTo Abrir
Set NewDB = NewWs.CreateDatabase(DbName, dbLangGeneral) ', dbEncrypt)
Set NewTbl = NewDB.CreateTableDef(Hora)
'Especificar el nombre, tipo, tamaño con el metodo
Set Fld(1) = NewTbl.CreateField(Campos(1), dbText, 10)
Set Fld(2) = NewTbl.CreateField(Campos(2), dbText, 10)
Set Fld(3) = NewTbl.CreateField(Campos(3), dbText, 10)
Set Fld(4) = NewTbl.CreateField(Campos(4), dbText, 10)
Set Fld(5) = NewTbl.CreateField(Campos(5), dbText, 10)
Set Fld(6) = NewTbl.CreateField(Campos(6), dbText, 10)
Set Fld(7) = NewTbl.CreateField(Campos(7), dbText, 10)
Set Fld(8) = NewTbl.CreateField(Campos(8), dbText, 10)
Set Fld(9) = NewTbl.CreateField(Campos(9), dbText, 10)
'Set Fld(10) = NewTbl.CreateField(Campos(10), dbText, 10)
'Set Fld(11) = NewTbl.CreateField(Campos(11), dbText, 10)
'Set Fld(12) = NewTbl.CreateField(Campos(12), dbText, 10)
'Añadir campos a la definición de la tabla mediante el metodo
For i = 1 To 9
NewTbl.Fields.Append Fld(i)
Next i
NewDB.TableDefs.Append NewTbl
End If
NewWs.Databases.Refresh
End Sub
Private Sub Minimo_Change()
End Sub
174
IMPIDE QUE SE EMPIECE A LLENAR LA BASE DE DATOS
'-------------------------------------------------------
Private Sub txtTmuestreo_Change()
If txtTmuestreo.Text = "0" Then
B = 100000000
End If
If txtTmuestreo.Text = "" Then
B = 100000000
Else
B = Val(txtTmuestreo.Text)
End If
End Sub
En el procedimiento Sub_Enviar se encuentra inicialmente la parte que
permite recibir los datos de las variables medidas (este es igual para el control
con PID) y luego aparece un fragmento de algoritmo concerniente al Control
Neuronal (este fragmento es lo que lo diferencia del Control con PID).
6.1.2 Control con PID
En este caso se sabe que si se tiene que controlar una variable se debe
comparar un valor real (obtenido durante el proceso) con un valor teórico
(asignado desde el inicio del proceso). Mientras transcurre la operación se
presentan desviaciones (comúnmente llamada errores) que deben corregirse
para logra estabilizar el sistema. Así, pueden surgir tres tipos de desviaciones:
Proporcional, Integral y Derivativo.
Desviación Proporcional = en este se analiza la proporción de la desviación.
= Error actual – Error anterior
Ejemplo: e = (R.Text - txtT(4)) / (Rango)
Desviación Integral = en este se analiza como se va acumulando con el
tiempo el error.
175
Ejemplo: Suma = Suma + e
Desviación Derivativa = en este se analiza como varía con el tiempo el error.
Ejemplo: derivada = (e - eOld)
El algoritmo que realiza el control con PID, es el mismo que para Redes
Neuronales, excepto por el correspondiente fragmento azul (aquí también se
puso en azul para indicar que es lo que se tiene que sustituir).
If Max.Text = "" Then Max = 45
If Min.Text = "" Then Min = 15
Rango = Max - Min
eOld = e
e = (R.Text - txtT(4)) / (Rango)
Suma = Suma + e
derivada = (e - eOld)
uTemp = Kp * e + Ki * Suma + Kd * derivada
u = uTemp * 255
If u > 255 Then
u = 255
End If
If u < 90 Then
u = 90
End If
Para lograr mayor familiarización con este proceso se pueden consultar libros
de control, la cual son numerosos. Además, se puede consultar la tesis:
DISEÑO Y CONSTRUCCIÓN DE UN INTERCAMBIADOR DE CALOR DE
PLACAS PARALELAS. De esta manera se logra un acercamiento bastante
bueno con la realidad.
También se debe consultar acerca de la programación en Visual Basic
(cualquier versión).