ESCUELA POLITÉCNIC NACIONAA Lbibdigital.epn.edu.ec/bitstream/15000/5640/1/T1752.pdfPuerto paralel...
Transcript of ESCUELA POLITÉCNIC NACIONAA Lbibdigital.epn.edu.ec/bitstream/15000/5640/1/T1752.pdfPuerto paralel...
ESCUELA POLITÉCNICA NACIONAL
ESCUELA DE INGENIERÍA
DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DEADQUISICIÓN Y PROCESAMIENTO DE DATOS PARA ELANÁLISIS DE LA DISPERSIÓN DE LA LUZ EN SOLUCIONESBIOMOLÉCULARES.
PROYECTO PREVIO A LA OBTENCIÓN DEL TITULO DE INGENIERO ENELECTRÓNICA Y CONTROL
JOSÉ ROLANDO SOTO JARAMILLO
DIRECTOR: Ing. MARCO BARRAGAN
Quito, JULIO DEL 2001
DECLARACIÓN
Yo JOSÉ ROLANDO SOTO JARAMILLO declaro bajo juramento que eltrabajo aquí descrito es de mi autoría; que no ha sido previamentepresentado para ningún grado o calificación profesional; y, que heconsultado las referencias bibliográficas que se incluyen en este documento.
A través de la presente declaración cedo mis derechos de propiedadintelectual correspondientes a este trabajo, a la Escuela PolitécnicaNacional, según lo establecido por la Ley de Propiedad Intelectual, por suReglamento y por la normatividad institucional vigente.
JOSÉ ROLANDO SOTO J.
CERTIFICACIÓN
Certifico que el presente trabajo fue desarrollado por e! Sr. José RolandoSoto Jaramillo, bajo mi supervisión.
Trfg. Marco Barragán
DIRECTOR DE PROYECTO
RESUMEN
Este proyecto se enfoca a contribuir al mejoramiento de un equipo dispersen
de luz. Se empieza revisando conceptos básicos de dispersión de luz en
soluciones moleculares, y teoría optoelectrónica. Después se describe el
modelo del dispersor de luz final que se lo ha dividido en cuatro sistemas
que son: Sistema electrónico que es básicamente el hardware de la tarjeta
de adquisición de datos utilizando como interfaz el puerto paralelo. Sistema
óptico que consta de: fuente de luz, cubeta, solución y un fototransistor; La
fuente de luz es un láser que emite un haz que al pasar por una cubeta con
una muestra, se dispersa este haz y esta dispersión se mide con un
fototransistor. El sistema mecánico tiene como objetivo mover un disco de
acero mediante un motor de pasos, para poder tomar medidas de luz a
diferentes ángulos. El sistema informático es el software del equipo
implementado en Visual Basic, este realiza la adquisición de datos y control
del motor de pasos utilizando el puerto paralelo, además realiza el
tratamiento de datos para obtener curvas características de dispersión de
luz de las soluciones.
ÍNDICE
1. CAPÍTULO 1: ASPECTOS PRELIMINARES 1
1.1. Introducción 1
1.2. Antecedentes 1
1.3. Funcionamiento del dispersor de luz 2
1.4. Objetivos 4
1.5. Alcance 4
2. CAPÍTULO 2: FUNDAMENTOS TEÓRICOS 6
2.1. Dispersión de luz 6
2.1.1. Dispersión de luz por una molécula 6
2.1.2. Dispersión de luz por un conjunto de moléculas 9
2.2. Dispositivos optoelectrónicos 14
2.2.1. Fuentes luminosas 15
2.2.1.1. El láser 15
2.2.2. Fotodetectores 16
2.2.2.1. Elfotodiodo 18
2.2.2.2. El Fototransistor 19
3. CAPÍTULO 3: MEJORAMIENTO DEL EQUIPO DISPERSOR
DE LUZ 22
3.1. Modelo del dispersor de luz 22
3.2. Sistema electrónico 23
3.2.1. Diagrama del sistema electrónico a construirse 23
3.2.2. Diseño de la tarjeta de adquisición y conversión de datos 25
3.2.2.1. Amplificación 26
3.2.2.2. Conversor A/D0804 27
3.2.2.3. Muítiplexor 74LS258 29
3.2.3. Motor de pasos 30
3.2.4. Circuito de control del motor de pasos 33
3.2.5. Puerto paralelo 35
3.2.6. Fuente de polarización 39
3.2.7. Construcción de la tarjeta de adquisición de datos 39
3.3. Sistema óptico 41
3.3.1. Fuente de luz 42
3.3.2. Centro dispersante 43
3.3.3. Fototransistor 3038 44
3.4. Sistema mecánico 46
3.4.1. Cálculo de los grados por paso que se mueve el disco 48
4. CAPÍTULO 4: DESARROLLO DEL SOFTWARE 50
4.1. Esquema del software 50
4.2. Programación en Visual Basic y diagramas de flujo 51
4.2.1. Manejo del pórtico paralelo de un PC en Visual Basic 51
4.2.2. Desarrollo del programa 53
4.2.2.1. Alineación del sistema 56
4.2.2.2. Subrutina que mueve el motor para tomar lecturas 60
de voltaje
4.2.2.3. Función leer_voltaje para la adquisición de datos 63
4.2.2.4. Subrutina que mueve el motor para alinear 66
el sistema
4.2.2.5. Toma de medidas a diferentes concentraciones 67
4.2.2.6. Obtención de las curvas características de 68
dispersión
5. CAPÍTULO 5: ANÁLISIS DE RESULTADOS 73
5.1. Equipo dispersor de luz 73
5.2. Pruebas del sistema . 74
6. CAPÍTULO 6: CONCLUSIONES Y RECOMENDACIONES 79
6.1. Conclusiones 79
6.2. Recomendaciones 82
BIBLIOGRAFÍA
ANEXO A
ANEXO B
ANEXO C
ANEXO D (MANUAL DEL USUARIO)
ASPECTOS PRELIMINARESIntroducción
1. ASPECTOS PRELIMINARES.
1.1. INTRODUCCIÓN.
Desde algunos años atrás se ha venido investigando en la Facultad de
Ciencias de la Escuela Politécnica Nacional el fenómeno de la dispersión
de luz por partículas suspendidas en un medio, con el objetivo de estudiar
las propiedades moleculares. El usar este fenómeno como método
investigativo tiene muchas ventajas frente a otras técnicas; por está razón
se tuvo la necesidad de mejorar el equipo dispersor de luz para facilitar
notablemente el estudio de las soluciones biomoleculares.
Este proyecto consta de seis capítulos, y se enfoca en gran parte a renovar
el equipo dispersor, teniendo como prioridad la adquisición de datos. El
primer capítulo es de introducción que ayuda a conocer que es lo que se
quiere hacer en este trabajo (Antecedentes, objetivos, alcances, etc),
posteriormente en el capítulo II se revisan conceptps básicos de dispersión
de luz en moléculas y teoría optoelectrónica, necesarios para entender la
parte técnica. En el capítulo III se describe el modelo final del dispersor de
luz que se lo ha dividido en cuatro sistemas que son: sistema electrónico,
sistema mecánico, sistema óptico y sistema informático. En este capítulo
se describen los tres primeros sistemas, donde se detalla el diseño y
construcción de un sistema de adquisición de datos, así como los trabajos
que involucran el mejoramiento de un equipo de este tipo; el sistema
informático que no es más que el software del equipo se expone en el
capítulo IV, También se realizan pruebas del sistema y análisis de los
resultados obtenidos (capítulos V y Vi).
1.2. ANTECEDENTES.
El fenómeno de la dispersión de la luz por partículas suspendidas en un
medio (soluciones biomoleculares), es una de las herramientas más
poderosas para el estudio de las propiedades geométricas y físico-químicas
ASPECTOS PRELIMINARESAntecedentes
de estas partículas. En este caso la luz dispersada brinda información
acerca de un conjunto de propiedades biológicas, tanto de las células como
de las soluciones, las cuales son de enorme interés para los investigadores
en diversos campos de la investigación como por ejemplo la medicina,
biología marina, etc.
Las principales ventajas del uso de esta técnica son:
> La intensidad de luz no es invasiva ni destructiva, y no altera los
mecanismos biológicos si la longitud de onda utilizada no es
demasiada corta.
> Se tiene mayor poder para detectar células pequeñas, lo que no
sucede con el uso del microscopio óptico, que es otro método
para el estudio de las propiedades de soluciones biomoleculares.
> Una de las ventajas más importantes es que permite mayor
facilidad y rapidez para el procesamiento de datos.
1.3. FUNCIONAMIENTO DEL DISPERSOR DE LUZ
Es necesario explicar el funcionamiento del dispersor de luz, así como
numerar y describir las funciones de los elementos que se requieren en el
montaje del equipo para familiarizarse con el fenómeno de dispersión y
definir los alcances del presente trabajo.
Se propuso inicialmente una instalación experimental como se muestra en
la figura 1.1. Para el montaje de este equipo se necesitó entonces de los
siguientes elementos: La fuente de luz, solución biomolecular (centro
dispersante), disco de acero, motor de pasos, sensor, tarjeta de adquisición
ASPECTOS PRELIMINARESFuncionamiento del dispersor de luz
de datos, computador, una caja óptica (que sirve como cámara y soporte
de otros elementos), cables, etc.
Caía, óptica
ComputadorTarjeto.de
3 Adquisición de datosFuente de'Luz
iSensor Disco ^.otor de Solución
posos Biomoiecular
Fíg 1-1 Instalación experimental del equipo dispersor
El funcionamiento de este aparato, consiste básicamente en la emisión de
un haz de luz de una fuente (láser, foco halógeno, etc). Este haz pasa
algunas veces por filtros y/o polarizadores para luego pasar a través de
una cubeta de baja absorbanpia donde se encuentra la muestra de
solución; las moléculas dispersan la luz incidente que es detectada por el
sensor.
Con el propósito de que el sensor tome las lecturas de la intensidad de luz
del haz dispersado, se tiene un motor de pasos con sus respectivos
engranajes para hacer girar al disco de acero que sostiene en un extremo
fijo al sensor con su respectivo soporte; de esta manera el sensor también
se mueve y puede tomar lecturas de luz a diferentes ángulos (haz
dispersado) véase figura 1.1.
La cubeta con la muestra está en el centro del disco (sin moverse) de
manera que al girar este disco exista un punto en que la fuente de luz, la
ASPECTOS PRELIMINARESObjetivos
muestra y el sensor se encuentren en una misma línea, o en otras palabras
estén alineados. En este punto normalmente se tendrá la máxima lectura
de la intensidad de luz y se le denomina como ángulo cero o punto de
alineación.
Continuando con la explicación, ía caja óptica de la figura 1.1 tiene por
objeto no dejar entrar ningún rayo de luz de otra fuente que pueda causar
errores en la medida del sensor. El sensor tiene como entrada la intensidad
de luz y como salida una señal análoga de voltaje que es amplificada y
digitalizada por una tarjeta de adquisición de datos, para posteriormente
procesar esta información mediante un PC con su respectivo software, y de
esta manera obtener curvas características de dispersión.
1.4. OBJETIVOS
Siguiendo con el esquema descrito los objetivos de este proyecto son:
> Medición de la luz dispersada por soluciones biomoleculares.
> Adquisición, procesamiento de datos y control de un motor de
pasos que maneja uno de los parámetros para poder medir la
cantidad de luz dispersada.
^ Obtención de las características de dispersión de diferentes
soluciones.
1.5. ALCANCE
Se debe mencionar que ya existía un equipo dispersor de luz primitivo, él
cual tenía muchas deficiencias, por esta razón, para mejorar el equipo,
conjuntamente con estudiantes y profesores de la Facultad de Física se
ASPECTOS PRELIMINARESAlcance
planteó el modelo inicial de la figura 1.1 con varios elementos nuevos
como la tarjeta de adquisición de datos, el motor de pasos, el disco de
acero, fuente de luz láser, entre otros, para perfeccionar aun más el
sistema se realizaron algunos cambios hasta obtener un equipo definitivo
que se describe en el capitulo III.
Con estos antecedentes se puede determinar que el presente proyecto está
enfocado al diseño y construcción del sistema de adquisición de datos, y
control del motor de pasos mediante un computador usando el puerto
paralelo; además se desarrolla un software que facilita notablemente el
tratamiento de los datos y la ¡nterfaz con el usuario, también se describen
los trabajos electrónicos y mecánicos que tuvieron que realizarse para
perfeccionar el dispersor de luz.
FUNDAMENTOS TEÓRICOSDispersión de luz
2. FUNDAMENTOS TEÓRICOS
En este capitulo se presentan conceptos básicos dé dispersión de luz en
moléculas y se describen las características de dispositivos
optoelectrónicos que se utilizan en el proyecto; es importante revisar está
parte teórica para entender de mejor manera el sistema construido, y que a
la vez sirva como medio de consulta.
2.1. DISPERSIÓNDE LALUZ
Se sabe que las moléculas son polarizables, y por lo tanto, su distribución
de carga electrónica se puede alterar por un campo eléctrico. Según la
descripción clásica de la radiación, ésta es como un campo
electromagnético sinusoidal variable; dicho campo debe producir una
oscilación sinusoidal de los electrones de la molécula. Estas cargas
oscilantes hacen que cada molécula se comporte como una pequeña
antena, que dispersará parte de la energía en direcciones distintas de la
dirección de la radiación incidente. Esta es la base de todos los fenómenos
de la dispersión.
Para comenzar a estudiar este fenómeno de la dispersión, considérese, en
primer lugar, el caso más sencillo, la dispersión por una molécula, para
luego analizar la dispersión en un conjunto de partículas.
2.1.1. DISPERSIÓN DE LA LUZ POR UNA MOLÉCULA.
Se utiliza luz polarizada inicialmente y más adelante se retira esta
condición, en la figura 2.1 la luz está dirigida a lo largo del eje x y
polarizada con el vector eléctrico en la dirección z. La molécula está en el
punto x-0t y-0} y z=0. Se supone que la longitud de onda A están larga
que se puede dejar la molécula en el origen, sin tener que preocuparse por
su tamaño.
FUNDAMENTOS TEÓRICOSDispersión de luz
Fuente
Oiwervador
Fig 2.1 Dispersión de la radiación por una molécula.
La radiación incidente puede describirse en términos del campo eléctricocomo:
,_£ (2.1)
El campo eléctrico de la molécula (en x-0) según la ecuación 2.1 será:
(2.2)
Como todas las moléculas son poiarizables, este campo producirá un
momento de dipolo oscilante.
= a£ = aE (2.3)
donde a es la polarizabilidad molecular. Este momento oscilante actuará
como una fuente de radiación; el campo radiado de esta manera puede
definirse en términos de las coordenadas de la figura 2.1. La amplitud del
campo eléctrico producido por un dipolo oscilante, a una distancia r del
FUNDAMENTOS TEÓRICOSDispersión de luz
dipolo y a un ángulo <¿ con respecto a la dirección de polarización (el eje z)
viene dado por la teoría electromagnética como:
\t--\ (2.4)43?
El término entre corchetes de la ecuación 2.4 es la parte que interesa, ya
que representa la amplitud de la onda dispersada. La intensidad de la
radiación (El flujo de la energía por centímetro cuadrado) depende del
cuadrado de la amplitud. La intensidad /o de la radiación incidente es
proporcional a cuadrado de su amplitud EQ quedando la relación i/lo de la
siguiente manera:
167i2a2sin2(|)
Esta ecuación dice mucho a cerca de la luz dispersada. Su intensidad
disminuye con r~2. Por otro lado la intensidad de la dispersión aumenta
rápidamente al disminuir la longitud de onda. La intensidad depende del
ángulo $, no produciéndose radiación en la dirección en ia que vibra el
dipolo. La ecuación para la dispersión de la radiación no polarizada se
puede obtener fácilmente, y difiere de la ecuación 2.5 sólo en que
¡ sl-f-cos2<9)/2 es substituido por sin2d>:/ • *
^ = &rV/• 3 xr ..2 M \ v J
-¿n ' A
Aquí 9 es el ángulo entre el rayo incidente y la dirección de observación. La
ecuación 2.6 describe en forma completa y adecuada la dispersión de la luz
por una pequeña partícula isotrópica. Sin embargo, tal y como está la
ecuación 2.6, no es muy útil ya que se desea estudiar las disoluciones y
FUNDAMENTOS TEÓRICOSDispersión de luz
usar las medidas de dispersión para conocer datos sobre moléculas de
soluto.
Se tiene, por lo tanto, que pasar a considerar que es lo que sucede cuando
la dispersión es producida por un conjunto de partículas.
2.1.2. DISPERSIÓN POR UN CONJUNTO DE PARTÍCULAS.
Para saber lo que ocurre cuando la dispersión es producida por más de una
partícula, se va a considerar el caso más simple: dos partículas.
2*.
Fig 2,2 Dispersión de un par de moléculas
Imagínese, como en la Figura 2.2. dos centros de dispersión idénticos,
fijos en el espacio e iluminados por una fuente común. El paso de las
ondas electromagnéticas estimula cada centro para producir dispersión.
Obsérvese la dispersión en un punto alejado P. ¿Cuál será la amplitud y la
intensidad de la radiación dispersada en P?. En general, habrá una
diferencia de fase en las ondas dispersadas que llegan a P desde 1 y 2.
Existen dos razones para esto: primero, los centros 1 y 2 están, en todo
momento en posiciones diferentes en el campo incidente. La segunda
razón es que tienen distintas distancias de P a los puntos 1 y 2. Para dejar
FUNDAMENTOS TEÓRICOS 10Dispersión de luz
las expresiones lo más simple posibles, se puede representar los campos
eléctricos en P por la expresión:
^4cos(2írv/ + ) del centro
y (2.7)Acos(2nvt + <f>7] del centro2
Aquí A es la amplitud de la onda dispersada porcada partícula, (f>{ y ^2 son
las fases de las ondas dispersadas con respecto a una referencia arbitraria.
El campo eléctrico total en P será:
E - A cos(2xvt -i- fa ) + A cos(27rv¿ + 2 ) (2- 8)
Para escribir esto de una forma más útil se usa la igualdad:
cosa- + eos y = 2 cos(l / 2)(:c - y] cos(l / 2%x + y]
(2.9)
Esta expresión describe la onda electromagnética producida en P por la
superposición de las dos ondas dispersadas. La intensidad de onda
combinada puede calcularse tomando el cuadrado de la amplitud:
,(A¿ (2.10)
o, usando otra igualdad estándar,
it|2 = 2A2 (1 + eos AÍ¿) = 2/(l + cosA^S) (2.11)
FUNDAMENTOS TEÓRICOS 11Dispersión de luz
donde / es la intensidad dispersada por una partícula. La ecuación 2.11
establece que la intensidad producida por un par de dispersantes varía con
la dirección desde la que se observa dicha dispersión, desde O a 4/.
Supóngase que [os dos dispersantes se pueden mover libremente el uno
con respecto a otro. En este caso, todos los valores de A$ serán
igualmente probables en un período de tiempo. Entonces el valor del
coseno de Á^ promediado en el tiempo, sería cero, y /12 = 2/". Esto se
puede generalizar fácilmente para el caso de n dispersantes; si éstos se
encuentran en libertad de movimiento unos respectos de otros, la
intensidad total de dispersión será la suma de las intensidades individuales
de dispersión. Este resultado vale para la dispersión de un gas idea!.
En un líquido real, se producen fluctuaciones de densidad a cada momento,
por lo tanto las densidades de un par de células situadas de forma que
dispersen desfasadas no serán, en general, completamente ¡guales.
Consecuentemente, su dispersión no se neutralizará completamente.
Debido a esto, a causa de las fluctuaciones locales de densidad, un líquido
puro dispersará un poco más que un cristal perfecto. Naturalmente la
dispersión en la dirección del rayo incidente no disminuirá, puesto que las
diferencias de fase son cero.
Ahora lo que interesa es el exceso de dispersión en relación con el que
produce el disolvente puro ya que es lo que puede suministrar información
sobre las moléculas. Si se considera que las moléculas se comportan
como dispersantes independientes y estas partículas son pequeñas
comparadas con la longitud de onda, la dispersión en estas condiciones se
denomina dispersión Rayleigh.
La ecuación 2.12 dice que el exceso de dispersión producido por una
disolución que contenga una concentración C en peso de partículas de
peso molecular M depende del producto CM. También depende del ángulo
FUNDAMENTOS TEÓRICOS 12Dispersión de luz
con respecto al rayo incidente 0, pero es simétrica con respecto a la
dispersión hacia delante y hacia atrás, N es el número de Avogrado y
(dn/dC] es el incremento del índice de refracción específico del soluto.
CM (2-12)./ó A r N
Se puede definir una magnitud ^(ecuación 2.13), que se denomina razón
Rayleigh, que contiene algunos parámetros experimentales.
i 2aI0 i+cos e
M
9 NA,4 ^ ;
K_27ing(dn/dC)2
Estas ecuaciones demuestran que las medidas de dispersión de luz
pueden usarse para la determinación de pesos moleculares. Con
disoluciones reales, las ecuaciones deben modificarse para tener en cuenta
la no-linealidad de la disolución, el resultado puede expresarse de una
forma sencilla, ya para una disolución ideal, la ecuación [2.14] es valida y
puede escribirse de la siguiente manera:
(2.16)Rn M
Mientras que para una disolución no ideal la ecuación queda:
— = — + 2SC+--- (2.17)R0 M
FUNDAMENTOS TEÓRICOSDispersión de luz
13
Donde B es e! segundo coeficiente de Vinal. La ecuación [2.17] indica que
para encontrar pesos moleculares debemos determinar Re a un número de
concentraciones y extrapolar KC¡Rg a C=0 y 9 = O .
En el método ideado por Zimm ambas extrapolaciones se hacen en ia
misma gráfica. Un ejemplo de la gráfica de Zimm se puede ver en la figura
2.3.
1,2
Kc•xlO°
0,8
0,6
0,4
0,2
0,0
Concentraciones en: [ g /mi x 10'^]
O 5,08 11,9 15,7 20,4
A 80°
~7 70°B
60C
50°
0,0 0,2 0,4 0,6
Sen2(i9/2) + 2000C
90°
0,8
Fig 2.3 Gráfica de Zimm de ADN
Se ha representado KCIRg frente a (sen291'2 + KC), donde K es una
constante arbitraria (K-2000) para lograr una escala adecuada; las
concentraciones en esta gráfica tiene como unidades [g/ml x 10"5] , Ro se
calcula con la ecuación [2.13].
FUNDAMENTOS TEÓRICOS 14Dispositivos optoelectrónicos
Considérese ahora en la figura 2.3, una serie de puntos a una
concentración dada tomados a ángulos diferentes. Tal serie de puntos esta
alineada a lo lago de una línea tal como A, El valor de KC/R0 que se
obtiene a ángulo cero y a esta concentración viene dado por el punto en el
que la línea A tiene una abscisa igual a KC, en este caso es el punto XA.Se
han obtenido series de estos puntos, una para cada concentración. AI
mismo tiempo estos puntos definen una línea que representa la dispersión
de esta muestra a varias concentraciones y a ángulo cero. La ecuación que
define a esta línea es:
— = — + 2BC . (2.18)Rn M
De la ecuación 2,18 pueden conocerse M y B, a partir de la ordenada en el
origen y de la pendiente.
Ahora en lugar de proceder como en e! caso anterior se escoge una serie
de puntos obtenidos con un ángulo de dispersión dado, pero con
concentraciones diferentes. Si se extrapola una serie de puntos tal como la
definida por línea B hasta el punto en que C=0, se obtiene el punto YB este
representa el valor de KCIRe obtenido para un 9 dado a medida que C->0,
esta serie de puntos describe una ecuación. La ordenada en el origen de
esta ecuación permite comprobar el valor de M, y la pendiente da
información acerca del tamaño de la partícula.
2.2, DISPOSITIVOS OPTOELECTRÓNICOS
La optaelectrónica es el nexo de unión entre ios sistemas ópticos y los
sistemas electrónicos. Los componentes optoelectrónicos son aquellos
cuyo funcionamiento está relacionado directamente con la luz.
Interesan dos tipos de dispositivos optoelectrónicos:
FUNDAMENTOS TEÓRICOS 15Dispositivos optoelectrónicos
> Dispositivos emisores (Fuentes de Luz). Emiten luz al ser activados
por energía eléctrica. Son dispositivos que transforman la energía
eléctrica en energía luminosa. A este nivel corresponden los diodos
LED, el LÁSER, y las Lámparas, etc.
> Dispositivos detectores. Generan una pequeña señal eléctrica al
ser iluminados. Transforma pues, la energía luminosa en energía
eléctrica.
2.2.1, FUENTES LUMINOSAS
La variedad de fuentes luminosas que pueden hallarse en ios dispositivos
optoelectrónicos es considerable, algunas de estas son:
• Las lámparas incandescentes.
• Los tubos de neón.
• Los diodos electroluminiscentes.
• El Láser.
• Las células electroíuminiscentes.
Se analizará sólo la fuente de luz láser, ya que es la que se utiliza en este
proyecto.
2.2.1.1. El Láser
LÁSER es un acrónimo de Light Amplification by Stimuiated Emlsslon of
Radfation, Frase inglesa que describe la función realizada por esos
dispositivos, cuyo funcionamiento real se puede denominar laseración Las
aplicaciones de estos diodos son muy diversas y cubren desde el corte de
materiales con haces de gran energía hasta la transmisión de datos por
fibra óptica.
FUNDAMENTOS TEÓRICOS 16Dispositivos optoelectrónicos
El principio básico es que la radiación está encerrada en un resonador, el
cual produce un campo estimulador conforme se van reflejando las ondas
en su camino de vaivén. Una longitud de onda determinada, a la que está
sintonizado el resonador, queda reforzada. El medio del resonador tiene
absorción negativa en la gama de longitudes de onda apropiada. Las
ondas, todas en fase, se suman y la intensidad radiante se amplifica. Una
pequeña proporción de la radiación se deja que salga del resonador.
Las características de la luz producida por un láser son:
> Es coherente, lo que equivale a decir que consiste en ondas que
alcanzan sus valores máximos y mínimos en el mismo tiempo y
lugar: están en fase.
> Es prácticamente monocromática, abarcando una banda de
ondas estrecha y claramente definida, de, una anchura de solo
unos pocos ángstroms en ciertos casos, aunque en otros solo
llega a 1CT4en incluso a 10"7 ángstroms.
> Es muy intensa, es decir representa una gran cantidad de
energía concentrada en una sección muy pequeña.
> Sale en un haz casi paralelo, en ciertos casos de unos pocos
grados, en otros de muy pocos minutos o segundos de arco.
Las características de la luz de láser antes mencionadas son comunes a
todos ellos, aunque su aspecto y tecnología difieran considerablemente
dependiendo del constructor.
2.2.2. FOTODETECTORES
Los componentes fotodetectores son aquellos que varían algún parámetro
eléctrico en función de la luz. Todas sus aplicaciones prácticas se basan
en que la irradiación de luz que produce variaciones de la corriente que
FUNDAMENTOS TEÓRICOS 17Dispositivos optoelectrónicos
pasa por el circuito del que forma parte el propio elemento, o crea una
tensión de circuito abierto. En la práctica suele ser la variación de la caída
de tensión en una impedancia incluida en el circuito la que constituye la
salida útil del dispositivo.
Las prestaciones de cualquier fotodetector en sus aplicaciones prácticas
dependen de ciertas cantidades variables que se las ha descrito como
condiciones de trabajo. Convendrá tratar esas condiciones en tres grupos:
1. Condiciones de ausencia de señal.- Las condiciones sin señal
comprenden: (1) la tensión a los bornes del fotodetector; (2) la
iluminación ambiental que debe mantenerse constante; (3) el valor de la
impedancia de carga. Estas tres condiciones determinan en
combinación la corriente que atraviesa el dispositivo cuando no está
expuesto a cambios de iluminación a los que haya de responder, es
decir que determinan la corriente en ausencia de señal.
2. La señal.- Se entiende por señal la iluminación o variación de ella a la
que el fotodetector a de responder. Esa señal puede ser: (a) la
incidencia o cese de una iluminación, que produzca un funcionamiento
de todo o nada; (b) variación de intensidad de la iluminación incidente;
(c) la variación de la frecuencia con que se interrumpe la luz
(parcialización); (d). variación de la longitud de onda (color) de la
iluminación incidente.
3. Condiciones térmicas.- Si las prestaciones de un fotodetector
dependiesen sólo de las condiciones de ausencia de señal y de la señal
luminosa, como se acaba de describir brevemente, la tarea del
proyectista resultaría relativamente sencilla, pero por desgracia no es
así; el comportamiento de los fotodetectores queda afectado también,
en mayor o menor grado por las condiciones térmicas.
FUNDAMENTOS TEÓRICOSDispositivos optoelectrónicos
18
Hay cuatro características básicas que son importantes para hacer una
selección óptima.
1. Responsividad: se refiere a la sensibilidad del detector o salida por
unidad de luz de entrada.
2. Respuesta espectral: indica la habilidad del detector para responder
a radiaciones de diferentes longitudes de onda.
3. Respuesta en frecuencia o velocidad con la cual el detector puede
responderá una radiación modulada.
4. Ruido; se refiere a las fluctuaciones aleatorias de las corrientes o
tensiones de salida. El ruido es directamente proporcional a la raíz
cuadrada del área del detector.
Existen diferentes tipos de fotodetectores, pero aquí se analiza solo los que
interesan (El fotodiodo y El fototransistor).
2,2,2,1. El fotodiodo
Los fotodiodos son diodos de unión PN polarizada inversamente cuyas
características eléctricas dependen de la cantidad de luz que incide sobre
la unión. En la figura 2.4. se muestra su símbolo.
F/g 2,4 Símbolo del fotodiodo en general
FUNDAMENTOS TEÓRICOSDispositivos optoelectrónicos
19
El efecto fundamental bajo el cual opera un fotodiodo es la generación de
pares electrón-hueco debido a la energía luminosa. La generación
luminosa, tiene una mayor incidencia en los portadores minoritariosí que
son los responsables de que ei diodo conduzca ligeramente en inversa.
El comportamiento del fotodiodo en inversa se ve claramente influenciado
por la incidencia de luz como se ve en la figura 2.5. Conviene recordar que
el diodo real presenta unas pequeñas corrientes de fugas de valor fe. El
comportamiento del fotodiodo en directa apenas se ve alterado por la
generación luminosa de portadores.
s 3U'g
-sooí
Fig 2.5 Curva 1 vs V de un fotodiodo
Los fotodiodos son más rápidos que los fototransistores, es decir, tienen un
tiempo de respuesta menor, sin embargo solo pueden conducir en
polarización inversa corrientes relativamente pequeñas (corriente de
oscuridad de 10 uA y hasta 100 uA con iluminación).
2.2.2.2, El Fototransistor
Este dispositivo presenta mayor corriente que un fotodiodo, para niveles
comparables de iluminación. Sin embargo, no operan tan rápido como un
FUNDAMENTOS TEÓRICOSDispositivos optoelectrónicos
20
fotodiodo (aproximadamente 10 kHz es el límite superior), y presentan altas
corrientes de oscuridad.
El fototransistor es básicamente un transistor con la corriente de base
generada por la iluminación de la unión base-colector (ver figura 2.6). La
operación normal del transistor amplifica la pequeña corriente de base.
Lus
Fíg. 2.6 Estructura interna de un fototransistor
El funcionamiento de un fototransistor viene caracterizado por los siguientes
puntos:
1. Un fototransistor opera, generalmente sin terminal de base (Ib=0) aunque
en algunos casos hay fototransistores que tienen disponible un terminal
de base para trabajar como un transistor normal.
2. La sensibilidad de un fototransistor es superior a la de un fotodiodo, ya
que ¡a pequeña corriente fotogenerada es multiplicada por la ganancia
del transistor.
3. Las curvas de funcionamiento de un fototransistor son las que aparecen
en la Figura 2.7. Como se puede apreciar, son curvas análogas a las del
transistor BJT, sustituyendo la intensidad de base por la potencia
luminosa por unidad de área que incide en el fototransistor.
FUNDAMENTOS TEÓRICOSDispositivos optoelectrónicos
21
lOmW/cm2
7 mW/cnf
3 mW/cm-
0 mW/cnf
V
Fig 2.7 Curvas características de un fototransistor típico
MEJORAMIENTO DEL EQUIPO PISPERSOR PE LUZModelo del dispersor de luz
3. MEJORAMIENTO DEL EQUIPO DISPERSOR DE
LUZ.
Este capítulo tiene por objeto presentar el equipo dispersor de luz final,
totalmente mejorado; esto incluye el diseño y construcción de un sistema
de adquisición de datos, y la implementación de un sistema mecánico
eficiente.
3.1. MODELO DEL DISPERSOR DE LUZ
En él capitulo 1 se planteo un prototipo simple del equipo dispersor de luz a
renovarse; debido a ser un trabajo destinado para la investigación este
modelo tuvo algunos cambios, llegando de esta manera a obtenerse un
modelo final, y cuyo principio de funcionamiento es el ya descrito en el
primer capítulo. Al modelo definitivo del dispersor de luz (Figura3.1) se lo ha
dividido en cuatro sistemas para un mejor entendimiento en su estructura,
estos sistemas son: Sistema electrónico, sistema mecánico, sistema
óptico y sistema informático.
Sistema üiformáücoCaja óptica
\a de Madera (Cámara)
Muestra Motor de pasos
Sistema Electrónico Sistema Mecánico Sistema Óptico
Fig 3.1 Diagrama del equipo (dispersor)
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 23Sistema Electrónico
La perfecta integración de estos sistemas, permite un rápido y preciso
análisis de las propiedades celulares. En este capitulo se describen todos
los sistemas mencionados excepto el sistema informático que es
analizado en capítulo IV.
Cabe recalcar que los diseños que se presentan corresponden a los
definitivos, pues debieron realizarse algunas pruebas antes de llegar a
ellos.
3.2. SISTEMA ELECTRÓNICO
El sistema electrónico es básicamente el hardware de la tarjeta de
adquisición de datos del equipo; constituyendo la interfaz que permite medir
ia luz dispersada, para luego ser adecuada a niveles de voltajes y
corrientes tales que puedan ser acopladas a un computador. Como ya se
menciono se necesita de un motor de pasos con su respectivo circuito de
control el cual es parte de este sistema.
3.2.1. DIAGRAMA DEL SISTEMA ELECTRÓNICO A CONSTRUIRSE
El modelo del sistema electrónico se lo muestra en la figura 3.2 y consta de
los siguientes elementos:
» Sensor
• Tarjeta de adquisición y conversión de datos
• Puerto paralelo del computador
• Motor de Pasos
• Circuito de control del Motor de pasos
• Fuente de polarización
Cuando la entrada a un sistema es una variable física: temperatura,
presión, flujo, aceleración, posición, luz, etc, la variable es convertida
MEJORAMIENTO DEL EQUIPO DISPERSGR DELUZSistema Electrónico
24
normalmente en una señal eléctrica, esta es la función que desempeña
el sensor, siendo aquí utilizado el fototransistor 3038.
Fig 3.2 Sistema electrónico
El siguiente paso es acondicionar la señal entregada por el transductor
para elevarla a un nivel acorde con el procesamiento posterior. En el
presente caso, la salida del transductor es lineal en la región de O a 3V;
para acoplarse al computador, deberá ser amplificada de tal forma que se
ubique dentro del rango comprendido entre O y 5V (niveles TTL). En ciertos
casos el amplificador requiere de características muy especiales, por
ejemplo, transductores de elevada Impedancia; en algunas ocasiones, los
amplificadores necesitan de circuitos con funciones no Iineales1 en otros
casos solo existe amplificación, como en el diseño aquí realizado; esta
etapa de amplificación es parte de la tarjeta de adquisición y conversión de
datos.
Al acondicionamiento de señal generalmente sigue un filtro analógico con
la intención de eliminar frecuencias indeseables; en otros casos, el filtro es
digital; aquí se recurrió a esta segunda opción, es decir el filtrado por
software. A continuación de la etapa de acondicionamiento se tiene un
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
25
modulo de adquisición y conversión de datos que consta de tres partes
importantes un conversor ADC0804 que es de 8 bits, un muitiplexor
74LS258 y un conectar DB25 hembra para poder conectarse con el puerto
paralelo de un computador.
Por otra parte en la figura 3.2 se ve claramente que el motor de pasos, esta
controlado por un PC, utilizando el puerto paralelo y un circuito de control
que es indispensable para mover este tipo de motores.
3.2.2. DISEÑO DE LA TARJETA DE ADQUISICIÓN Y CONVERSIÓN DE
DATOS
Existen muchas opciones para diseñar un sistema de adquisición de datos
y transmitir una señal digital a un computador como por ejemplo usar las
tarjetas comerciales que se encuentran en el mercado para conectarlas al
pórtico serial o ranuras de expansión, o también se puede hacer un diseño
con microcontroladores, etc, pero en este sistema se ha optado por
construir una tarjeta sencilla utilizando el puerto paralelo, ya que presenta
ventajas en costos, rapidez en su implementación, facilidad de diseño y
sobre todo optimización de recursos. En la figura 3.3 se puede observar el
diagrama de bloques de la tarjeta de adquisición y conversión de datos.
Sn1;á4& ^||:||||||j;:;!f> ^§!
i|4í ''cLJ^Í258 i|H illlll
Fig 3.3. Tarjeta de adquisición y conversión de datos
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 26Sistema Electrónico
3.2.2.1. Amplificación
Según ya se indico, y en base ha mediciones con varios sensores y a un
análisis de linealidad realizado a cada uno de ellos se seleccionó el
fototransistor NTE-3038, sensor que se analizará con más detalle en el
sistema óptico; por ahora solo interesa el rango lineal a la salida del sensor
que es de Q-3V independientemente del tipo de fuente de luz que se use,
por lo tanto se fijo un voltaje máximo de entrada al amplificador igual a 3V
y obviamente una salida máxima de 5V que va al conversor ADC0804.
Para racionalizar la búsqueda del amplificador, y su configuración ideal, en
primer lugar se procedió a determinar la ganancia con la ecuación 3.1.
• Ganancia
G =^- = - = 1.67 (3.1)V t 3*
• La polarización.- El voltaje Vcc seleccionado fue de 12VDC.
Se seleccionó el amplificador LM324 de la NATIONAL SEMICONDUCTOR
circuito integrado que contiene 4 amplificadores independientes. La
ganancia del amplificador está determinada por la expresión:
(3.2)
Asumiendo R2= 2KQ, y considerando que se requiere de una ganancia de
1.67, resulta que R1=1.34KQ, con el potenciómetro R1 (de 2KQ) se puede
variar la ganancia. En la figura 3.4 se muestra el circuito amplificador.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
27
12V
R1=1.34K
Fig 3.4 Circuito amplificador
3,2,2,2. Conversor A/D 0804
La familia de conversores ADC0804 son CMOS de 8 bits. Para la
conversión emplea la técnica de aproximaciones sucesivas, para lo cual
utiliza una escalera potenciométrica diferencial. Estos conversores son
diseñados para operar con buses de control derivativos y latches de salida
tipo tri-state que manejan directamente al bus de datos. Adicionalmente, la
entrada del voltaje de referencia puede ser ajustada para permitir la
codificación de cualquier pequeña muestra de voltaje analógico a la
resolución total de 8 bits.
Este conversor posee además una entrada de voltaje análogo diferencial
que permite incrementar el factor de rechazo común y anula el valor del
voltaje análogo de entrada cero.
Entre sus características principales están: Compatibilidad con el
microprocesador 8080 y otros de la familia. Estos convertidores A/D
aparecen para el microprocesador como localidades de memoria o pórticos
de E/S, y por ende no necesitan de la interfaz lógica. Exhiben un tiempo de
acceso de 135 nS y un tiempo de conversión 100t/S.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
28
El dispositivo puede operar en modo de carrera-libre (free-running) si se
conecta INTR a WR (ver la figura 3.5). Un impulso externo a WR se
requiere durante el primer ciclo de su encendido para asegurar el arranque
del dispositivo bajo todas las condiciones posibles. El control de la señal
, CS e WR debe realizarse a través del computador o hacerse la
conexión necesaria para conversión automática.
En este caso el conversor trabaja con una configuración típica, en modo de
carrera libre (CSy KD a tierra, WR y INTR cortocircuitados y controlados
por el pin 16 del puerto paralelo), la frecuencia de reloj es de 640KHz} con
un voltaje de referencia de 2.5V y un voltaje de alimentación de 5V. Como
ya se anotó en la figura 3.5 se muestra el circuito del conversor ADC0804.
La señal de entrada analógica del conversor viene de la salida del
amplificador y la señal digital de salida del conversor va al multiplexor.
r~1
iou pr
*-„^*
J
6
7
19
4
9
C0.1 uF
VI* DBO
DB2VI- DBS
DB6Uo/
CSVREF RD
WRINTR
AGND
ADC0804
1817161514131211
4 — i"i — i ""-§ — *
Fig 3.5 Circuito del Conversor ADC0804
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
29
3.2.2.3. Mulüplexor 74LS258
Se utiliza este multiplexor (8-4) debido a que se toman dos lecturas de 4
bits para cada señal convertida por el conversor ADCQ8Q4, empleando la
línea de status del puerto paralelo; se hace esto ya que el computador
disponible y muchos computadores no tienen bus de datos bidireccional, y
no se pueden tomar lecturas de 8 bits.
Este multiplexor posee tecnología de tres estados de alta ejecución, y
puede ser conectado directamente como ¡nterfaz de línea para conducción
de datos por el bus de un sistema.
El multiplexor tiene además un control que habilita la salida de los datos
cuando se pone un bajo (L) o los deshabilita, poniéndolos en alta
impedancia, cuando pone un alto (H). Mediante otro selector es posible
escoger la salida de datos que se desea habilitar, con lo que se minimiza la
posibilidad de que dos salidas puedan tomar un bus común. Los tiempos
de habilitación de cada salida son relativamente cortos. En la tabla 3.1 se
muestra el funcionamiento del multiplexor 74LS258 8Entradas/4Salidas,
ENTRADAS
CONTROL
DE SALIDA
(G)H
L
L
L
L
SELECTOR(A/B)
X
L
L
H
H
A
X
L
H
X
X
B
X
X
X
L
H
SALIDA
Y
Z
H
L
H
L
Tabla 3.1 Funcionamiento del multiplexor 74LS258
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
30
Las características más importantes son;
Voitaje de alimentación 5VDc
Potencia de disipación 60mW
Tiempo de ingreso de datos 12mS
Temperatura de funcionamiento O a 70°C
El circuito del multiplexor para este sistema (figura 3.6) es sencillo, se
conecta G a tierra (pin 18 del puerto paralelo), A/B (pin 1 del 74LS258) se
controla con el pin 14 del puerto paralelo y los 4 bits de salida se conectan
a los 4 pin,es de la línea de status que son los pines 11,10,12,13 (4 bits
más significativos) del puerto paralelo.
•-I
T
5r¡
11101413
15rj
IA IY1B-l.M. J. I2B3 A 3 Y3B4A 4Y4B
GAíB
74LS258
-4
_9
-,12
FigS.S Multiplexor 74LS258
3.2,3. MOTOR DE PASOS
Puesto que se utilizó un motor de pasos en este proyecto, se hace una
breve introducción de su funcionamiento, y de la manera como controlar
este dispositivo.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 31Sistema Electrónico
Los motores a pasos como su nombre lo indica son dispositivos cuya
posición angular varía por incrementos discretos o pasos, en lugar de
hacerlo en forma continua, como los servomotores por ejemplo. Este
movimiento controlado se logra conmutando la potencia aplicada a los
bobinados del motor de forma tal que las fases del motor son energizadas
en una determinada secuencia. Los motores a pasos son capaces de
posicionamientos muy precisos sin el uso de lazos de realimentación (lazo
abierto), aunque éstos pueden ser utilizados si se desea efectuar un control
más preciso.
El tipo más común de motor es de 200 pasos por vuelta (1.8° por paso)
aunque se consiguen también de otros valores; este parámetro no fija la
precisión de posicionamiento de un motor, ya que éste puede funcionar por
medios pasos (0,9° por paso) o por micropasos, lo que implica ia capacidad
de rotar fracciones determinadas de paso.
Esto se logra mediante el uso de un controlador apropiado, que permita
manejar una secuencia de cuatro estados de excitación del estator para
paso completo, ocho para medio paso, y 4/N para N micropasos.
Los motores a pasos vienen en dos tipos: imán permanente y reluctancia
variable, existiendo también motores híbridos que son una combinación de
los dos anteriores. Dependiendo del tipo de bobinas que se encuentran
devanadas simétricamente sobre los estatores se pueden clasificar en: los
unipolares y los bipolares, siendo estos últimos mejores, ya que tienen mas
torque por el mismo tamaño y peso.
Los unipolares tienen 4 bobinas (figura 3.7), unidas dos a dos, con lo que
tienen tres cables de conexión por bobinado, en total seis. Son los más
fáciles de controlar, ya que los pulsos son consecutivos.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
32
Fig 3.7 Motores unipolares
En el caso de los bipolares (figura 3.8), solo tienen 2 bobinas, y su control
es más complicado, ya que tienen que invertir la corriente de las bobinas
para que el motor gire. Solo poseen 4 hilos, 2 por bobina.
2a 2b
Fig 3.8 Motores bipolares
Para seleccionar el motor de pasos se tomo en consideración algunos
parámetros, siendo ios más importantes: la potencia del motor para mover
el disco que pesa aproximadamente 13 libras, y el número de grados por
paso (cercano 2°/paso) para que eí disco se mueva en fracciones de grado,
y obviamente el sensor tome lecturas de voltaje a dichas fracciones. El valor
de cada fracción de grado por paso que se mueve el disco se calcula más
adelante en el sistema mecánico. En base a los dos parámetros antes
mencionados se escogió un motor de pasos con las siguientes
características:
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
33
• Motor unipolar de imán Permanente
• Alimentación 5V, 1.5A, 1W
• 1.8°/paso
• ORIENTAL MOTOR
• Modelo PH 268-21-65
• No. Serie: MN25624
3.2.4. CIRCUITO DE CONTROL DEL MOTOR DE PASOS
Antes de describir el circuito de control del motor de pasos, es importante
mencionar que existen dos tipos de secuencias de pulsos que permiten
controlar el giro por pasos de un motor de está clase. La de "manejo por
olas " en que solamente una fase de los bobinados del estator se alimenta
al mismo tiempo (ver figura 3.9.). La otra secuencia de funcionamiento se
llama "manejo de dos fases"; en este segundo método, las dos fases del
estator se.alimentan simultáneamente.
FIg 3.9 Manejo por oia
Después de esta breve introducción; para el diseño del circuito de control,
primero se procedió a identificar como están dispuestas las bobinas. Este
motor de pasos es unipolar y tiene seis cables, entonces se presenta un
punto común por cada dos bobinas, teniendo por lo tanto dos terminales
comunes independientes y 4 bobinas (ver figura 3.7). Los terminales
comunes se identifican fácilmente con la ayuda de un óhmetro, ya que
MEJORAMIENTO DEL EQUIPO DISPERSOS DE LUZSistema Electrónico
34
marca un menor valor de resistencia entre este punto y el resto de
terminales del motor. La secuencia de movimiento del motor se determina
energizando cada bobina y observando el sentido de giro.
Para tener un movimiento del motor en secuencia positiva los colores de los
cables del motor quedaron determinados en el siguiente orden: negro, azul,
verde, rojo, el amarillo y el blanco son puntos comunes.
En el diseño realizado se ha usado la secuencia "de manejo por ola"
empleando transistores, con los cuales se puede manejar una mayor
corrie'nte. Observando la figura 3.10, la simplicidad es evidente; solo se
encuentra un transistor y una resistencia por cada salida del puerto
paralelo, para controlar cada una de las bobinas del motor. El transistor que
se ha elegido es un Darlington ECG261 NPN, de alta ganancia (j9 = 1000) y
una corriente de colector máxima de 8 A.
Motor de pasos
tu-l
+5V
Q2 ._-
3\¿
E
; p.4£ 1K
/ NPN
<<
BUl
E
; RS£ 1K
/ NPN
<<
BV li
E
* P9
> 1K
/ HPW
<<
B1^
E
' Rl' 1K
wy NPN
Al puerco -paralelo
Fig 3,10 Circuito de control del motor de pasos
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 35Sistema Electrónico
El seleccionar este transistor, permite que la resistencia de base del mismo
sea alta, con el fin de proteger el puerto paralelo del computador de
corrientes peligrosas ante errores que se pueden presentar. Este transistor
ofrece la ventaja adicional de tener internamente un diodo que lo protege
ante el efecto de la inducción electromagnética, que se origina por
desconexión permanente de las bobinas.
Los pines 2,3,4,5 del puerto paralelo (bits 0,1,2,3 del bus de datos) van
conectados al circuito de control del motor de pasos. E! voltaje de
polarización es igual a 5V. El control por software del motor resulta muy
sencillo ya que solo debe generarse una secuencia de pulsos en el bus de
datos del puerto paralelo como los que se muestran en la figura 3.9.
3.2.5. PUERTO PARALELO
El puerto paralelo de casi todas las PC's se utiliza generalmente para
conectar la impresora. Este tipo de conector es llamado "DB 25 hembra"
(Las siglas "DB" significan "Data Bus"). El modelo de puerto paralelo que se
describe aquí es el modelo estándar, de modo que su funcionamiento es
válido para la mayor parte de los PC's. Este modelo es unidireccional y
puede transmitir 150 Kbytes por segundo, aunque actualmente ya puede
alcanzarse una respetable velocidad de 2 Mega bytes por segundo, y con
bidireccionabilidad en los puertos; cabe señalar que esta velocidad de
transmisión es relativamente grande en comparación con la del puerto
serial, pero está limitada a pequeñas distancias. La figura 3.11 muestra el
diagrama de un puerto paralelo estándar, donde se aprecia la salida del
puerto tal y como se ve a la computadora desde atrás.
Este puerto tiene un total de doce bits de salida y cinco bits de entrada, lo
cual es una desafortunada combinación desde el punto de vista de la
comunicación paralela. Se puede mandar perfectamente un byte (8 bits) de
datos al exterior, pero hay que recibirlo en trozos de 4 bits o menos.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
36
ACKNOLEDGMENT
OUTOF PAPERSELECT
AUTOFEED
SELECT
\ x x \ / V///,
b í & b © 0 Q o O 0 o o G e 1
DOO = 2O
13 12 U 10 9 SD p p p Q p O p ply 15/16/17/18 /Í9/20 /2] /22
4 3 2 1->STRDBE
Fig3.11 Diagrama del puerto paralelo
Debido a los pocos bits de entrada y salida que tiene el puerto, el
intercambio de información con el mundo exterior es ligeramente
complicado, sin embargo, una vez entendidos los principios básicos de
funcionamiento y con la lógica de programación adecuada, no se presentan
mayores problemas. Estos 12 bits de salida y 5 bits de entrada están
agrupados en 3 bytes, conocidos ampliamente en la literatura
computaciona! como los bytes "Data, Status y Control".
"DATA"(salida solamente) \ I \ I \ K I \ I \ K I \
Fig 3,12 Bus de Datos
El byte llamado "Data" (figura 3.12.) son los 8 bits de datos de salida que
mandan el carácter a la impresora. El byte de "Control" (figura 3.13.) es
AFORAMIENTO DEL EQUIPO DISPERSOS. DE LUZSistema Electrónico
37
para darle órdenes, y está formado por los 4 bits de salida solamente (los
otros cuatro bits del byte no se utilizan), y finalmente, el byte "Status"
(figura 3.14.) está formado por 5 bits de entrada que leen la condición de la
impresora (los otros bits no se usan).
El valor que se lee o escribe no es exactamente el estado lógico de los
pines del conector ya que algunos de estos tiene sus estados lógicos
negados, estos son: los bits O, 1, 3 de byte de control, y el bit? del byte de
Status; en el byte de datos no existe ningún bit negado.
"CONTROL"(salida solamente) \ U.STRQBE
'di AUTOFEED
SELECT
Fig 3.13 Bus de Control
"STATUS"(Solo entrada)
S3: ERROR34: SELECT
S5: OUT OF PAPER36: ACK37: BUSY
Fig 3,14 Bus de Status
Cada puerto paralelo de un PC estará caracterizado por estos tres bytes,
aunque cada uno los tendrá localizados en direcciones diferentes, pues
estas direcciones pueden variar según el fabricante de la PC, las
direcciones más comunes se muestran en la siguiente tabla.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
38
{PRlVATE}Port
Data Lines
Control Lines
Status Lines
Address (Decimal)
888
890
889
Address (Hex)
378h
37Ah
379h
Tabla 3.2 Direcciones de los bytes dei puerto paralelo
Existen tres direcciones para cada byte del puerto paralelo, estas
direcciones se las puede cambiar fácilmente en la mayor parte de
computadoras. Para cambiar la dirección del puerto del computador, se
hace clic sucesivamente en Inicio, Configuración, Panel de control y, a
continuación, doble clic en Sistema, luego clic en administrador de
dispositivos, puerto de impresora (propiedades) en ia sección recursos, aquí
se puede escoger una de las tres direcciones posibles. Para el computador
disponible en este proyecto se tiene las direcciones del puerto paralelo
(LPT1) arriba escritas.
En el sistema aquí diseñado las conexiones hechas para el conectar DB25
del puerto paralelo se detallan en la tabla 3.3,
Número del Pin
10,11,12,13
2,3,4,5
16
14
Descripción
Entradas al PC
(Salidas del Multiplexor)
Salidas para el control
del motor de pasos
WR
A/B del Multiplexor
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
39
18
1,6,7,8,9,15,17
19,20,21,22,23,24,25
Tierra
No utilizados
No conectados
Tabla 3.3 Conexiones del conectar DB25
3.2.6. FUENTE DE POLARIZACIÓN
Una de las partes importantes que no se ha mencionado es la fuente de
polarización; se añadió una fuente controlada por conmutación, de las que
se utiliza en los computadores que tiene salida de ±57 y ±12V con una
suficiente capacidad de corriente para polarizar todos los circuitos y el
motor de pasos empleado, que necesita de 1.5 A de corriente para su
funcionamiento.
Algo muy importante que cabe señalar es la interferencia de la corriente del
motor de pasos a la etapa digital causando mucho ruido y por ende error en
las medidas del sensor; para corregir esta se aisló la fuente del circuito de
control del motor de pasos con la fuente de polarización de la etapa digital;
esto con ayuda de reguladores (de 5V) ya que con 5V se polariza la etapa
digital, el fototransistor y el motor de pasos
3.2.7. CONSTRUCCIÓN DE LA TARJETA DE ADQUISICIÓN DE DATOS
En la electrónica, es muy común diseñar un circuito empleando fórmulas
fundamentales y probadas, pese a ello, al construirse la versión definitiva,
se necesitan hacer ajustes por diferentes razones.
El circuito final del sistema electrónico se presenta en la figura 3,15.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Electrónico
40
00
CONNECTOR DB2S
F/g 3,-/5 Circuito de la tarjeta de adquisición y conversión de datos
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 41Sistema Óptico
A todo este diseño se ie denomina un sistema de adquisición de datos por
el puerto paralelo.
Vale mencionar que antes de realizar la conexión total del circuito y el
ensamblaje en una caja adecuada, se realizaron varias pruebas que
ayudaron a solucionar problemas que se presentaron durante su desarrollo.
La etapa digital quedó ensamblada en dos cajas; una para el circuito de
control del motor de pasos; y otra para la tarjeta de adquisición y conversión
de datos, a lado de está caja se ensambló la fuente de polarización. La caja
de la tarjeta de adquisición tiene además un interruptor para energizar los
elementos que tienen polarización.
El cable para conectar la tarjeta de adquisición de datos y el computador es
un cable plano de 25 hilos con dos conectares DB25, uno hembra y otro
macho. El fototransistor va conectado a la tarjeta de adquisición-mediante
un cable coaxial.
3.3. SISTEMA ÓPTICO
El sistema óptico esta básicamente relacionado al fenómeno de dispersión
de luz, y tiene tres elementos ópticos indispensables que son:
• Fuente de luz
• Centro dispersante
• Detector
En ciertas ocasiones el usuario (El Físico) también usa colimadores, filtros
y polartzadores.
Como ya se había señalado en el capítulo 1, la fuente de luz láser emite un
haz de luz que pasa por una cubeta que contiene una muestra (centro
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Óptico
dispersante), causando el fenómeno de la dispersión; los rayos de luz
dispersados se miden con el fototransistor 3038.
3.3.1. FUENTE DE LUZ
Se probaron muchas fuentes tales como lámparas, focos alógenos,
láseres, etc. Un factor muy importante que vale mencionar, y por el cual se
escogió el láser, es la estabilidad que debe tener la fuente de luz con
respecto a la variación de la longitud de onda y la energía emitida ya que
esto afecta directamente a la medida de la señal hecha por el sensor. Otro
factor importante es que el área del haz emitido por la fuente y que
interacciona con la muestra, debe ser un punto para que no existan otros
fenómenos como la difracción, y esto se logra con más facilidad utilizando
un láser.
Debido a sus mejores características entre todas las fuentes disponibles, se
escogió el láser de clase 3a de la familia LDL175 de IMATRONIC (figura
3.16)
Fig 3.16 Láser clase 3a
Las principales características de este láser son:
Longitud de onda de 655nm (620-690nm)
MEJORAMIENTO DEL EQUIPO DISPERSOS. DE LUZSistema Óptico
43
• Salida máxima de energía 5mW/cm
• Modelo No. 623234
• Serie No. 57365
El área del haz emitido por este láser es rectangular, y de aproximadamente
2x5 [mm]} por lo que hay que utilizar un colimador para reducir dicha área a
un punto según lo ya explicado anteriormente,
3.3.2, CENTRO DISPERSANTE
El centro dispersante no es más que una cubeta de baja absorbancia llena
de la solución que se desea estudiar. Como ya se indicó en e! capitulo 1
dicha cubeta está en el centro del disco para poder alinearla con el láser y
el fototransistor. La siguiente gráfica muestra la forma de la cubeta
utilizada.
Flg 3.17 Cubeta de baja absorbancia
Esta cubeta debe estar totalmente limpia y no tiene que moverse al girar el
disco de acero ya que produciría una oscilación de las moléculas de la
solución y esto a su vez produciría un error muy significativo en el valor de
la señal medida. Por está razón se implemento un soporte en "C" solo para
la cubeta (ver figura 3.1);la cual queda fija, y por ende la solución a
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZ 44Sistema Óptico
diferentes concentraciones se la puede cambiar sin 'mover la cubeta; para
esto normalmente se usa una jeringa.
3.3.3. FOTOTRANSISTOR3038
El fotodetector o transductor es el corazón de casi todos los sistemas
optoelectrónicos; por tanto, la selección del mejor detector, en una
aplicación determinada, es de suma importancia.
Para detectar la intensidad luminosa hay una gran variedad de sensores
para diferentes tipos de fuentes radiantes, que incluye radiación nuclear así
como luz visible, infrarroja y ultravioleta.
El sensor que se escogió es el ya antes indicado EL FOTOTRANSISTOR
NTE 3038; se seleccionó este detector debido a que detecta la luz emitida
por la fuente de luz láser, y a que tiene una región lineal óptima.
Las características eléctricas del FOTOTRANSISTOR NTE 3038 son:
• Transistor NPN Darlington de Silicio para iuz visible e infrarroja
• Voltaje Colector-base [ BVCBo] 25 V.
• Corriente máxima de colector [ le] 20 mA.
• Máxima corriente de oscuridad [ ID ]a 25 °C 20 nA a VCE^IO V.
• Mínima corriente de luz [ IL ] 5mA.
• Máxima potencia de disipación a 25 °C[ Pt] 50 mW.
• Tiempo de respuesta [tr] 1.5 uS típica.
En la figura 3.18 se muestra el circuito del fototransistor de tal manera que
la salida de este sensor sea voltaje y no corriente; la resistencia de emisor
es de 100 ohmios, valor escogido en base a la corriente que maneja el
fototransistor; el voltaje de polarización es de 5V.
MEJORAMIENTO DEL EQUIPO DISPERSOS. DE LUZSistema Óptico
45
PHOTO
3038
Ffg 3,18 Circuito del fototransistor
El sensor entonces detecta la luz en las longitudes de onda emitidas por la
fuente de luz láser aquí utilizada (655nm).
No existe información de la linealidad del fototransistor 3038, por lo que se
procedió primero a obtener las curvas características. Conociendo la
información del fotodiodo MRD51Q, se obtuvo la curvas características del
fototransistor.
Como según se vio en el capitulo II (Ec. 2.6), la intensidad de luz es
inversamente proporcional al cuadrado de la distancia. Por lo tanto en esta
gráfica 3.19 se muestra la intensidad relativa de luz [ktte/distancia2] vs
voltaje [v] y se puede observar claramente que existe linealidad desde O a
3V que es la característica que se necesita conocer.
Como se puede ver no interesa el valor de la intensidad de luz, esto es
debido a que en general para el estudio de la dispersión en soluciones
moleculares, se utiliza únicamente la relación entre la luz incidente y la luz
dispersada, y esta es adimensional, por esta razón se puede utilizar solo las
lecturas de voltaje sin tener que transformar a valores de intensidades de
luz en mW/cm2 u otra unidad.
MEJORAMIENTO DEL EQUIPO DISPERSOR DE LUZSistema Mecánico
46
Linealidad del Fototransistor
0.0045
0.0040 •
w 0.0035 -
« 0.0030 •
g 0.0025-
2 0.0020-Q"oí 0,0015-
* 0.0010-
0.0005 -
0.0000 •
y = 0,0012x +0,0005
R2 = 0,9942
0.00 0.50 1,00 1.50 2,00
Voltaje
2.50 3.00 3.50
fíg 3,19 Gráfica de linealidad del fototransistor
En la misma figura se muestra el modelo matemático de la linealidad; para
mayor información de las curvas obtenidas para el fototransistor 3038 se
puede ver el anexo A.
3.4. SISTEMA MECÁNICO
Este sistema fue mejorado e implementado con la mayor precisión posible
para obtener un alto grado de eficiencia, pese a las limitaciones
tecnológicas que se presentan en nuestro medio.
El sistema mecánico se puede ver en la figura 3.20, y los principales
elementos son:
Caja óptica, que sostiene el disco de acero mediante dos varillas y
un soporte.
Disco de acero con engranajes en la tangente para girar ±15° con
ayuda de un motor de pasos, este disco sostiene al sensor con su
respectivo soporte.
MEJORAMIENTO DEL EQUIPO DISPERSOS DE LUZSistema Mecánico
47
• Motor de pasos con engranaje fijado en la caja óptica,
• Caja negra que cubre todos los elementos, y no permite que se filtre
ningún rayo de luz ajeno a la fuente láser
• Soportes para la cubeta, Varillas, etc
La caja óptica y el soporte de la cubeta están fijos en la mesa, mientras el
láser y su soporte pueden moverse, esto para facilitar la alineación manual
del láser, la muestra y el sensor.
Como ya se señalo el sensor debe tomar medidas a pequeños pasos de
grados, para esto se realizó el montaje del disco de acero con el motor de
pasos, en el cual el radio del disco es muy grande comparado con el radio
del engranaje del motor para que el disco se mueva en fracciones de
grado.
Es obvio que eje del motor de pasos y el soporte del sensor están
perpendiculares a la superficie del disco para que este tenga un movimiento
en el mismo plano.
Caja óptica\
Caja de madera(cámara)
Muestra Motor de pasos
Sistema Mecánico
F/g3.20 Sistema mecánico
MEJORAMIENTO DEL EQUIPO DISPERSOS DE LUZ 48Sistema Mecánico
Se debe indicar que del equipo anterior se utilizó solo la caja óptica (que se
la recorto), con las varillas que sirven de sostén del eje del disco también
cabe señalar que los trabajos mecánicos de mejoramiento tanto de diseño
como de montaje, se los realizó con la ayuda de estudiantes y profesores
de la Facultad de Ciencias interesados en el tema.
3.4.1. CALCULO DE LOS GRADOS POR PASO QUE SE MUEVE ÉL
DISCO
El disco tiene un radio de 12.5cm, el radio de los engranajes del motor es
de 1.45 cm entonces se recurrió a una fórmula simple para calcular el valor
de los grados por paso del motor que recorrerá el disco:
arco=B*r (3.3)
Como es obvio el arco que recorre el engranaje del motor es igual al arco
que recorre el disco entonces de la ecuación 3.3 se tiene:
Q• *r = 0 *r (3.4)a a m m \
donde dd - ángulo que recorre el disco, ?¿ =radio del disco, 6^-ángulo
que recorre e! motor, ,=radio del engranaje del motor3 entonces el ángulo
que recorre el disco por cada paso del motor queda determinado por:
9 *rOd =?»-!». (3.5)
rá
y, este ángulo es igual a:
MEJORAMIENTO DEL EQUIPO DISPERSOS DE LUZ 49Sistema Mecánico
18 °*1 45 cm— = 0.2088
12.5 cm
De esta manera el sensor puede tomar medidas cada 0.2088°; el disco
tiene engranajes para ±15° desde el ángulo 0°, que es el punto donde
están alineados el láser, la muestra y el sensor.
DESARROLLO DEL SOFTWAREEsquema del software
50
4. DESARROLLO DEL SOFTWARE
Ya que uno de los objetivos es el de realizar el procesamiento de datos, es
indispensable que todo, o en su mayor parte, el proceso computacional sea
realizado por un lenguaje de ambiente Windows y de fácil programación,
cualidades que están presentes en el lenguaje Visual Basic.
4.1. ESQUEMA DEL SOFTWARE
El software tiene por objeto tomar lecturas de voltaje correspondientes a la
intensidad de luz dispersada, obtener las curvas características de
dispersión de las soluciones, y en particular realizar el diagrama de Zimm
(explicado en el capitulo II) para que después, el interesado en el tema (El
Físico) concluya con el objetivo final de la investigación, que es determinar
el peso molecular y el tamaño de las partículas de las soluciones.
El programa básicamente consta de cinco partes importantes la lectura de la
señal de voltaje, el control del motor de pasos, la alineación del sistema, la
lectura de datos a diferentes concentraciones y la generación de las cuivas
características. En la figura 4.1. se ve el esquema general del programa.
Fig 4.1. Esquema general del software a desarrollarse.
DESARROLLO DEL SOFTWARE 51Programación en Visual Basic y diagramas de flujo
4.2. PROGRAMACIÓN EN VISUAL BASIC Y DIAGRAMAS DE
FLUJO,
Como aquí se utiliza el puerto paralelo para la comunicación entre el
computador y el módulo digital es necesario revisar la programación del
puerto paralelo en Visual Basic.
4.2,1. MANEJO DEL PÓRTICO PARALELO DE UN PC EN VISUAL BASIC
La programación del pórtico paralelo en Visual Basic está aplicada a las
versiones de 16 y 32 bits; Ahora antes de hacer referencia de los comandos
de VB para el pórtico paralelo, se deben mencionar algunas limitaciones del
programa.
Visual Basic no puede acceder al hardware directamente en un sistema.
Todas las demandas del hardware deben pasar por Windows. Debido a esto,
se puede manejar el puerto paralelo. Para controlar el puerto directamente,
el programador se debe acostumbrar a algo externo, a un programa, una
librería dinámica (DLL). Los archivos aquí utilizados (VBASM.DLL
WIN95IO.DLL) son copiados del Internet de la siguiente dirección;
http://www. softcircuits.com/sw_tools.htm
Hay que usar los archivos VBASM.DLL para VB1, VB2, VB3 o VB4 16Bit, y
WlN95lO.DLL para VB4 32bit, VB5 o VB6. No importa que archivo se
escoja, se los debe grabar en el directorio del "C:\windows\system". De
todas maneras, no trabajará bajo Windows NT debido a razones de
seguridad.
El computador disponible en este sistema es de 32 bits (windows95) por lo
que se necesitó del archivo WIN95IO.DLL.
DESARROLLO DEL SOFTWARE 52Programación en Visual Basic y diagramas de flujo
Ahora se necesita dedos cosas más: los comandos para acceder al puerto
y el número a escribir en el mismo. Primero se analiza el número a escribir
en el puerto.
Los puertos trabajan con números, estos pueden expresarse en forma
hexadecimal, binaria o decimal, pero para estas librerías DLL todos los
valores se expresarán en forma decimal; sin embargo, usted opera el puerto
enviándole un número que representa el modelo binario. Por ejemplo, para
poner en la línea de datos el valor binario 11111111 se debe escribir el
número decimal 255. Es obvio que cada dirección del puerto consta de 8
bits por lo tanto el número máximo que se puede usar es 255.
Antes de poder usar cualquiera de los comandos contenidos dentro del DLL,
se debe declarar este archivo como se muestra a continuación:
Para un sistema de 16 bits (VBASM.DLL), se usa:
Declare Function vblnp üb "VBASM.DLL" (ByVal nPort As Integer) As
Integer
Declare Sub vbOut üb "VBASM.DLL" (ByVal nPort As Integer, ByVal nData
As Integer)
Para un sistema de 32 bits (VBASM.DLL), se usa:
Declare Sub vbOut üb "WIN95lO.DLL" (ByVal nPort As Integer, ByVal nData
As Integer)
Declare Sub vbOutw Lib "WlN95IO.DLL" (ByVal nPort As Integer, ByVal
nData As Integer)
Declare Function vblnp Lib "WlN95IO.DLL" (ByVal nPort As Integer) As
Integer
Declare Function vblnpw Lib "WlN95lG.DLL" (ByVal nPort As Integer) As
Integer
DESARROLLO DEL SOFTWARE 53Programación en Visual Basic y diagramas de flujo
Estas declaraciones se escriben en cualquier módulo del programa, en la
sección de General_Declarations.
Una vez declaradas las funciones, se tendrán dos nuevos comandos
disponibles, estos son: vblnp y vbOut; es conveniente recordar las
direcciones de los tres bytes del puerto paralelo para este sistema
mencionadas en el punto 3.2.5,
Bus de Datos 888 Decimal
Bus de Status 889 Decimal
Bus de Control 890 Decimal
El vbOut es un comando que se usa para enviar un byte al puerto, a
continuación se ve la sintaxis de la instrucción y un ejemplo donde se
escribe en la línea de datos del puerto el número 255;
vbOut [dirección del puerto],[número], que corresponde a:
vbOut 888,255
El comando para realizar la lectura es vblnp; la sintaxis de la instrucción se
muestra a continuación:
[variable] = vblnp([dirección del pórtico])
En siguiente ejemplo se copia en la variable Voltaje el byte de la dirección
889 (Bus de Status) del puerto paralelo.
Voltaje = vblnp(889)
4.2.2, DESARROLLO DEL PROGRAMA
El programa se desarrollo en su totalidad en Visual Basic; y una de las
principales herramientas de visual basic son los formularios que
DESARROLLO DEL SOFTWARE 54Programación en Visual Basicy diagramas de flujo
básicamente son contenedores de controles. En este programa se tiene 5
formularios (ventanas) importantes, el primero corresponde a la carátula del
proyecto (frmCaratula), el segundo representa el programa principal
(frmMain), los tres restantes cumplen con la función de: alinear el sistema
(frmAlineacion), tomar datos de diferentes concentraciones de una solución
(frmMedidas) y el último muestra las curvas características de dispersión de
luz de las soluciones, además genera el diagrama de Zimm (frmZimm).
Otra de las herramientas de este lenguaje son los controles, estos objetos
pueden colocarse en un formulario y tiene su propio conjunto de
propiedades, métodos y eventos reconocidos. Dos controles que es
necesario explicar debido a su utilidad son: los CommandButton (Botones)
y los Timer (temporizador) . Al control CommandButton se lo utiliza para
comenzar, interrumpir o terminar un procedimiento (subprograma) y se lo
nombra con el formato cmdNombre_clic, el prefijo clic se debe a que
responde a un evento clic del botón derecho del mouse. Los controles
Timer responden al paso del tiempo, son independientes del usuario y
pueden programarse para que ejecuten acciones a intervalos de tiempo
por lo que se los ha usado como subrutinas. Se tienen dos subrutinas
importantes la una (tmrPulso_timer) mueve el motor de pasos y llama a
la función que toma la lectura del voltaje correspondiente a la intensidad
de luz; la otra subrutina (tmrNuevocero_timer) mueve el motor de pasos
cierto número de grados que se necesita para que el sistema quede
alineado.
El programa principal (ventana frmMain) pide que el usuario ingrese
algunos datos iniciales como son: nombre de la muestra, nombre del
solvente, número de concentraciones, ángulo a girar (#), valor de las
concentraciones; estos datos se guardan en un archivo *.txt haciendo clic
en un botón "Crear archivo de datos", el nombre del archivo por defecto es
el nombre de la muestra, pero el usuario puede cambiarlo.
DESARROLLO DEL SOFTWARE 55Programación en Visual Basic y diagramas de flujo
A continuación se presenta el orden con el que los datos se guardan en el
archivo creado, esto es importante ya que en el formulario frmZimm se
necesita leer el archivo con el mismo formato para obtener las curvas
características.
1. Nombre de la muestra
2. Nombre del solvente
3. Numero de concentraciones
4. Ángulo a girar
5. Número de medidas por cada concentración
6. Valor de la concentración 1
7. Valores de voltaje de la concentración 1
Nombre de la concentración 2
Valores de voltaje de la concentración 2
Nombre de la concentración i
Valores de voltaje de la concentración i
Con estos antecedentes, se procede a presentar los diagramas de flujo.
En primer lugar la figura 4.14 presenta el diagrama de flujo del programa
principal donde se puede ver que para alinear el sistema y tomar medidas a
diferentes concentraciones es necesario crear el archivo de datos antes
indicado, mientras que para obtener las cun/as características (ventana
frmZimm) no es así, y se puede ingresar directamente a esta pantalla.
Existen dos opciones adicionales que son: corregir los datos ingresados
(cmdCorregir_cilcK), y salir del programa.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
56
Ingreso de datostxtMuestra.txtSoluto,IxiConcent raciones,ixíAngulo, txtCon(¡).
cmdAceptar_Click(Crear archivo)
cmdZimm_CI¡ck^ (llama a frmZimm)
12cmdCorregir_Click
13Habilita etiquetas para
corregir datos
14cmdSalir Clictc
15Fin
cmdAlmeacion_CIÍck(llama a frmAlineacion)
cmdMedicion_Cl¡ck(llama a frmMedidas)
cmdZimm_CI¡ck(llama a frmZimm)
7cmdCorregir_Click
Habilita etiquetas paracorregir datos
cmdSalir Click
10Fin
Fig.4.2 Diagrama de flujo del programa principal
4.2.2.1. Alineación del sistema
Se empieza primero presentando el diagrama de flujo de la alineación del
sistema (figura 4.3), para luego explicar detenidamente en que consiste
dicha alineación.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
57
Seteo de algunos parámetros(txtAngulo.nMedidas.Tmuestreo)
10cmdEmpezar_Cl¡ck
11Npasos = lnl(txtAnguio / 0.2088)"calculo del número de pasos"seteo de cUp, cDonw "contadores"llama a ímrPulso Timer
( -12[ cierra\crndEm pezar_Cli ck
14es empezar = 2
¿Se tomó las lecturas?
"Calculo del voltaje máximo
cmdMedic¡on_Click(llama a frmMedícion)
cmdZimm_Cl¡ck(llama a frm Zimm)
cmdParar Click
Deshabilita tmrPulso Timer
cmdIn¡c¡o_CI¡ck(HamaafrmMain)
cmdSalír Click:
3Fin
DESARROLLO DEL SOFTWAREProgramación en Visual Basic 3' diagramas de flujo
58
20min = j, max = j
para, ¡=0,2*Npasos,1
NO
mín = Ilf(i < min, i, min)max= llf(i > max, i, max)
23cierre]
24¡ = Int((max+ min) / 2)
nuevocero = (Npasos - ])"# de pasos que se necesita
para la alineación"
25llamar a
tmrNuevocero Timer
26cierre
cmdAlinear Click
FIG. 4.3. Diagrama de flujo de la alineación del sistema
Como ya se indicó la alineación del sistema se presenta en un formulario
frmAlineacion; aquí se puede setear algunos parámetros como son; el
ángulo a girar (txtAngulo) que se lo ha denominado como 0, el número de
DESARROLLO DEL SOFTWARE 59Programación en Visual Basic y diagramas de flujo
medidas por cada lectura de voltaje (n Medí das), e! período de cada paso del
motor (Tmuestreo). Vale aclarar el segundo parámetro; esto es debido a que
cada lectura de voltaje es el promedio de un número de medidas
(nMedidas).
Continuando con la explicación; para poder alinear el sistema, primero se
deben tomar lecturas de voltaje en el formulario frmAlineacion o en el
frmMedicion, estas lecturas tienen una forma de campana al sergraficadas
en función de 6 en un rango [ -9° a 6"°], Si esta campana fuera perfecta el
punto de cúspide correspondería al ángulo cero, y bastaría escoger el
máximo valor de voltaje corno el correspondiente al ángulo cero (0 = 0°)
para que quede alineado e! sistema, pero esto no siempre sucede en la
practica.
El criterio que se adoptó aquí para la alineación, es el de que la campana
sea homogénea con respecto al eje y (ángulo~0), para lo cual primero se
detecta el valor máximo de voltaje y después se escogen valores de ángulos
que corresponden a voltajes mayores al 90% del voltaje máximo,
obteniendo de esta manera una serie de datos de ángulos, posteriormente
se detecta el máximo y mínimo valor de ángulo de esta serie de datos,
luego el valor de ángulo que debe recorrer el disco es:
A6' = (6'max-6'niin)/2l y si Á£es positivo la curva (campana) se recorre a la
derecha, y si A# es negativo la curva se recorre a la izquierda.
Para entender de mejor manera este procedimiento obsérvese
detenidamente el ejemplo de la figura 4.4; donde para voltajes mayores al
90% de Voltaje máximo <9max=0°, £min = -2° A(9 = (00-(-2°))/2 = l°, por
lo que la cuiva debe recorrerse 1° a la derecha. El valor de 90% se escogió
debido a que en este punto la pendiente empieza a crecer rápidamente, y a
pruebas realizadas con otros valores.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
60
FIG. 4,4. Curva del sistema desalineado
La gráfica del sistema alineado del mismo ejemplo queda como se muestra
en la figura 4.5
FIG. 4.5. Curva del sistema alineado
4.2.2.2. Subrutina que mueve el motor para tomar lecturas de voltaje
Esta rutina tiene como objetivo mover el motor de pasos conjuntamente con
el disco y tomar lecturas de voltaje. Vale recordar que cada paso del motor
mueve al disco 0.2088° por lo que la programación esta hecha casi en su
totalidad usando pasos y no grados, con una equivalencia aproximada de 1°
= 5 pasos.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
61
Cada paso por defecto, el motor lo realiza en un intervalo de tiempo de 300
ms, pero como ya se indico anteriormente el usuario puede variar este valor
que se guarda en la variable Tmuestreo; esta variable corresponde al
periodo con que se llama a la subrutina tmrPulso_timer.
El recorrido que hace el motor de pasos para tomar datos se puede ver en la
figura 4,6. Este empieza en una posición inicial puesta por el usuario
((9 = 0°), luego hace girar al disco 6° en sentido antihorario (paso 1 parte
izquierda), después gira en sentido contrario 19 ° (paso 2 parte derecha), y
en cada paso del motor de este recorrido (20°) se llama a la función de
adquisición de datos (leer_voltaje) y se almacena el voltaje adquirido en una
variable tipo vector voltaje®, por ultimo esta rutina hace que el disco vuelva
a su posición original (paso 3).
FIG. 4.6. Recorrido del motor para la toma de medidas
En la figura 4.7 se puede ver el diagrama de flujo de la subrutina que mueve
el motor de pasos.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
62
NO SI
7pulso=llf(pulso<0,3, pulso)
3pulso=IIf(pu!so<=3, pulso, 0)vtoOut 888, 2 A pulsopulso = pulsocUp=cUp + 1
+ 1
14Fin del
movimientodel motor
picGraficoVA.PSet"gráfica Voltaje vs ángulo"\bOut 888, 2 A pulsocDown=cDown~ 1pulso=pulso- 1
12F I N .
tmrPulso Timer
FIG. 4.7. Diagrama de flujo de la subrutina de movimiento del motor de
pasos para tomar lecturas de voltaje
DESARROLLO DEL SOFTWARE 63Programación en Visual Basic y diagramas de flujo
4.2.2.3. Función leer_yoltaje para la Adquisición de datos
Además de las herramientas ya nombradas ¡nicialmente, en este programa
se utilizó otras tales como: ¡os módulos estándar, los procedimientos y las
funciones.
Los módulos estándares son contenedores de los procedimientos y
declaraciones, a los que tienen acceso otros módulos de la aplicación
(formularios). Pueden contener declaraciones globales, (disponibles para
toda la aplicación) o al nivel de módulo de variables, constantes, tipos,
procedimientos externos y procedimientos globales. El código que se escribe
en un módulo estándar no está ligado necesariamente a una aplicación
determinada; si tiene cuidado de no hacer referencia a controles o
formularios por su nombre, puede reutilizar un módulo estándar en distintas
aplicaciones. Un procedimiento (sub) es un subprograma, que es un bloque
de código que se ejecuta como respuesta a un evento que realiza una serie
de instrucciones.
La función (Funtion), es un procedimiento diferente que puede tomar
argumentos, realizar una serie de instrucciones y cambiar el valor de los
argumentos. A diferencia de los procedimientos Sub, los procedimientos
Function pueden devolver un valor al procedimiento que realiza la llamada.
Para entender la tarea que realiza la función !eer_yoltaje para la adquisición
de datos, se debe explicar ciertos detalles que se describen a continuación:
En el capítulo III se indicó que para adquirir datos por el puerto paralelo
según la configuración del modulo digital, se debe leer un byte en pedazos
de 4 bits utilizando los comandos de lectura y escritura descritos en el
numeral 4.2.1. Para tomar la lectura de un byte correspondiente al valor de
voltaje, se debe utilizar dos bits de control y cuatro bits de status. El bit 2
del bus de control (pin 16 del puerto paralelo) habilita la conversión de
datos del CAD0804 (WR) en una transición de alto a bajo, mientras que el
DESARROLLO DEL SOFTWARE 64Programación en Visual Basic y diagramas de fluj o
bit 1 del bus de control (pin 14 del puerto paralelo) habilita al multiplexor
(A/B) para la lectura de manera que, en 1 lógico se lee los 4 bits menos
significativos y en O lógico los 4 bits más significativos. Los 4 bits que se
utilizan en la lectura son los más significativos del bus de status (7,6,5,4) que
corresponden a los pines 11,10,12,13 del puerto paralelo; todos estos bits
son negados por el multiplexor, y además el bit 7 (pin 11) es negado por el
puerto paralelo quedando con su valor original ya que ha sido negado 2
veces. Para obtener el valor real del byte de lectura, se necesitan de dos
máscaras. La primera máscara niega los bits 6,5,4 y traslada los cuatro bits
a un registro LSB como bits menos significativos, los cuatro bits más
significativos quedan en cero (OOOOXXXX); la segunda mascara solo niega
los bits 6,5,4 y los cuatro bits menos significativos quedan en cero
(XXXXOOOO) estos bits se guardan en un registro MSB, el byte final
correspondiente al valor de la señal es la suma de LSB y MSB. Es
importante aclarar que en esta función trabaja solo con valores decimales
(0-255) para después convertirlos a valores de voltaje.
Como ya se menciono en este capítulo, uno de los parámetros importantes
es el número de medidas por cada lectura de voltaje (nMedidas), que por
defecto es 100 y puede ser cambiado por el usuario, esto quiere decir que
en cada posicionamiento del disco, y obviamente del sensor (6 °), la función
!eer_voltaje realiza n medidas de la señal y luego el valor final de la lectura
de voltaje es el promedio de estas medidas, de tal manera que esto sirva
como filtro digital de señales indeseables.
Otro parámetro importante es la menor velocidad de conversión de datos del
módulo digital frente a la velocidad con que el procesador ejecuta una
instrucción, pudiendo darse el caso de que se repitan las medidas del
sensor; para que esto no suceda se coloco un retardo en la función de
adquisición, de tal manera que la velocidad del procesador en tomar una
medida de voltaje sea menor a la velocidad de conversión de los datos de la
etapa digital. Con este retardo el programa se sincroniza con el módulo
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
digital únicamente habilitando los pines correspondientes para la adquisición
de datos, procedimiento que ya se indico anteriormente.
Para entender de mejor manera la tarea que realiza la función leer_voltaje se
puede ver el diagrama de flujo de la figura 4.8. y la configuración de la
tarjeta de adquisición y conversión de datos (capitulo II).
1INICIO
leer_voltaje
vbOut 890,6 (WR=1L)promedio = O
paraj = 1,nMedidas,1
vbOut 890, 2 (WR=OL y A/B= 1L)LSB = (240And(112Xor vblnp(889))) /16 "mascaral"vbOut 890, O (WR=OL y A/B= 1L)MSB = 240 And (112Xorvblnp(889)) "mascara 2"numero = MSB + LSBvbOut 890, 4Retardopromedio = promedio + numero
promedio = (promedio / nMedidas)*3/255leer_vdtaje = promedio
7FIN
leerjvültaje
FIG. 4.S. Diagrama de flujo de la función leer_voltaje para la adquisición de
datos.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas cíe flujo
66
4.2.2.4. Subrutina que mueve el motor para alinear el sistema
Esta subrutina hace mover el motor de pasos A& °, que se necesita para que
el sistema se quede alineado según lo explicado en el Ítem 4.2.2; la figura
4.9 muestra el algoritmo utilizado.
INCIOtmrNuewcero Timer
pulso=llf(pulso<0,3,pulso)cDown = cDown - 1\toOut 888, 2 A pulsopulso = pulso - 1
cmdEmpezar_Click
pulso=llf(pulso<=3,pulso,0)vbOuf 888, 2 A pulsopulso = pulso +1cUp = cUp + 1
FIG. 4.9, Diagrama de flujo de la subrutina que controla el motor de pasos
para la alineación del sistema.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
67
4.2.2.5.Toma de medidas a diferentes concentraciones
En al figura 4.10 se presenta el diagrama de flujo para tomar las medidas
de voltaje de diferentes concentraciones
Seteo de algunos parámetros(nMedidaSjTmuestreo)
10
cmdEmpezar_CI¡ck
11
ángulo = int(txtAñgulo / 0.2088)
12tmrPulso Tímer
13cierre
cmdEmpezar_C!ick
cmdMed¡cion_CI¡ck"tomar medidas deotra concentración"
I cmdEmpezar_Cück
cmdRegresar_CI¡ck"tornar medidas de la
misma concentración"cmdEmpezar_CIick
cmdAlineacion_Click(llama a frmAJineacion)
cmdZimm_CI¡ck(llama a frmZimm)
cmdParar Click
Deshabilita tmrPulso_Timer
cmdlnicio_Click(llama a frmMain )
cmdSalir Click~
9Fin
FIG. 4.10. Diagrama de flujo para tomar ¡as medidas de voltaje de diferentes
concentraciones
DESARROLLO DEL SOFTWARE 68Programación en Visual Basic y diagramas de flujo
En e! formulario frmMedidas se toman las medidas de voltaje para diferentes
concentraciones según los datos ingresados al inicio, solo dos parámetros
se puede cambiar aquí, el número de medidas por cada señal (nMedidas) y
el periodo de movimiento del motor (Tmuestreo). Las lecturas tomadas se
las guarda en un archivo *.txt con el formato indicado en el Ítem 4.2.1,
4.2.2.6. Obtención de las curvas características de dispersión
Por último el programa presenta varias curvas a través del formulario
frmZimm; este necesita que el usuario cargue un archivo *txt con los datos
de la solución en el formato ya especificado en el ítem 2.2.2. Básicamente
se grafican las curvas características voltaje vs ángulo de las diferentes
concentraciones de la solución en la misma ventana gráfica. Luego se pasa
a obtener el diagrama de Zimm estudiado en el capítulo II que es la parte
más importante de los resultados que se quiere obtener.
Como ya se señalo en el capitulo II, en el diagrama de Zimm se extrapola
KCIR& a Concentración^ y anguloso en la misma curva. Los valores de
Ro se calculan con la ecuación 2.13; si se ve detenidamente la ecuación
existe un término [I/lo] que es remplazado por [V/Vo], por lo que no se
necesita transformar la señal de voltaje proveniente del sensor a su
equivalente en intensidad de luz, cosa que ya se había indicado en el
capítulo III y no esta por demás repetirla; K es una constante igual a 1.4, r
es la distancia del sensor a la muestra (0.04 metros), la concentración debe
estar en [gr/It], y el ángulo en radianes.
En la figura 4.11 se muestra el diagrama de flujo para obtener las curvas
Voltaje vs ángulo y obtener el diagrama de Zimm.
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
69
(Cargar dalos dearchivoen variables)cmdArchivo Click
Se resetea los cuadrosde gráfico y las listas devalores
25cmdlnicio_Click
(llama a frmMain
26cmdSalir_Click
i
27Fin
cmdResetear_ Click
1r
4Se resetea ios cuadrosde gráfico y las listas devalores
cmdSalir Ciick
6Fin
7cmdlnicio_CHck
(llama a frmMain)
cmdGraflcas Click
picGraficoVA ,pset (Xi.Yi)(Gráfica el voltaje vs ángulo dede iodas las concentraciones)
10 1cmdDiagZÍmm_Click 1
DESARROLLO BEL SOFTWAREProgramación en Visual Basic y diagramas de fluj o
70
16paraj-l^txtConcentraciones.lpara, j=1, puntos,1
12(extrapolación a ángulo=0)X(ilj)=(Sin(ang(ij)/2fc3.14/180))A2+concentrac¡on(¡)/1000*1,4KCRo(i,j)-(1.4*concentracion(i)/1QOO)/((vo!(ij)/2.2r(0.04)A2/(1+(Cos(ang(ij)*3.1415/180))A2)*1000000)sumX = sumX + X(Í, ])sumY = sumY + KCRo(i, j)sumXY = sumXY + X(i, j) * KCRo(¡, ])sumX2=sumX2+X(U)A2
13cierre j
14b=(sumY*sumX2-sumX*sumXY)/(puntos*sumX2 - sumX* sumX)a = (sumY - b * puntos) / sumXKCRo(¡, 0)=a*X(iJ 0)+b(Ecuación KC/Ro vssinA2(0/2)-fKCa ángulo = 0)
para, j^O, puntos, 1para,i=1J2*txtConcentracíonesJ1
17(extrapolación a concentración=0)sumX = sumX + X(¡, j)sumY = sumY + KCRo(i, j)sumXY = sumXY + X(i, j) * KCRo(i, j)
DESARROLLO DEL SOFTWAREProgramación en Visual Basic y diagramas de flujo
71
19cierre i
20b=(sumY*sumX2-sumX*sumXY)/(4*sumX2-sumX*sumX)a=(sumY-b*4)/sumXX(Qj)=(Sin(ang(QJ)/2*3.14/180))A2KCRo(0Jj) = a*X(0, j) + b(Ecuación KC/RovssinA2(0/2)+KCa concentración=0)
22cierre
cmdDiagZ¡mm_Clic
FIG. 4.11. Algoritmo para obtener el diagrama de Zimm
La extrapolación que se utiliza en el algoritmo para obtener el diagrama de
Zimm (Fig 4!11) es lineal, de la forma Y=aX+b con un modelo que presenta
los siguientes valores de a y b:
— b* sumKa =
b =
suniXI
siirnY — asumX
(4.1)
(4.2)
donde:
sinnX =Sumatoria de X
sumí- SumatoriadeY
Z - Sumatoria deX*Y
= Sumatoria de X2
DESARROLLO DEL SOFTWARE 72Programación en Visual Basic y diagramas de flujo
n= número de puntos (x,y)
La ecuación 4.1 y 4.2 forman un sistema de ecuaciones de 2 incógnitas, a y
b, resolviendo este sistema el valor de b se lo determina con la siguiente
fórmula:
_ sumí * siífTíX2 — sumX * , _.n * sii)7iX2 - siirnX * stimX
y el valor de a se lo encuentra con la ecuación 4.1.
Para mayor información del programa se presenta el código fuente en el
anexo C, y el manual de usuario en el anexo D.
ANÁLISIS DE RESULTADOSEquipo dispersor de luz
73
5. ANÁLISIS DE RESULTADOS
A continuación se presentan los resultados obtenidos en la implementación
del equipo dispersor de luz, así como un análisis de las pruebas que se
realizaron con el sistema de adquisición y procesamiento de datos.
5.1. EQUIPO DISPERSOR DE LUZ
El equipo dispersor de luz quedo implementado como se muestra en la
figura 5.1, que es una foto del equipo real.
Fig 5.1 Foto del equipo dispersor de luz
Un elemento que no se ha nombrado es el computador; las características
del PC que se puede utilizar para este sistema son las de cualquier equipo
que tenga un sistema operativo Win95, win98 o millennium (32 bits), pero
no NT por razones ya explicadas en el Ítem 4.2.1., y además debe tener el
puerto paralelo universal (DB25 hembra).
ANÁLISIS DE RESULTADOSPruebas del sistema
74
5.2. PRUEBAS DEL SISTEMA
Las pruebas que aquí se presenta son para demostrar que el sistema en
realidad es una herramienta que ayuda al estudio de las propiedades de las
soluciones moleculares y un punto de partida para las personas que deseen
continuar en la investigación de este campo.
Con este propósito, se recurre a obtener medidas para graficar curvas de
voltaje vs ángulo del láser sin la cubeta, de la cubeta sin muestra, de la
cubeta con agua y de dos soluciones, leche y bicarbonato, ya que se
consideran muy adecuadas para mostrar que el dispersor de luz funciona
correctamente. A continuación se presentan las curvas antes
mencionadas.
• Curva del láser
Fig 5.2 Curva de voltaje vs ángulo del láser (sin cubeta)
ANÁLISIS DE RESULTADOSPruebas del sistema
Curva de la cubeta
Fig 5.3 Curva de voltaje vs ángulo de la cubeta (sin solución)
curva del agua
Fig 5.4 Curva de voltaje vs ángulo del agua(sin soluto)
Con estas gráficas (5.2, 5.3 y 5.4) se puede notar la baja absorbancia de la
cubeta comparando la curva 5.2 con 5.3, mientras que en la curva 5.4 se
puede ver que la campana es un poco más ancha debido a una pequeña
dispersión que presenta el agua.
Ahora con las dos soluciones, para el análisis de funcionamiento del
dispersor de luz; se obtienen las siguientes gráficas:
ANÁLISIS DE "RESULTADOSPruebas del sistema
76
Leche
-¿ CD OD OJ CO CDen
co co CD n - r tn t
CU CD CD CD CD
-^ t -COCM(yjCOCDOJCDCDOvJLnCDCMf- -Os]ÜDrv-r-_cQoooocncr)cr)ooooCDOOQCDCDCDCD,— i— i—i—CDCDCDCI iOCDCDCDCDCDCDCDOOCDCDCDCDCDCDCDCDcriCDCDCDCDCDCDCDCDCDOCDCDCDCDCD
COCOf--iXiirj'^-OQCNJ
F/g 5.5 Curvas características de dispersión y diagrama de Zimm de una
solución de leche a diferentes concentraciones
ANÁLISIS DE RESULTADOSPruebas del sistema
77
Bicarbonato
C D C D C D C D C I l O C D C D O C D C D C DC D C D C D C D O C D C D a C D C D C I S
CD C D C D C D C D C D C D O C D C D C D C DO O O O O O O O O O O C 3CD* O CD CD O O* O O" O O CD CD
o QO CD co T—s en r^ Ln co_c= o en en oí oí co cd" co" co" coi—• T— O CD O CD CD O CD CD C3
Fig 5.6 Curvas características de dispersión de una solución de
bicarbonato a diferentes soluciones.
ANÁLISIS DE RESULTADOS 78Pruebas del sistema
En el ejemplo de la figura 5.5 se pueden ver las curvas de dispersión de luz,
y el diagrama de Zimm para una muestra de leche con 4 concentraciones
diferentes 2, 5, 7, 10 [g/lt]. También se muestran 2 ecuaciones de
extrapolación a ángulo-0 y a concentración^, como ya se indicó
anteriormente estas dos ecuaciones son las que dan información para que
el interesado pueda determinar el peso molecular y el tamaño de las
partículas.
Otro caso es el de la figura 5.6 que solamente muestra las curvas de
dispersión del bicarbonato para las concentraciones 1,3, 4, 6 [g/lt] y no así
el diagrama de Zimm, esto es debido a que existen lecturas de voltaje igual
2 Oa cero, y en el diagrama de Zimm se gráfica [KC/Ro] vs sin (—) +KC, pero
Ro es directamente proporcional a la lectura de voltaje, por lo tanto, si el
voltaje es cero, [KC/Ro] tiende al infinito y no se puede realizar el diagrama
de Zimm.
Esto indica que este sistema no siempre puede contribuir con el diagrama
de Zimm para determinar el peso molecular y el tamaño de las partículas de
las soluciones, pero el interesado puede tomar los datos de la muestra, y
analizar posteriormente esta información; si es factible el usuario puede
realizar el diagrama de Zimm manualmente, para lo cual el sistema solo
contribuiría con la adquisición de datos.
CONCLUSIONES Y RECOMENDACIONES 79Conclusiones
6. CONCLUSIONES Y RECOMENDACIONES
Este capítulo tiene por objeto presentar las conclusiones y
recomendaciones finales en función de los objetivos y alcances del
proyecto; esto después de haber adquirido experiencia en el desarrollo del
mismo.
6.1. CONCLUSIONES
Respecto a la implementación del proyecto:
• No siempre el primer diseño realizado es la solución definitiva en la
obtención de un objetivo propuesto. En este caso, se tuvo que hacer
algunos cambios: se implemento otro soporte para la muestra ya
que inicialmente estaba en el eje del disco de acero, se recortó la
caja óptica y se aumentó una caja de madera (cámara), en el
sistema óptico se cambió una lámpara alógena por la fuente de luz
láser debido a que mostraba deficiencias de estabilidad en la
longitud de onda.
• Las pruebas que se realizaron ayudaron a solucionar problemas que
se presentaron durante el desarrollo proyecto.
Con respecto a la adquisición de datos se tiene:
• Existen varios tipos de sistemas de adquisición de datos, por lo que
se realizó un análisis previo para la implementación de este diseño,
donde el método seleccionado presenta buenos resultados,
• El uso del puerto paralelo para la adquisición de datos dependerá en
la mayoría de las veces de la velocidad del procesamiento de la
CONCLUSIONES Y RECOMENDACIONES 80Conclusiones
información requerida, de la distancia del cable usado para la
comunicación, y del tipo de aplicación a conectarse al computador.
• La tarjeta de adquisición y conversión de datos usando el puerto
paralelo es sencilla, y la limitación más grande para su uso es la
distancia (1.5m máximo).
• El diseño del sistema de adquisición de datos se realizó para utilizar
un computador con un puerto paralelo universal, antes que para un
puerto bidireccional, debido a la disponibilidad de los computadores
en la Facultad de Ciencias.
• El circuito para la adquisición de datos se diseño basándose en
fórmulas fundamentales y probadas, pese a ello, al construirse la
versión definitiva, se necesitó hacer ciertos ajustes por diferentes
razones.
• El uso del motor de pasos necesitó de un circuito de control que
maneja una corriente de aproximadamente 1.5 A, esto presentó
mucha interferencia en las señales provenientes del sensor, por lo
que se independizó la fuente de polarización del motor con la del
fototransistor y la del modulo digital.
• El modulo digital puede adquirir señales de voltaje Q-3V debido a la
linealidad del fototransistor NTE3038, aunque variando un
potenciómetro (R1=2KQ) en la etapa de amplificación, se puede
cambiar ia ganancia y medir señales de hasta 5V.
Con respecto al software se tiene:
CONCLUSIONES Y RECOMENDACIONES 81Conclusiones
• El Visual Basic es un lenguaje de fácil programación y de ambiente
Windows, lo que da mayor facilidad al usuario para el manejo dei
sistema.
• El Visual Basic no maneja directamente el puerto paralelo por lo que
se necesita de librerías externas al programa, en este caso se utilizó
un archivo DLL, disminuyendo notablemente la velocidad de
adquisición de datos.
• Los datos adquiridos para diferentes soluciones siempre se guardan
en un archivo con extensión txt, para el posterior análisis de
información computacional o manual.
Respecto a las limitaciones que se tuvo:
• Una de limitaciones más grandes que se presentaron para la
implementación del dispersor de luz, es la mecánica, ya que en el
país no existe una empresa que construya piezas de precisión a un
costo asequible.
• No siempre, en el programa aquí desarrollado se puede obtener el
diagrama de Zimm de las soluciones, ya que depende de las
características de dispersión que estas presenten; por ejemplo el
bicarbonato solución analizada en este proyecto.
Respecto al funcionamiento del equipo dispersor de luz se tiene:
• Con el desarrollo de este proyecto, El Laboratorio de Biomasa de la
Facultad de Ciencias tiene otra herramienta para el estudio de las
propiedades de partículas con un buen grado de eficiencia pese a
las limitaciones que se presentaron para la implementación del
equipo.
CONCLUSIONES Y RECOMENDACIONES 82Recomendaciones
• Superadas todas las dificultades se puede decir que el uso de la
técnica de dispersión de luz en una solución es una de las mejores
herramientas para el estudio de las propiedades geométricas y
físico-químicas de las partículas.
Como conclusión final se puede decir que en este proyecto se ha cumplido
con los objetivos propuestos inicialmente, ya que el sistema de adquisición
de datos, y en general el equipo dispersor de luz funciona correctamente; y
esto constituye un significativo aporte a la investigación que se realiza en la
Escuela Politécnica Nacional.
6.2. RECOMENDACIONES
Dentro de las recomendaciones es importante mencionar lo siguiente:
Si posteriormente es posible para este equipo se debería utilizaron otros
elementos más precisos como son:
• Un sensor óptico que corresponda en particular a la fuente de luz
utilizada (Láser), para evitar los problemas con la estabilidad de la
fuente, longitud de onda y la sensibilidad del detector.
• Un conversor con mayor resolución para tener mayor precisión en
las lecturas de intensidad de luz
• Se debe disponer de elementos mecánicos de bastante precisión
como son: tornillos de calibración, soportes, un sistema de nivelación
más eficaz, ect.
En lo referente a la adquisición de datos se recomienda:
CONCLUSIONES Y RECOMENDACIONES 83Recomendaciones
Para diseñar un sistema de adquisición de datos existen muchas
opciones, por lo que se debe hacer un análisis de costo/beneficio
antes de implementar un sistema de este tipo, ya que no siempre el
diseño más costoso o el de última tecnología es el más conveniente.
En el diseño y construcción de circuitos eléctricos; siempre se debe
aislar la fuente de polarización de una etapa digital, de una fuente de
polarización de un circuito que utilice una corriente relativamente
mayor a la anterior, debido ai ruido que se puede presentar en los
circuitos digitales.
BIBLIOGRAFÍA
• BIOQUÍMICA FÍSICAK.E. Van HoldeAlhambra1979
• DISPERSIÓN DE LA LUZ EN SUSPENSIONES DE CÉLULAS DELEVADURA (Trabajo de diplomado)José Ramón Cepero RiscoUniversidad de OrienteSantiago de Cuba 1994
• SISTEMA DE ADQUISICIÓN DATOS Y PROCESAMIENTO DIGITALDE LARINGOGRAMASRivera Rivera OlgaEPN1993
• DISEÑO Y CONSTRUCCIÓN DE PROTOTIPOS ELECTRÓNICOS YEL SOFTWARE PARA LA ENSEÑANZA DE CIENCIAS FÍSICASSojos Davales FranciscoEPN 1999
• OPTOELECTRÓNICA APLICADAH. Cárter y M. DonkerParaninfo 1981, Madrid
• OPTOELECTRÓNICA FUNDAMENTOS TEÓRICOS YAPLICACIONES PRÁCTICASDamayé RParaninfo 1974, Madrid
• INSTRUMENTACIÓN INDUSTRIALDr. Luis CorralesEPN Abril de 1998
• ÁLGEBRA DE COMUNICACIÓN Y CIRCUITOS DIGITALESBÁSICOSDoworatshek S.Prentice-HalI 1984
• ELECTRÓNICA TEORÍA DE CIRCUITOSBoylestad Robert, Nasheisky LouisPrentice-HallSexta edición
LA ESENCIA DEL VISUAL BASICMark Steven HeymanPrentice Hall
ENCICLOPEDIA DE ELECTRÓNICA INGENIERÍA Y TÉCNICAOcéano/CentrumSGrupo editorial Océano 1990
EECTRÓNICAA& COMPUTADORES CEKÍT
LINEAR DATABOOKNational SemiconductorCalifornia 1982
TRANSISTOR DATABOOKNational SemiconductorSanta Clara 1982
DIRECCIONES DE INTERNET
http://www. softcircuits.com/sw tools.htm
http://cic.ugr.es/tims.htm
http://www.berger-lahr.com/motors/
http://www.info-ab.uclm.es/asignaturas/425Q9/anumericQ.html
http://search.winnings.com/
http://mailweb.pue.udiap.mx/~ccastane/Analisis Numérico html/Lindley.html- Regreso 2
http://www.davinQptrQnics.CQm/Vector/ima1.htm
http://www.rmama.htm/
http://www.optoelectronica.htm/
ANEXO A 1 A
ANEXO A
En este anexo se presentadlas curvas""características de! fototransistor
NTE3038 que se obtuvieron con ayuda del fotodiodo MRD 510 cuyas
características se conocían..
Las principales curvas para una misma intensidad de luz de la fuente láser
se presentan a continuación:
La figura A.1 presenta las curvas de corriente de colectorvs voltaje de
colector para varias distancias en cm de la fuente de luz aííototransistor.
va. Vottaje i
6.00 }
3 4.00 »e ¿
.» •'»
* ://
r/g A.f Corriente vs Voltaje
-La figura A.2 presenta la curva de "corriente ce colector del fototransistor vs
la distancia en cm de! fotoiransistor al láser.
.ANEXO A 2A
CL
E
O
8.000 r~
7.000 -
6.000
5.000 •
4.COO
3.000 - •
2.DOO •-
1.000
Lectura vs. Distancia(foíotransistor)
^=0.9966
30.00 90.00. 1CO.OO 110.00 120.00 13Q.OO 140 O) t50.CC 160.00
Distancia £eroj
Fig A.2 Corriente vs distancia
La figura A.3 presenta ¡a curva del logaritmo natural de la corriente vs él
logaritmo natural de ¡a distancia.
2.500G r-~
2.0000 !
1.5000
1.0GOQ 1
0.500Q
L¡>!L) vs. L,n(O)
4.6DOO
G25x *• 11.444
r^
4.90G:Ln
*>"
Fig A.3 Ln(Corriente) vs Ln(Distancia)
ANEXO A 3 A
La figura A.4 presenta la curva de la intensidad de luz vs .la..corriente de
colector del fototransistor, en esta curva se puede ver que existe linealidad
en un rango de corriente, que es el utilizado en este proyecto.
1.5t-02
I.4S02
C' 1.26-02
=5, -i.OE-02- •'
f B.DE^OS
"JPa, 6.0E-Ü3"
4.G£-D3
2.0 £-03
C.D&-00 ^>
C.QG
Hmo ttifmnoso Y-S. C-orn'&nte íí
<js « o.ooart + 0.001R3 - 0.39S-9
1.00 2.00 3.00 4.00 5.00 6,00 T.GG a.GQ
F!g A.4 Intensidad de luz vs corriente
ANEXOB I B
ANEXO B
Datos de voltaje correspondientes a la dispersión de ia luz'cle la muestra de
leche a cuatro concentraciones diferentes 2, 5, 7, 10 (g/lt)
Nombre de la muestra:
Nombre del solvente:
Número de concentraciones:
Ángulo:
Leche f
Agua '
4
14°
Ii
Número de pasos: 135 •
Ángulo H
-13,990
-13,781
-13.572
-13,363
-13,154
-12,946
-12,737
-12,528
'-'12.319 •
-12,110
-11.902
-11,693
-11.484
• -11.275
-11,066
-10,858
-10.649 •
-10,440
-10.231
j -10,022
Voltaje [V]
2
0,0076
0,0079
0,0081
0,0034
0,0083
•0,0092
0,0093
0,0096
0,0100
0,0102
0,0106
0,0109
0.0112
0,0115
0,0118
0,0122
0,0127
0.0132
0,0136
0,0140
-09.314 0.0146
-09.605
-09,396
-09,187
-08,973
-08.770
-03.561
-08.352
-08.143
-07,934
-07,726
0,0152
0,0153
0,0164
0,0172
0.0180
0.0138
0,0192
0,0201
0.0212
0,0225
-07,517 0,0234
-07.308 0.0248
5
0,0176
0,0133
0,0201
0,0212
0,0221
0,0227
0,0234
0,0241
0,0247
0,0254
0,0262
0,0269
0,0278
0,0286
0,0294
0,0307
0,0318
O.Q331
0,0341
0,0353
0.0366
0.0379
0,0392
0.0405
0,0429
0.0451
0,0472
0,0493
0,0511
0.0529
0,0559
0,0588
: 0,0616
7
0,0282
0,0283
0,0295
0,0302
0,0309
0,0319
0.0328
0,0333
0,0346
0.0355
0.0364
0,0375
0,0387
0,0400
0,0412
0,0428
0,0445
0.0461
0.0478
0,0494
0.0515
0,0536
0,0553
0,0579
0,0600
0,0628
0,0656
0.0685
0,0713
0.0741
0,0776
0,0812
0.0847
j
10
0,0388 :
0,0401 j
0.0412 !
0,0425 :
0,0440 i
0,0454 :
0,0469 :
0,0483 -
0.0497
0,0512
0,0527
0,0542
0,0558 :
0,0573 -
0,0583
0,0612
0,0635
0,0659 '
0,0632
0,0706
0.0733 "
0.0769
0.0301
0.0833 •
0.0865
0,0907
0.0949
0.0992
0,1034
0.1076
0,1132
0,1187
0.1242
o o CD Co
O M 4^ CD -fr
O tO 10 tO (.n o ro O) co Oí
o 03 ro un 0)
o CO •v]
<L> o ro C
O M 4^
O N3
.fr
•v|
_x
O (O ~-l
.fr
_x
O OJ
tO ti; u
o O)
•vj
CJ o ÍO -fr —V
10 O 10 CO ro -fr o ro ce M -fr o OJ eo ro .i—
o -fr U)
M O .fr (0 (n OJ o co CJ
Ul
CU o 10 CO -fr
_x
O 03 OJ tn CO
o ro ui
OJ
o Oí
Co
N)
0)
O OJ
Ul
M (0 O OJ
0 tn CO o OJ
0)
CO ro
o o -fr 4^
O (O •vi
oí en o -r- _X
—X
CO o ÍO M OJ
01
O 03 -fr
— L en
o CD OJ
U)
tn 0 CO CD
Ó en o C J
U)
o co en ro CD o CO .fr (.n OJ
o Oí
l-o O)
_x
CO -v)
0 U)
O -M CO CO ro o 4^
_A —i
CO O OJ
Ul
LJ
CO
O .fr
CO to o oí
tn OJ
_L
_X
^1
0)
Ul
o -fr
•M 0 CD O OJ (n cu 4x
O to LJ
ID 10 —V
(0 -fr
^1
— L
-Jx
CO (.n O)
o en o (n tD o 0)
Ü)
_i
LJ
o o o o IO _v ín rO tu -i. -fr
Ul
-fr __x o en —i.
-vi
U) o OJ
U) ro to
ó LJ
10 0 (D to — i.
Cr>
• fr1
-M _x
•fr
tO tn 03
O en 0 en CD o OJ Oí
_!. o
o CJ
4X Co
IO 0 OJ en 03
_x
_L
^1 0)
Ul
o -fr --I
ri O) o O3
tí! tn .p.
i o LJ
0>
M O) X rn -^1 0 Ü) o ~--l
CO 10 ro o .fr ^J-
— i.
CO o 0) CJ1
f ,)
CO
[ o CJ
CO C,J en _x (n 0 tn ÍD o en o t j
CJ)
o 03 tn K)
CD
O 03
-fr en OJ
o — i 0 -fr .fr o (0 --( 0
1U
l
o 4^
_j.
— i.
Co
O C/) ro 0)
Ul
o 03
-fr i. en
i o M (n OJ o rn fo M en o e,J tn K) to o (*3
CJ en to O W (*)
ro ro
i o _j.
4-
OD
10 O .fr
f,) en 03
O C>3
O tn (D o 10 CO .fr —i. o OJ
OJ en co
i o CD --f
O O O3
.fr ro o K)
Co
M 4x
O 10 ro M -fr
O C/J
03
M 4^
O —i.
ro ~-l
tD O M CO M .fr
O 10 .fr --J —X
O M -^1
.fr-
_x O C/3
K)
CO
O
i O to 0 co co o to -fr co •fr o K)
10 í,3 en o 10 O)
C,J
Ul
o (j3
10 (n O3
i o ÍO to CO ~-J o 10 —i
-X CK
O IO —X
—X
CO o 10 tn 4S-
•*-! o 03 Iv)
l T
OJ
Ó M en n O3 o — k.
-4 0)
Ul
O 10 0 0 o o 10 4^
4^-
--I
O e/3 _ j-
en co
i o ro --I
_i
-fr o _¿.
-fr _i
10 o co -fr --I o M (0 en OJ o í/30 eo .fr
i o to eo M O3
O — X
—X
--I
0)
O M en 03 o 10 to ~-J _i
o t/J o N)
tD
Ó C>3
—X
f-) to O _v n 0 o o 01 en tD O 10 _x
~v|
OJ
O to co to 03
Ó O3
(>.)
.fr
_x
O 0 ro K)
-fr
O Ul
N 0) o M n tn -fr o to Co m CJl
i o OJ en ín o o 0 ^J 0 en o -fr
tu .fr o 10 C )
_i
to o 10 ce-
ro
o OJ •vi
íh CD O 0 en 01
Ul
o -fr _x to O en M CD O K)
•^1
N CD
i O OJ
eo m ~-i
o 0 (n -fr ro o co -fr _x
O 00 en O3 o tv)
CT)
4x
ÍD
O -fr
_x
•1
Oí
O 0 fn _v
CO O 10 ~-l
CJJ
o ^1 en en o 10 en 10 10
i o -fr eo co •en o 0 .fr to -fr o to _x
Co o 01 -vi
— *• o 10 C
/J co en
i o 4^ ín eo .fr o 0 -fr cn co o —i
-fr ^1 o 010 o o to 10 rn co
i o 4*
CO n 10 o n -fr
.fr o o 00 to o ín _j.
CO O 10 _x
4x
_x
cb en o o 0 -fr _1
Co o _l
o _1 e» o -fr -fr •vj
o 10 0 ÍTi
Oí
1 o en M K) o o c-j
to co en o 0 co -fr ~x
O OJ
~vj
03 O co •vi
to
1 o en -fr N>
tD O 0 e,J
-J O3
O 0 CO (n CD O to _x to o ro en •vj
i O en 01 co co o 0 ÍO en ÍD o 0 (D í )
o o 10 .fr ÍD O co 0 ro
i o Ul
Co
4^ 0)
O o ÍO to Ul
o o 00 ÍO CTi
O —X
C» ro o •vj
_J.
CO
O U)
0 en Ul
o o (00 0> o 0 -v
|ÍO C
o o ~J.
M tD o o> -fr-
Ui
1 o U) ro oí Ji. O 0 co 0 CD O n •vi
"vj
_x o ti 00 ro o en -v|
ro
i o OJ -fr -v|
OJ o 0 ro CO ü> o n --i
co CD o Í.J co en o -fr (O ÍD
i O Ul
en Co ro o 0 M ro Ui
o 0 -v]
n Ul
o n co ro Co o -fr M O)
i O U)
00 co o o 0 M -M —1
'o 0 0)
-vj
03 o o to .fr —X o co (n OJ
1 o •vj
0 co CD o 0 ro (n ÍD o n en 45.
Co
O o C£ e» Co
O _x K)
£O CD
_i
.£• 03
4^
O O _i
ro o o 10 -J co o o tO Co --I o o en Oí
CO
_i
M ^1 en o o _!.
Oí o o IO (
0 O)
O O 4*. o u o o en -xi
OJ
_Jk
r-j
0) en o o _1_
Co
O o tO ti)
•P».
O o .|x _i.
IO o o Oí
10 co
o rn tn co O o to 10 o o tO o M o o -i*- 10 co o o en —X
10
O n> •p-
co o o 10 -1 o o ÍO — 1.
00 o o •P- •\--
cn o o Cn OJ en
o -t^ -í^ o o o ro to o o OJ to — 1 o o .[
X ai
_».
o o en lh to
O ro u) _.i
O o to en o 0 t*) 4^ -A O o 4* •M Co
O o en co 10
o 0 ro 10 a o 4^ o o o to en OJ o o > (0 .(i.
o o -si
t i O)
to ro —i
•P» o o -P-
en o o OJ fn en o o tn — i en o o ->J (;)
CO
to en 0 en o o en to o o OJ •1 to o o en 03
0) o o -M en to
to ro ÍO OJ o o tn co o o (0 to ÍO o o rn oí eo o o Co
í )
.-i
tO _v ro ~-l
o o en 4^ o o 4X o en o o rn ^\O
o o CO OJ OJ
co (0 •^1 Co o o -1 IO o o -p-
to (O o o en o C_J o o Co oí en
coi
--]
o o o ro o o 0 -p-
fn _V o o rn 10
CO
O a ÍO t i
--i
co rn rn _ x o o co Co o 0 Jk -^1 to o o rn CJl
0) o o to -F^ to
CO ro th to o o to 10 o o -[^ (t)
OJ o o rn OJ en o o to to ro
co _!.
.p, 0) o o M n —i.
o 0 rn — V
_x
O o ^1 -ji-
OJ o _
.v 0 (0 .1
-^1 to (0 -p- o o _i
ro o o rn M to O o -H Ü -A O
i
0 ~v|
en
-^ -i
N) en o o to en o 0 tn rn ÍO o o -^1 ^1 Ü) o _x
_x ro 10
--I
rn ..i-
^J o o ro •t* o n ui
co CO
O o O3 ro o _v „!,
OD
^1
^1
(0 0 Co
O q 4^. Co
Q O rn —X en o o ro 4x -*i
o lo -(^ to
-*!
n to ÍO o o tn ÍO o r» rn -£> Co
O o ro ro co o 10
(O CO
0) ro ro o a o to _
_!.
o o en --]
05
O O ÍO .£• _x
O r,j
rn OJ
en rn ro to o o co en o.
o -i
0 en o o to-
O:< co O _L
-IX
M en
o> -^ •-I
eo o o to en o o ~vl
OJ to o 0 ÍO en o .ti.
to to
en to rn 4^ o o 0 en o 0 ~-l
-*!
_i
O 0 00 to a rn •-i
to
0)
0 rn en o p n to o n N ÍO Co
Q —i
M ÍO O a> .fi- en
en ro -p» en o o ro en o 0 CO to en o IÍ CO to o -4 —V
Co
en rn ro co o o (TI
to o o ro rn ÍO o 10 .¡i. to o ro 0 to
en 4^ N) to O o -M a» o 0 to r )
Q O ÍO -X to Q —\ ro ai
~v|
en M 10
O O q ro en o 0 to J± -i o ro ~-l
OJ o —i
ro -^1
10
en o .i o o _i
00 o o —1
co o .£• -^ ~-l
o 10 0 rn a>
-^ ro a ro o o -í —i.
o o co to o tn _i
eo o to _i
-Ix
~J-
-^ rn ÍO A o o m co o "-i.
—X
.(x •^ O rn 0 o o 10 10 rn co
• to ro en o o to -fx o M _!.
CO
O rni
_i. o to (0 to en
4x
—i.
-v|
O)
O o -.
00 o KJ --1 0) o en en o to tn M 10
eo (O O) -vi
o o -í to o ro .£• -^ o CO
t.Jl
OJ
O to rn -£-
to
OJ M tn Co o o en en o 4=-
—i
IO O íO 10 to o 10 -^ -J en
OJ tn en u o o o ü) o -1^ to 4^
O to o _v ro o 10 00
10 —1.
eo ÍO -f- o o N)
-I*. O en ^1 en o to o to .( o to ro rn en
OJ
-JL
OJ to O -A.
O O o Ü) en to o to _!.
~-l
U) o to tn M OJ
ro to to eo o -J-
M 0) o -J en OJ o 10
10 -vi
__x
O OJ
O w ÍO
ro - — i-
4^-
O -± _i to O 0
34x
^1
O ro OJ en OJ o OJ
0 ÍO 4^
ro en 0 <j) o -j. ai
en o ro o o u o to •r^ 4x i o OJ
_v tn CO
to to to •vj
o to _L LO o to —1
_».
eo o 10 en .(* "vj
o OJ ro t.j
OJ
I o td cd
.ANEXO B 4B
11,693 | Q.Q109 | Q.Q269 | 0.0375 | Q.Q542 |
11,90212,110--12,31912,52812,73712,94513,15413,36313,57213,73113,990
0,01060,01020,01000,00960,00930,00920,00880,00840,00810,00790,0076
0,02620,02540,02470,02410,02340,02270,02210,02120,02010,01830,0176
0,03640,03550,03460,03380,03280,03190,03090,03020,02950,02880,0282
0,05270,05120,04970,04830,04690,04540.04400,04250,04120,04010.0388
Tabla B.1 Datos de la m-uestra de leche
Datos de voltaje correspondientes a la dispersión de la luz de una muestra de
bicarbonato a cuatro concentraciones diferentes 1. 3, 4, 6 (g/lt)
Nombre de la muestra: . |
Nombre de! solvente: ;
Número de concentraciones; i
Ángulo:
Número de pasos:
Ángulo [°]
-13,99
-13,78
-13,57H 't ^ C:
-lo, JÓ
| -13,15
i -12,95
I -12,74
-12,53
-12,32
| -12,11
-11,90
-11,69
-11,48
-11,28
-11,07
-10,86
-10.65
1
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0.0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
1. . . . . J1
Voltaje
3 i
0,0000 i
0,0000 ]
0,0000 j
0,0000 1
0,0000 10,0000 ;
0,0000 j
0,0000 1
0,0000 !0,0000 j
0,0000 !0,0000 1
0,0000 i
0,0000 1
0,0000 |
0,0000 !0,0000 !
Bicarbonato :
Agua
4 :
14
135
[V] :
4
0.0000
6
0,0000 '
0,0000 0.0000 1
0,0000 0,0000 i
0,0000 0.0000 '
0,0000 0,0082 '
0,0000 0,0082 :
0,0000 0,0094 i
0,0000
0,0000
0,0094 i
0,0106 :
0,0000 0,0106 :
0,0000 0,0118 :
0,0000 0,0118 i
0,0000
0,0000
0,0082
0,0082
0,0082
0.0141 :
0.0141 •
0,0165 i
0,0165 f
0,0188 í
1 l_J
_x -[ Oí -i —X o oí en o OJ
Oí
CD O ro 10 .(X o —1
~-t
Cn
CJ1
! 0 _x en ~-l o -*l
-M en en o 10 CD
CO O 10 —X
u> o _x
O) o en
i o _x CD LO O Oí
LO LO tu O _X Co
M O _X LO OJ o _x
-fx
_x
10
t_)
ro o CU o -p-
ro OJ en o 10 o —1.
U'i
o _L
— *• •s U)
LJ
10 OJ LJ
O OJ
U) -(^ ~-l
o _X OJ Ln o _x co .1- o o CD
-|x
L">
10 un —¿.
o to Co
K)
-K O —x
-M U)
0 — 1. •r» UJ o o UJ
0 U)
! LJ
M ^1 O 10 IO GJ Ln o —X
tn ID o o M -ix o LJ
CU •Fx
-M
LJ
10 CD 10 o _x
O)
-IX -v]
o o [0 -IX o o o U) o CJ
LU ro .|X
1 0 LO -i
LO O *— X to ID ÍO O O -FX _x
O O -fx •H o o LO LJ
LJ
i O LO OÍ
-|x O —X
LJ tn tu o o -í --I
o o 00 Uü o o ^ Ln LO
1 C~)
LO (-Ti en o o -xl
CD
LJ o o ~-l
O)
0 o íO .(X o o —1 to l^
1 o OJ •H 0) o o --i
(J Ü) o o C
O .[X n o -.1 _x
O I_J •1 (_) ü)
[ o eo (O ~-l
o o en LO
LO o o -^1 ~" o o o u o 0 O)
en UJ
0 -px _j-
CO O Cl
í/J fn LO o o 10 -1^ o o en Ul
o o U)
OJ c.n
0 -e-
C;J
ÍD O o to ÍO .^ O o TO
Co
0 o _!. o o Ü)
_x
10
[ 0 -^ Ul
ÜJ o o to to 4*
O o -1 O) n o -f* —i
o 0 Ul
LO LO
n 4*-
00 O O 0 10 10 Oí
o o en O4 a o ,~\.
t» o o en O)
tn
o oí 0 _x o 0 M ro Oí o o to tu 0 o _x
00
O O en -f^
i 0 en K)
10 O O 10 10 -fx
O O _x
00 r> o (O 4x
O O en _x
00
i r> CJl .p.
LO O O to 10 o o o O") n o to -M-
o o -ti --I _x
0 en 0) -£• o 0 M to o o TO
10 0 O tn to o o -FX ~vj
_X
o en ro tn o o _A CO OD O O rx.
10 0 o en to o o -J^ .fx M
n O) n en o n —X no CD O O tn ÍD 0 O (0 CJl o 0 JX -fi
^1
0 O)
10 en o o —X
(Ti
en o o (0 Ln o o (0 Oí
o (~T
-fx to •F*
0 0)
4x
-H O 0 Jx O o ro en n o to .r* o 0 -px M -fx
0 en (T)
Co
O n _A
£•
O o to n o M -fx
O f~i
-ix n o
0 O) ro (O o 0 _k
CO o o — J.
10 0 o t~l
o o 0 .fx n o
0 ^1 _L o o 0 —X
—X
CO o o ro TO o o r> o o 0 CO -1 en
0 •M fO o 0 —X
0 en o o ro co n o -*i
en o ri (0 -l
en
n -*j
tn 10 o D o (O -£•
o o CT> cj-i
0 O --I
O)
O n ÍO en eo
n -*1 LO O n o TO
1
ro o o O)
CJ1 n o en 03 O 0 (0 en LO
0 ^1 en w o 0 0 0 o o o .£-
0 o rn OJ o o OJ M to
n TO
__!.
-fx
O (-)
0 0 o o o -|x n o -|x o n (0 M ÍD
n TO
CO Ln o 0 0 0 o o o 10 CD n o -t* —A
O n co-
o en
0 TO en O) o o 0 n o o o i.
CO n o 10 CO CJ n co n 0)
0 TO
•M •1 O 0 n n o o o _1
03 0 o K)
to o o ro TO to
0 TO
CO CO O 0 0 0 o o o o en n o -A co o n M ro 10
n CO __v
CD O 0 0 0 o o o 0 O)
0 o _J.
CO o n M rn co
0 (O 4^ O O r> o 0 o o o co 4x 0 O w^
Co
0 O M tn CD
0 ÍO n> _i
o 0 0 0 o o o en 4x 0 O 0 0> o 0 M CO en
0 ÍD ro o 0 0 0 o o o ro ro 0 o n en O o M CO en
O1
0 ro o 0 0 n o o o fo ro n o 0 en o 0 M _x to
_x
O to eo o o 0 0 o o o ri o 0 o (O •tx o n to ro
_x o -fx
-fx
O 0 O 0 O O o 0 o 0 o (0 -IX o n ro TO
ANEXO B 6B
.
-01,25
-01,04-00,84-00,63-00,42-00,2100,0000,2100,4200,6300,8401,0401,2501,46.01,6701,8802,0902,3002,51
02,71• 02,92
03,13
03,3403,5503,7603,9704,1304,3904,5904,8005,01
05,2205,43
05,6405,8506,0606,26
06,4706,6806,8907,10
07,3107,5207,73
1,53281,87062.06472,16472,17652,18822,2000
2,18822.1765
2,1647
0,40000,49090,61180,83531,22001,45561 ,5260
1,44711 ,22070,8235
2,0588 0,61182,00511,8438
0,48530,3882
1,6296 0,30591,3059 0,21181,0219 0,1882
0,3176
0,36470,49410,7059
0,96471,25881,27061,25881,00000,72580,49410,38820,25880,21930,18820,1558
0,8082 0,1412 0,14120,6235 0,1294 0,1133
0,22350,27060,31760,4353
0,61130,7529 j0,78820,75290,62350,47060,34120,27340,2235
0,18820,14120,11760,10590,0941
0,4842 0,1176 0,1059 0,0824
0.3882 0,0941 0,0824 0,08000,3059" 0,082"4" 0,0767 0,0800 ¡ '. ' '0,2471 0.0706 0,0538 0,07760,1 882 0,0588 0.0471 0,07290,1412 0,0529 0,0435 0,07060,1059 0,0506 | 0,0403 0,06820,0751 0,0471 0,0381 0,0647 j0,05880,0481
0.0447 0,0365 0,06120,0424 0,0341 0,0588
0,0471 0,0388 0,0340 0,05760,0412 0,0353 | 0,0318 0,0553 •0,0294 0,0329 | 0,0314 0,0529 í0.0294 0,0329 i 0.0294 0,0506 IQ;0235 0,0306 i 0,0271 0,04820,0235
0,02120,01880,01880,0153
0,0306 \7 0,0471 !
0,0282 0,0224 0,0459 i0,0282 i 0,0220 0,04470,0259 j 0,0200 0,04350,0235 : 0,0200 0,0424 :
0,0153 0.0212 : 0,0176 0.0412;0,01530.01180,0118
0,0212 0,0171 0,0400 ;
0.0188 0,01650.0188 0,0160
0,0094 0,0165 0,0153
0,0388 ;0,03760,0353 ;
0.0094 0.0165 0,0150 0,0353 i
ANEXOB 7B
07,93
08,14
""08,35
08,56
08,7708,98
09,19
09,40
09,61
09,81
10,02
10T23
10,44
10,65
10,36
11,07
11,28
11,48
11,69
11,90
12,11
12,32
12,53
12,74
12,95
13,15 •
13,36
13.57
: 13,78
| 13,99 •
0,0082
0,0082
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
O'.GOGO
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0:OOQO
0,0000
0,0000 .
0,0000
0,0000
0,0000
0,0000
0,0141
0,0141
0,0129
0,0118
0,0118
0,0110
0,0106
0,0106
0,0094
0,0082
0,00820,0000
0,0000
o;oooo -0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000 "
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0000
0,0141 0,0329
0,0140 0,0329
0,0129 0,0306 '
0,0124 0,0306.
0,0118 0,0282
0,0117 0.0282
0,0118 0,0259 I
0,0106 0,0259 j
0,0106 0.0235 Í
0,0106 0,0235 Í
0,0094 0,0212 j
0,0094 0,0212 !
0,0094 • O.Q188 !0,0082 0,0165 j
0,0082 0,0165 i
0,0082 0,0141 !
0,0000 | 0,0141 j
0,0000 ¡ 0.0118 ;
0,0000 ! 0,0118 i
0,0000 i 0,0106 :
0,0000 ! 0,0106 i
, 0,0000 0.0094 :
0,0000 i 0.0094 :
0,0000 ! 0.0082 :
0,0000 ! 0.0082 ;
0,0000 0,0000 i
0,0000 Í 0.0000 ;
0,0000 ¡ 0.0000 -.
, 0,0000 0,0000 i
0,0000 ¡ 0.0000 •
Tabla 6.2 Datos de ia muestra de Bicarbonato
ANEXO C 1C
ANEXO C
CÓDIGO FUENTE DEL PROGRAMA
En la figura D.1 se presenta la pantalla del Visual Basic con él modulo
estándar y los formularios creados para este programa.
Ffg D.1 Ventana de Visual Basic con los formularios del programa.
ANEXOC
Código defrmCaratula "Carátula"
Option ExplicitDim i, buho, fin As Intéger Variables auxiliares para movimiento del buho,
'y fin de la ventana carátulaPrívate Sub Form_l_oad()
buho = Ofin = 0tmrTiempo.Enabled = True 'habilita e! timer tmrTiempotmrTiempo.lnterval = 250 'Setea el tiempo del timer en 1/4 de segundoFor i = O To 3
lblNombres(i).VisibIe = False 'Se oculta [as etiquetas de los títulosNext Í
End Sub
Prívate Sub tmrTiempo_71mer()For i = O To 3
imgBuho(Í).Visible = False "*' 'Se muestra las etiquetas de los títulossecuencialmente
Next íimgBuho(buho).Vis¡bIe = True 'Hace girar el buho utilizando 4 imágenes diferentesbuho = buho -f 1lblNombres(buho - 1),VÍsibIe =7ruebuho = llf(buho = 4, O, buho) " '
If fin = 20ThenUnload (vle. - Termina ia ventana de la carátula a los 5 segundosfrmMain.Show Va al formulario frmivlain
Eisefin = fin + 1
End If •End Sub
Prívate Sub cmdContÍnuar_C!¡ckQUnload Me Termina la pantalla de la carátula a los 5 segundosfrmMaín.Show Va al formulario frmivlainEnd Sub
Código de frmMain "Formulario principal"
Option ExplicitDim Numcon, i, ctte As Integer Variable auxiliar para el número de concentracionesDim lec_0 Variable auxiliar para tomar la primera lectura
Prívate Sub Fonm_Load()NumConcentracion = 1 'Indica que se debe empezar con la primera concentracióntxíNmedídas.Text = 2 * Fix(txtAngulo.Text / 0.2088) + 1 'Numero de pasos por Con.íxtConcentraciones_ChangenMedidas = txtNmedídaslec_0 = Ieer_voltaje(nfv1edidas) Toma ¡a primera lectura del puerto paralelovbOuí 890, O 'Pone ¡os transistores del circuito de control del motor en O Amptxtfvluestra.SelStart = O 'Selecciona la etiqueta del nombre de la muestratxtfvluestra.SelLength = Len(txtMuestra)empezar = 1 Variable auxiliar pública para repetir las medidas
End Sub
ANEXO C 3 C
Prívate Sub cmdAceptar_Click()mdSave.Fílter = "Archivo de texto (*,txt)|*.íxt|" 'Representa un archivo con extensión .txtmdSave.fileñame:~ txtMuestra 'Por defecto e! e! archivo lleva el nombre de la muestramdSave.ShowSaves2 = mdSave.filenameOpen s2 For Output As # 'Se crea y se abre el archivo .txt para guardar todos los datosWrite rr1, txtMuestra 'Se copia en el archivo el nombre de la muestra,Write#1, txtSoh/ente 'Se copianombre del solventeWrite £1, txtConcentraciones 'Se copia el número de concentracione, -Write #1, txtAngulo 'Se copia el vaior del ángulo a girarWrite rr1, txtNmedidas 'Se copia el número de medidas por cada concentración.Glose £1txtfvluestra.Enabled = False 'No se pueden cambiar los datos después ce crear el
archivotxtSolvente.Enabled = FalsetxtConcentraciones.Enabied = FalsetxtAngulo. Enabled = False - -- • • -For i = 1 To 6
txtCon(i).Enabled = FalseNext iupdCon.Enabled = FalseupdAnguIo. Enabled = Falsectte = 1
End Sub
Prívate S.ub cmdAIineacion_Click()If ctte = 1 Then ' - -
frmAlinear.Show Va al formulario frmAlinearElse "Mensaje de error
fvlsgBox "Primero debe guardar los datos haciendo click en:" & Chr(13) &"Crear un archivo de Datos", vbOKOnly'-KvbCritical," No es pasible Alinear el sistema"EndlfEnd Sub
Prívate Sub cmdMedicion_Click() Va al formulario frmMedidasIf ctte = 1 Tnen
If NumConceniracion < frmfv1ain.txt Concentra cienes + 1 Thenfrmívledidas.Show
Else(VlsgSox "El número de concentraciones no debe ser mayor a " &
írmMain.txtConceniraciones, vbOKOnly + vbCriiical, "Error en el número deconcentraciones"
.Endlf . •Else
MsgBox "Primero debe guardar ¡os datos haciendo click en:" & Chr(13) & "Crear un archivo de Datos", vbOKOnly -i- vbCriticai," No es posible tomar ír.edidas"EndlfEnd Sub
Prívate Sub cmdZ¡mm_CIick() Va si formulario frmZimmfrmZimm.Show
End Sub
Prívate Sub cmdCorregir_Click() 'habilita etiquetas para corregir los catosingresados
txtfvluestra.Enabled = TruetxtSolvente.Enabled = True
ANEXOC 4 C
íxtConcentra clones. Enabled = TruetxiAnguío.Enabled = True
Fori = 1 To 6 ~txíCon(¡).Enabled = True
Next iNumConcentracion = 1ctte = OupdCon.Enabled = TrueupdAngulo. Enabled = True
End Sub
Prívate Sub cmdSaI¡r_Click()End 'Sale del programa
End Sub
Prívate Sub txtAnguio_Change() 'No hay como ingresar un vaior de ángulo mayor a 14°If txíAngulo = ""Then
txíNmedídas = ""Eise
If txíAngulo < 15 And txtAngulo <> O ThentxtNmedidas = 2 * Fix(txtAnguIo.Text / 0.2088) + 1
Else 'Mensaje de errorMsgBox "El ángulo no debe ser mayor a 14° ni igual a 0°", vbOKOnly + vbCritical,
"Error en el valor del ángulo"txtAnguIo.SelStart = OtxtAnguIp.SelLengih = Len(txjAngulo.Text)
Éndlf " " " "End lfEnd Sub
Prívate Sub txíConcentraciones_Change() 'Despliega n etiquetas para las concentracionesNumcon = llf(txtConcentraciones = '"', 4, txt Con centra clones)If Numcon < 7 And Numcon > O Then
For i = 1 To NumcontxtCon(¡).Visible = TrueibICon(i).Visible = True
Next iFor i = Numcon + 1 To 6
txiCon(I).Visible = FalselblCon(i).VisibIe = Fatse -
Next ÍElse 'Mensaje de error
ívIsgBox "E! número de concentraciones va de 1 hasta 6 !", vbCritical -f \/bExclamation,"Error en el número de concentraciones"
txtConcentraciones.SelStart = OtxiConcentraciones.SeiLengíh = Len(txtConcentraciones.Text)
EndlfEnd Sub
Prívate Sub txtAngulo_KeyPress(KeyAscii As Integer)lf KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then
'KeyAscií = 8 es el retroceso o BackSpacelf KeyAscii <> 8 Then 'Soio se puede escribir números en txtAngulo
KeyAscii = OEnd lf
End lfEnd Sub
ANEXOC 5 C
Prívate Sub txtConcentracÍones_KeyPress(KeyAsc¡i As Integer)If KeyAscii < Asc('X3ir) Or KeyAscii > Asc("9") Then
If KeyAscii <> 8 Then - 'Solo se puede escribir números en txtConcentracionesKeyAscii - O
End if 'End If
End Sub
Prívate Sub updAngulo_DownCHck()txtAnguIo = Mf(txtAngulo > 1, txtAngulo - 1, txtAngulo) 'Disminuye el valor del ángulo en 1
End Sub
Prívate Sub updAnguloJJpClickQtxtAngulo = Ilf(txtAnguIo < 14, txtAnguio + 1, txtAngulo) 'Aumenta el valor del ángulo en 1
End Sub
Prívate Sub updCon__DownC!ick()txtConcentraciones = llf(txtConcentrac!ones> 1, txtConcentraciones- 1,
txtConcentraciones) 'disminuye el # de concentraciones en 1End Sub
Prívate Sub updConJJpCIickQtxtConcentraciones = llf(txtConcentraciones < 6, txtConcentraciones + 1.
txtConcentraciones} 'Aumenta el # de concentraciones en 1End Sub
Prívate Sub txtMuestra_KeyOo\-vn(KeyCode As Integer,' Shift As .".Integer")ixtSoIvenie.SetFocus 'Se va de una etiqueta a otra con las teclas keyDown y
keyUpEnd Sub
i
Prívate Sub txtsotvente_KeyDown(KeyCode As Integer, Shift As Integer)txtConcentraciones.SetFocus
End Sub
Prívate Sub txtConcentrac¡ones_XeyDown(KeyCode As Integer, Shift As Integer)txtAngulo.SeiFocus
End Sub
Prívate Sub txiAnguío_KeyDavyn(KeyCode As Integer, Shift As Integer)txtCon(1).SetFocus
End Sub
Prívate Sub txtCon_KeyDown(lndex As Integer, KeyCode As Integer, Shift As Integer)If KeyCode = 40 Then
If Index < txtConcentraciones ThentxtCont índex * 1).SeiFocus
EisetxtCon(txtConceniraciones).SetFocus
End IfEndlfIf KeyCode = 38 TnenIf Index > 1 Then
txtCon(lndex- 1).SetFoousElse
txtCond). SetFocusEndlf
ANEXO C 6C
End IfEnd Sub
Código del frmÁlinear "Formulario de alineación"
Option ExpücitDim cUp, cDown, a, cDownl As IntegerDim nuevocero, seiCompensación As IntegerDim Npasos, Tmuestreo As IntegerDim ángulo As Integer
Prívate Sub Form_J_oad()txtMuestra = frmMain.txtMuestratxtSolvente = frmMain.txtSoivenfcetxíConcentraciones = frmfvlain.txtConcentracionestxtAngulo = írmMain.bctAngulo
- txtMmedidas = frmfVlain.txtNmedidasángulo = íxtAnguloupdAngulo.Enabied = False
End Sub
'variables del timer tmrpulsoVariables del timer tmrNuevocero
'Se muestra los datos inicíales
Prívate Sub |-orm_Actívate()bctXO - -ángulotxtXf = ángulopÍcGraíicoVA_paintpicArco_PaintEnd-Sub
'Seíea valores iniciales
Prívate Sub cmdEmpezar_Click()Npasos = Hx(txtAngulo.Text / 0.2088)nfvledidas = bctMedidasTmuestreo = txtPeriodo.TextcDown = 2 * Npasos
'Número de pasos por lado'Número de medidas para¡ei promedio'Período del timer'Contador de pasos a la izquierda'Contador de pasos a la derecha
a ^ O Variable para diferenciar la dirección de giro del motortmrPulso.Enabled = True 'Habilitación del tmrPulsotmrPuíso.lnterval = Tmuestreo 'Período de movimiento de! motor de pasosEnd Sub
Prívate Sub cmdAlinear_Click()If alinear = 2Then
IstValores.ClearDim i, j, min, max As IntegerDim volt As Double
'Alineación del sistema
Por i = O To 2 * NpasosIf voltaje(i) > volt Then
volt = voltaje(Í)] = ¡
EndlfNext imín = jmax = ]
For i = O To 2 * NpasosIf voltaje(i) > 0.92 * volt Then
Volt = voltaje máximo
ANEXOC 7 C
min = llf(i < min, i, min) 'se escoge el mínimo ángulomax ~ !lf(i > max, I, max) 'se escoge el máximo ánguloE n d If . . . .Next ij = lnt((max-f min) /2)txtfvledidamax = volttxtPosicionMax = jnuevocero = Npasos - j Valor del ángulo a girar para la alineacióncUp = 1setCompensacíón = Abs(nuevocero)If nuevocero < O Then
pulso = pulso - 2cDown = setCompensación
EndiftmrNuevocero.Enabled = True 'Se habilita el tmrNuevocerotmrNuevocero.Interval = txtPeriodo.Text
ElseMsgBox"S¡ desea alinear el sistema primero haga click en;" & Chr(13) & "Empezara
tomar medidas y espere que se" & Chr(13) & "se realicen todas las lecturas", vbOKOnly +vbCritical," No es posible alinear e! sistema."EndlfEnd Sub
Prívate Sub cmdParar_Click() 'Parar y resetear e! proceso de alineacióntmrPulso.Enabled = FaisepicGraficoVA.Cls
- IstValores.Clear •picGraficoVA_paintalinear = 1
End Subi
Prívate Sub cmdMedicion_Click() 'No pueden haber más de 6 concentracionesIf NumConcentracion < 7 Thén
írmMedidas.ShowEise • 'Mensaje de error
MsgBox "El número de concentraciones no debe ser mayor a 6", vbCriticsl -rvbExclamaiion. "Error en e! número de concentraciones"EndlfEnd Sub
Prívate Sub cmdZimm_CIÍck() Va a frmZimmUnload MefrmZimm.Show-
End Sub
Prívate Sub cmdInic¡o__Click() Va a frmivlainUnload MefrmMain.Show
End Sub
Prívate Sub cmdSaIir_Click() 'Fin del programaEndEnd Sub
Prívate Sub chkConfíguracÍon_CiÍck() 'Seíea datos inicialesIf chkConfiguracion.Value Then
txtAnguto.Enabled = True
ANEXO C 8 C
txtPeriodo.Enabled = TruetxtMedidas.Enabled = TrueupdAngulo.Enabled = True
ElsetxíAnguío.Enabled = FalsetxtPeriodo.Enabled = FalsetxíMedidas.Enabled = FalseupdAngulo.Enabled = False
End IfEnd Sub
Prívate Sub tmrPulso_Tímer() 'Subrutína de movimiento del motor de pasosDim X, Y, radio As Doubie . . .D¡m kAs Integerk = oradio = picArco.ScaleWidth / 2picArco.CIs ..If cUp <= Npasos Then 'Movimiento de! disco a la izquierdapicArco.Circle (picArco.ScaleWidth/2, picArco.ScaleHeight- 100), radio, RG8(248, 115,16), 3.1415/180* (90-Npasos), 3.1415 / 180 * (90 * Npasos)X = picArco.ScaieWidth / 2 + radio * Cos(3.1415 /180 ~ (90 - Npasos * a + cUp))Y = picArco.ScaleHeight - 100 - radio * Sin(3.1415 /180 * (90 - Npasos * a + cUp))picArco.Círcle (X, Y), 3, RGB(255, 0,0)Iblestado.Capíion = "midiendo der-izq"
pulso = llf(pulso <= 3, pulso, 0)vbOut 88S,-2Apulso - • • -pulso = pulso + 1cUp = cUp -f 1txtVang = Format(-cUp ~ 0.2038, "00.00")If cUp = Npasos + 1 And a = O Then • _ . _ _ . .
cUp = cUp * 2pulso = pulso - 2 •
EndifEise
!f cDown >= O Then 'Movimiento del disco a ¡a derechapulso = !!f(pu!so < O, 3, pulso)voltaje(2 * Npasos - cDown) = Ieer_vo¡taje(nív1edidas)txtVang = Format((Npasos - cDown) * 0.2088, "^OO.OO")bctVoltaje = Format(voltaje(2 * Npasos - cDown), "O.QOOO")picGraficoVA.PSet (picGraficoVA.Width / 2 + (picGraficoVA.Width / (2 "
FixCtxt^ngulo.Text / 0.2038))) * (Npasos - cDown), 0.99 * picGraficoVA.Heighi *"(1 -voltaje(2 * Npasos - cDown) / 3)), RG3(248, 115,16)
istValores.Addltem "" & txtVang & "" & Format((voltaje(2 * Npasos - cDown)), "0.0000")vbOut 888, 2 A pulso 'Gráfica el voltaje vs ángulocDown = cDown - 1pulso = pulso - 1cDownl = -cDown + NpasospicArco.Circle (picArco.ScaleWidíh / 2, picArco.ScaleHeight - 100), radio. RG3(248.
115, 16), 3.1415/180 "(90-Npasos), 3.1415 /180 * (90 + Npasos)X = picArco.ScaleVv/idth / 2 + radio * Cos(3.1415 /180 * (90 -f cDown - Npasos))Y = picArco.ScaleHeight - 100 - radio * Sin(3.1415 /180 * (90 + cDown - Npasos))picArco.Circíe (X, Y), 3, RGB(255, O, 0)Iblestado.Caption = "midiendo izq-der"
ElseIf cDown = -1 Then
ANEXOC 9 C
pulso = pulso + 2cDown = cDown- 1a = a -K 1
ElsetmrPulso.Enabled ~ FalsevbOut 888, Oalinear = 2picArco.ClspicArco.Gírele (picArco.ScaleWidth / 2, picArco.ScaleHeight - 100), radio, RGB(248,
115, 16), 3.1415 /130 * (90-Npasos), 3.1415/130* (90 + Npasos)X = picArco.ScaleWidth / 2 + radio * Cos(3.1415 /180 T (90))Y = picArco.ScaleHeight - 100 - radio * Sin(3.1415 /180 * (90))picArco.Circle (X, Y), 3, RGB(255, Q. 0)Iblestado.Caption = "posición inicial"
EndlfEndlf
EndlfEnd Sub
Prívate Sub fcmrNuevocero_Timer() 'Rutina que mueve el motor para la alineaciónIf nuevocero > O Then
If cUp <= setCompensacíón Thenpulso = Ilf(pulso <- 3, pulso, 0)vbOuiSSS, 2 A pulsopulso = pulso + 1cUp = cUp -4- 1Iblestado.Cá'ption = "moviendo el cero'izquierda11- • - '
E!seIblestado.Caption = "nuevo cero encontrado"tmrMuevocero.Enabled = FalsecmdEmpe2ar__Click
EndifElse ' .
If cDown > O Thenpulso = llf(pulso < O, 3, pulso)vbOut 833, 2 A pulsopulso = pulso - 1cDo^Mi = cDown- 1Iblesiado.Caption = "moviendo e! cero derecha"
EiseIf cDov/n = -1 Thenpulso = pulso -f- 2cDown = cDown- 1vbOutSSS, OIblestado.Caption = "nuevo cero encontrado"End IftmrNuevocero.Enabled = FalsecmdEmpezar_Cl¡ck
End IfEnd IfEnd Sub
-Prívate Sub txtAngulo_Change() 'Configuración del txtAnguloIf txtAngulo = '"' Then
txtNmedidas = '"' 'El ángulo no debe ser un menor a 14°txtXO =lul
txtXf = '•'
ANEXOC 10C
ElseIf txtAngulo < 15 And txtAnguio <> O Then
txtNmedidas = 2 * Fix(txtAnguIo / 0.2088) + 1ángulo = txtAngulotxtXO = -ángulo .txtXf = ángulop¡cGraficoVA_paínt
Else 'Mensaje de errorMsgBox"EI ángulo no debe ser mayor a-14° ni igua! a 0D", vbCritícai -r vbExclamation,
"Error en el valor del ángulo""txtAngulo.SelStart = OtxtAngulo.SelLength = Len(txtAngulo.Text)txtXO = ""txíXf=""
EndlfEnd lfEnd Sub
Prívate Sub picArco_Paint() 'Dibuja el arco que simula el movimientoDimX. YpícArco.CIspicArco.Circie (picArco.ScaleWidth / 2, picArco.ScaleHeight -100), picArco.ScaleWidth / 2,RG8(248,115, 16), 3.1415 /180 * (90 - F¡x(bctAngulo.Text / 0,2083)), 3.1415 /180 * (90 +FÍx(txtAnguio.Texí / 0.2088))X = picArco.ScaleWidth / 2 -i- picArco.ScaleWidth / 2 * Cos(3.1415 / 180 * (90))Y = picArco.ScaleHeight - 100 - picArco.ScaleWidth / 2 * Sin(3.1415 /180 ~ (90))picArco.Circle (X, Y), 3, RGSÍ255, 0,0) .Iblestado.Caption = "posición inicial"End Sub
Prívate Sub updAngulo_DownClick()txtAngulo = Ilf(txtAnguIo > 1, txtAngulo - 1, txtAngulo) 'Disminuye eí valor del ángulo en 1End Sub
Prívate Sub updAnguloJJpCIickQtxtAngulo = Hf(txtAnguIo < 14, txtAngulo -i- 1, txtAngulo) 'Aumenta el valor del ángulo en 1End Sub
Prívate Sub UpDown1_DownC!ick() Varía las escalas en X y YtxtXO = llf(txtXO > -ángulo, txtXO - 1, txtXO)picGraficoVA.CIspicGraficoVA_painiEnd Sub
Prívate Sub UpDown1_UpClick()txtXO = llf(txtXQ < txtXf - 5, txtXO + 1, fcxtXO)picGraficoVA.CIspicGraíicoVA_paintEnd Sub
Prívate Sub UpDown4_DownClick()bctXf = llf(txtXf > txtXO + 5, txfcXf - 1, txtXf)picGraíicoVA.ClspicGraficoVA_paÍntEnd Sub
Prívate Sub UpDown4JJpClick()
ANEXO C II C
bctXf = llf(txtXf < ángulo, txtXf + 1, txtXf)picGraficoVA.CIspicGraficoVA_paint _ _End Sub
Prívate Sub UpDown2__DownClick()txtYO = lif(txiYO > O, txtYO - 0.5, txtYO)picGraficoVA.CIspicGraficoVA__paintEnd Sub
Prívate Sub UpDown2_UpClick()txtYO = Hf(txtYG < txtYf- 0.5, txtYO + 0.5, txtYO)picGraficoVA.CIspicGrancoVA_paÍntEnd Sub
Prívate Sub UpDown3_DownC!ick()txtYf = Ilf(b€tYf > txtYO + 0.5, txtYf- 0.5, txtYf)picGraficoVA.CIspÍcGraficoVA_paintEnd Sub
Prívate Sub UpDownSJJpClickQtxtYf = Ilf(txtYf < 3, txtYf + 0.5, txtYf)picGraficoVA.CIspicGraficoVA_paint • • - —End Sub
Prívate Sub picGrañcoVA_paint() 'Contenedor del gráficoDimX, Y, ang iDim i As Integer
'escala x • 'Líneas de división de la pantalla dei gráficoFor i = O To 8IblXfij.Top = picGraficoVA.Top -f- pícGraficoVA.ScaleHeight + 60lbIX(i).Caption = Forrnat(txtXO -i- (txtXf - txtXO) / 8 * i, "00.00")lblX(i).AutoS¡ze = TnjelblX(i).Left = picGraficoVA.LefL -í- picGraficoVA.ScaleWidth / 8 * (i) - lblX(i).Width / 2Nexí i'Escala yFor i = O To 4lb!Y(i).Left = picGraficoVA.Lelí - 350lblY(i).Captton = Format(txtYO + (txtYf- txtYO) / 4 * i, "0.00")lbIY(i).Top = picGraficoVA.Top -i- pícGraficoVA.ScaleHeight / 4 * (4 - i) - lbIY(i).Height / 2Next i
lineas XFor i = O To 8X = picGraficoVA.Left + picGraficoVA.ScsIeWidth / 8 * iY = picGraficoVA.Top -r picGraficoVA.ScaleHeightPicturel.Line (X, Y>(XfY + 60)X = picGraficoVA.ScaleWidth / S * ipicGraficoVA.Line (X, 0)-(X, picGraficoVA.ScaleHeight), RGB(100, 100, 100)Next i
'lineas y
ANEXO C 12 C
Fori = O 10 4X=picGraficoVA.LenY = picGraficoVA.Top + picGraíicoVA.ScaleHeight / 4 T iPicturel.LIne (X- 50, Y)-(X, Y)Y = picGraficoVA.ScaleHeight / 4 * (i + 1)picGraficoVA.Line (O, YMpicGraficoVA.ScaleWidth, Y), RGB(100, 100, 100)Next i
!f alinear = 2 Thenang = -ánguloFor Í = 1 To 2 * Npasos + 1
picGraficoVA.PSet (picGrafícoVA.Width / 2 + (picGraficoVA.Wicith / (txLXf - txtXO) * (ang(ángulo + txtXO) / 2 + (ángulo - txtXf) / 2)), 0,99 * picGraücoVA.Height * (1 - (voltaje(i) -txtYO) / (txtYf- txtYO))), RGB(248, 115, 16)
ang = ang -i- 0.2088Next iEnd IfEnd Sub
Prívate Sub txtAnguIo_KeyPress(KeyAscii As Integer)If KeyAscü < Asc("0") Or KevyAscü > Asc("9") Then
'KeyAscii = 8 es e! retroceso o BackSpaceIf KeyAscü o 8 Then - - -
KeyAscü = O 'Solo se admiten números en el txtAnguIoEnd If
End IfEnd Sub - - "
Código del frmMedidas "Formuiario para Tomar medidas"
Option Expíicit *Dim clip, cDown, a, cDownl As Integer Variables del timer imrPulsoDim auxVol(1Q, 500), auxAng(10, 500), nombres(5), VHÍCon(10) As Variant VariablesauxiliaresDim estado As IntegerDim Npasos, Tmuestreo As IntegerDim ángulo As Integer
Prívate Sub Form_ActÍvateQtxtXO = -ángulo 'Carga datos de escalatxtXf = ángulo , ...picArco_P3ÍntpícGraficoVA_paint 'End Sub
Prívate Sub Form__load() 'Carga datos inicialesIblNumcon = NumConceniraciontxíAngulo = frmMain.txtAngulotxiMuestra = írmiVIain.txtMuestnatxtSolvente = frmívlain.txtSolventeixtConcentraciones = frmMain.txtConcentracionestxtNrnedidas = 2 * Fix(txtAngulo.Text / 0.2088) + 1ángulo = txíAngulotxtCon = frmMain.txtCon(NumConcentracion)empezar = 1
End Sub
ANEXO C 13 C
Prívate Sub cmdEmpezar__Cl¡ck()If empezar = 1 Then - -
Dim radioempezar = 2estado = ONpasos = Fix(txtAngulo.Text / 0.2088) 'Número de pasos por ladonfvledidas = txtfvledidas 'Número de medidas para el promedioTmuestreo = txtPeriodo.Text 'Período de! tímercDown = 2 * Npasos 'Contador de pasos a la izquierdacUp = O 'Contador de pasos a la derechaa = O Variable para diferenciar entre las vueltasOpen s2 For Append As £1Write £1, bctConCióse £1tmrPulso.Enabled = True 'Habilitación de! Timer de velocidad del motortmrPulso.lnterval = Tmuestreo . . . _ . . . . _
Else 'mensaje de errorMsgBox "Si desea repetir la lectura de !as señales haga click en:" & Chr(13) & " Volver a
tomar medidas de esta concentración", vbOKOnly * vbCritical," No es posible presionardos veces este botón"EndlfEnd Sub
Prívate Sub cmdMedic¡on_Click() Toma medidas de otra concentraciónif empezar = 3 Then
If NumConcentracion < frmMain.bdCóncehtraciónes -*•' 1 ThenpicGraficoVA.CisIstValores.ClearpicGraticoVA^paintNumConcentracion = NumConcentracion + 1 - -- -IbINumcon = NumConcentraciontxtCon = frmMain.txtC o n (Nú reconcentración)empezar = 1
Else 'mensaje de errorfvlsgBox "El número de concentraciones no debe ser mayor a " &
frmMain.fcxtConcentraciones, vbCritical + vbExciamaüon, "Error en el número deconcentraciones"
EndlfElse 'mensaje de error
MsgBox "Espere debe tomar las lecturas de la concentración " & NumConcsniracion,vbCritical -f vbExclamaiion, "Error ai tomar medidas"EndlfEnd Sub
Prívate Sub cmdRegresaM3íick() Vuelve a tomar medidas de la misma concentraciónIf empezar <> 1 ThenDim i, j As IntegerOpen frmMain.mdSave.fílename For Input As £1For Í = 1 To 5
lnput#1, nombres(i)Next i
For i = 1 To NumConcentracion - 1Input #1. valCon(i)
For j = 1 To (2*frmMain.txtNmedidas + 1)Input 7r1. auxVol(i, j), auxAng(i, i)
ANEXO C 14 C
Next jNextíCióse £1
Open frmMain.mdSave.íílename For Oufcput As £1For ¡ = 1 To 5Write #1, nombres(Í)Next íFor i = 1 To NumConcentracion - 1Write #1, valCon(i)Forj = 1 To (2*frrnMain.bctNrnedidas + 1)Write £1, auxVol(i, j), aúxAng(í, j)Nextj . . . .Next ¡Cióse £1cmdParar_Clickempezar = 1 - —cmdEmpezar__ClickElse 'mensaje de error
MsgBox "Espere debe tomar las lecturas de !a concentración " & NumConcentracion,vbCritical + vbExclamaíion, "Error ai tomar medidas"EndlfE n d S u b • . . . .
Prívate Sub cmdlnÍcío_CIÍck()frmMain.Show Va afrmívlain .Unioad Me - ' - .End Sub
Prívate Sub cmdSalir_Ciick()End 'fin del programaEnd Sub
Prívate Sub cmdAlineac¡on_Click()írmAlinear.Show Va a frmAlinearempezar = 4End Sub
Prívate Sub cmdParar_Clíck() 'Para e! proceso de medicióntmrPulso.Enabled = FalsepicGraíícoVA.ClsJstValores.CiearpicGraíicoVA_pa¡ntalinear = 1End Sub
Prívate Sub chkContiguracÍon_Click() 'Habilita etiquetas de datosIf chkConíiguracion.Vaiue Trien
txíAngulo.Enabled = FalsetxtPeriodo.Enabled = TruetxtMedidas.Enabled =True
ElsetxtAngulo.Enabied = FaisetxtPeríodo.Enabled = FalsefcxtMedidas.Enabled = False
End IfEnd Sub
ANEXOC 15 C
Prívate Sub írm¿imm_CIick()Unload fvlefrmZimm.Show 'Va a frrnZ'imm
End Sub
Prívate Sub picArco_Paint() 'Dibuja e! arco que simula el movimientoDim X, YpicArco.CIs -picArco.Circle (picArco.ScaleWidth / 2, picArco.ScaleHeight-- 100), picArco.ScalsWidth / 2,RGB(248, 115, 16), 3.1415 /180 * (90 - Rx(txtAngulo.Text / 0.2088)), 3.1415 /180 * (90 +Fix(txtAnguio.Text / 0.2088))X = picArco.ScaleWidth / 2 + picArco.ScaleWidth / 2 * Cos(3.1415 /180 * (90))Y = picArco.ScaieHeight - 100 - picArco.ScaleWidth / 2 * Sin(3.1415 /130 * (90))picArco.Circle (X, Y), 3, RGB(255, O, 0)Iblestado.Caption = "posición inicial"End Sub
Prívate Sub irnrPulso_TÍmer()Dim X, Y, radio As DoubleDim k As Integerk = oradio = picArco.ScaleWidth / 2picArco.CIsIf clip <= Npasos ThenpicArco.Circle (picArco.ScaleWidth/2, picArco.ScaleHeight- 100), radio, RGB(248, 115,16), 3.1415/180* (90-Npasos), 3.1415/180* (90 +Npasos) —X = picArco.ScaleWidth / 2 -í- radio * Cos(3.1415 /180 T (90 - Npasos * a -í- cUpi)Y = picArco.ScaleHeight - 100 - radio * Sin(3.1415 /130 * (90 -Npasos * a - cUo))picArco.Circle (X, Y), 3, RGB(255, O, 0)Iblestado.Caption = "midiendo der-izq" i
pulso = lif(pulso <= 3, pulso, 0)vbOut 888, 2 A pulsopulso = pulso + 1cUp = cUp + 1txtVang = Format(-cUp * 0.2088, "00.00")If cUp = Npasos + 1 And a = O Then
cUp = cUp + 2pulso = pulso - 2
End IfElse
If cDown >= O Then .pulso = llf(pulso < O, 3, pulso)voltaje(2 * Npasos - cDown) = leer_voita¡e(nIVledidas)txtVang = Format((Npasos - cDown) * 0.2Q88, "00.00")txtVoltaje = Farmat(volta¡e(2* Npasos - cDown), "0.0000")picGraücoVA.PSet (picGraficoVA.Width / 2 + (picGraficoVA.Width / (2T
rix(fc<tAnguIo.Text / 0.2088))) * (Npasos - cDown), 0.99 * picGraficoVA.Height *: 1 -voitaje(2~ Npasos -cDown)/ 3)), RGB(248. 115, 16)
Open s2 For Append As #1Write =1, txtVang, txtVoltajeGlose £1IstValores.Addltem " " & txtVang & " " & Format((voltaje(2 * Npssos - cDown)),
"0.0000")
vbOut388, 2 A pulsocDown = cDown- 1
ANEXO C 16 C
pulso = pulso- 1picArco.Gírele (picArco.ScaleWidth / 2, picArco.ScaleHeight- 100), radío, RQB(248,
115, 14), 3.1415 /180* (90 - Npasos), 3.14.15 /180 * (90 + Npasos)X = picArco.ScaleWidth/2 + radio * Cos(3.1415 / 180 * (90 + cDown-Npasos))Y = picArco.ScaleHeight - 100 - radio * Sin(3.1415 /180 ~ (90 -H cDown - Npasos))picArco.Circle (X, Y), 3, RGB(255, O, 0)Iblestado.Caption = "midiendo Ízq-der"
ElseIf cDown = -1 Then
cUp = 1pulso = pulso -f 2cDown = cDown - 1a ~ a + 1estado = -1
ElsetmrPulso.Enabled = FalsevbOut 888, Oempezar = 3alinear = 2
picArco.CIspicArco.Circle (picArco.ScaleWidth / 2, picArco.ScaleHeight- 100). radio, RGB(248,
115, 16), 3.1415 / 180* (90-Npasos),;}.1415/180* (90 + Npasos)X =- picArco.ScaieWidth / 2 + radio * Cos(3.1415 /180 * (90))Y = picArco.ScaleHeight - 100 - radio ~ Sin(3.1415 /180 * (90))picArco.Circle (X, Y), 3, RGB(255, O, 0)Iblestado.Capíion = llp-osición iniciar1 • • -
EndlfEnd If
EndlfEnd Sub i
Prívate Sub txtAngulo_Change() " ' .If txtAngulo = ""Then
ixtNmedidas = ""txtXO = ""txtXf = ""
ElseIf txtAngulo < 15 And txtAngulo <> O Then
txtNmedidas = Format(txtAngulo / 0.208. "##,0")ángulo = txtAnguloíxtXO " = -ángulo.txtXf = anguiopicGraficoVA_paint
ElseMsgBox "El ángulo no debe ser mayor a 1° ni igual a 0o", vbCritical -í- vbExclamation,
"Error en el valor de! ángulo"txtAngulo.Se!Start = 0txtAngulo.SelLength = Len(txtAngulo.Text)txíXO =""txtXf=""
EndlfEnd IfEnd Sub
Prívate Sub UpDov/n1_DownClick{)txtXO = llf(txtXO > -angula, txtXO - 1, txtXO)
ANEXOC . 17C
pícGrafícoVA.CIspícGraficoVA_paÍntEnd Sub
Prívate Sub UpDownl JJpClickQtxtXO = llf(txtXQ < txtXf- 5, txtXO + 1, txtXO)picGraficoVA.CIsp¡ cGraíi coVA_pai ntEnd Sub
Prívate Sub UpDpwn4_DownClick()txtXf = llf(txtXf > 'txtXO + 5, txtXf -1, txtXf)pjcGraficoVA.Cis - . . .picGraficoVA__paintEnd Sub
Prívate Sub UpDo\vn4JJpCIíck()txtXf = HfCtxtXf < ángulo, txtXf + 1, txtXf)plcGraficoVA.ClspícGraficoVA_paintEnd Sub
Prívate Sub UpDown2_DownCI¡ck() . .txtYO = llf(txtYO > O, txtYO - 0.5, txtYO)picGraíicoVA.CispicGraíicoVA__paini
"End Sub " ' ' . .
Prívate Sub UpDo\vn2_UpClick()txtYO = llf(txtYO < txtYf- 0.5, txtYO + 0.5, txtYO)pícGraficoVA.Cls -pí cGrafí coVA_pai ntEnd Sub
Prívate Sub UpDown3_DownClickQtxtYf = llf (txtYf > txtYO + 0.5, txtYf- 0.5, txtYf)picGraficoVA.CIsp¡cGraficoVA_paíntEnd Sub
Prívate Sub UpDown3JJpClick()txtYf = Hf(txtYf < 3, txtYf + 0.5, txtYf)picGraficoVA.CIspicGraf¡coVA_paintEnd Sub
Prívate Sub picGraficoVA_paint() 'Contenedor de! gráficoDim X, Y, angDím i As Integer
'escala x 'Líneas de división de la pantalla del gráficoFor i = O To 3lblX(i).Top = pícGraficoVA.Top + pícGraficoVA.ScaleHeight + 60lblX(i).Caption = Format(txtXQ + (txtXf - txtXO) / 8 * i, "00.00")lblX(i).AutoS¡ze = TruelblX(i).Lett = picGraficoVA.Left + picGraficoVA.ScaleWidíh / 8 * (i) - lblX(i).Width / 2Next ¡
ANEXOC 18C
'Escala yFori = OTo4IbiY(i).Left = picGnaficoVA.LeTt - 330lb!Y(i).Caption = Form3t(txtYO + (txtYf - txtYO) / 4 * i, "0.00") -lbiY(i).Top = picGraficoVATop + picGraficoVA.ScaieHeight / 4 * (4 - i) - lb[Y(i).Heíght / 2Next i
lineas XFor i = O To 8X = picGraíícoVA.Left + picGraficoVA.ScaleWidíh / 8 * iY = picGraficoVATop + picGraficoVA.ScaleHeightPicturel.Line (X, Y)-(X, Y + 60}X = picGraficoVA.ScaieWidth / 8 * ipicGraficoVA.Line (X, 0)-(X, picGraücoVA.ScaleHeight), RGB(100, 100, 100)Next i
'lineas yFor i = OTo 4X=picGraficoVA.LeftY = picGraficoVA.Top + picGraficoVA.ScaleHeíght / 4 * iPicturel .Une (X - 50, Y)-(X, ^0Y = picGraficoVA.ScaleHeight / 4 * (i + 1)picGraticoVA.üne (O, YHpicGraficoVA.ScaieWidth, "O, RGB(100, 100, 100}Next i
" lf alinear = 2 Trien 'ang = -ánguloFor í = 1 To 2 * Npasos + 1
picGraficoVA.PSet (picGraficoVA.WidthV 2 + (picGraficoVA.Width / (txtXf - txtXO) * (ang(ángulo + txtXO) / 2 + (ángulo -txtXf) / 2)), 0.99 * picGraficoVA.Height * (1 - (voltaje(i) -txtYO) / (txtYf- txtYO))), RGB(248, 115, 16)
ang = ang + Q.2088 . 'Next iEnd lf
End Sub
Prívate Sub txtAnguloJ<eyPress(KeyAscii As Integer)lf KeyAscü < Asc("Q") Or KeyAscü > Asc("9") Trien
!f KeyAscü <> 8 Trien 'Solo se admiten números en el txtAnguloKeyAscü = 0
EndifEnd lfEnd Sub
Código de frmZimm "formulario de curvas características'3
Option Explicit Variables auxiliaresPublíc s1, auxiliar As StringD¡mvoitaie(10, 600), angulo(10, 600), KCRo(10, 600), concentracion(6) As SingleDim i. j, rojo, verde, azul, valAnguIo, datos, puntos, auxl As IntegerDimvo!(10, 600), ang(10, 600)
ANEXOC 19 C
Dim axVoltaje, axAnguloDim max As Single
Prívate Sub cmdlnicio_Click() Va a frmMaintrmMain.ShowUnload MeEnd Sub
Prívate Sub Form_Activate() 'Iniciaüza gráficospÍcGraTÍcoVA_pa¡ntpicZimm_PaintEnd Sub
Prívate Sub cmdArch¡vo_Click() 'Lee los datos del archivo txfcDim í, j, k As Integercdopen.Filter = "Archivo de texto (*.txt)|*.txt|"cdopen.ShowOpenmax = OIf cdopen.íilename <> "" Thens1 = cdopen.filenameOpen s1 For Input As #1Input#1, auxiliartxtfvluesíra = auxiliar . 'Lee e! nombre de la muestraInput £1, auxiliartxtSolvente = auxiliar 'Lee e! nombre del solventeInput £1, auxiliartxtConcentraciones = auxiliar " " 'Lee el # de'concentra'cionesInput £1, auxiliartxtAnguio ~ auxiliar 'Lee el valor del ánguloInpui jr1, auxiliartxtLsdomedidas = auxiliar
For i = 1 To txtConcentracionesInput 7r1, auxiliar
concentracion(i) = auxiliarIstValores.Additem (" " & concentracion(i))
For ¡ = 1 To 2 * txtLadomedidas + 1Input 7Í1, axAngulo, axVoltaje 'Lee datos del archivoanguio(i, j) = axAngulo 'Lee e! ángulo que corresponde a cada lectura de voltajevoltaje(i, j) = axVoitaje 'Lee e! valor de voltajemax = Hf(voltaje(¡, j) > max, voitaje(¡, j), max)lstVaiores.Addltem ("" & Format(angulo(i, j), "00.000") & " " & Format(voitaje(¡. j),
"Q.QOOO"))Next jNext ípi cGraü coVA_paintIxtY = maxCióse £1datos = 2
For i = 1 To txtConcentracionesk = lFor j = 1 To 2 * txtLadomedidas + 1 Step 5If angulo(i, j) > 3.5 Then 'Se escoge valores de voltaje para ángulos mayores a 3.5a
ang(i, k) = angu!o(i, j)volfi, k) = voltaje(¡, j)
ANEXOC 20 C
End IfNext jNext ipuntos = k-1Else 'Mensaje de errorMsgBox "Tiene que escoger un archivo existente:", vbOKOnly + vbCritical, " No es posiblecargar eí archivo"End IfEnd Sub
Prívate Sub cmdGraficas_ClickO 'Se gráfica las curvas de dispersiónpicGraficoVA.ClspicGraficoVAjaaintmax = txtYIf datos = 2 Then
rojo = Overde = Oazul = O •For i = 1 To txtConcentraciones
rojo = I If(i = 1,255,0)verde = !lf(i = 2, 255, 0)azul = llf(i = 3, 255,0)
If i > 3 Thenrojo = 255 * iverde = 255azul = O
• End if • - - ' - - - .lblCon(i-1).VisibIe = TrueIblConfi - D.ForeColor = RGB(ro¡o, verde, azul)lblCon(i - 1 ).Caption = "— " & "Con " & i & " = " & concentracion(i)For] = 1 To 2 * txtLadomedidas
pícGraíícoVA.PSet (picGraficoVA.Width I 2 + (pícGraficoVA.Width / (2" txtAngulo) " "angulo(i, j)), 0.99 * picGraficoVA.Height * (1 - (voltaje(i, j)) / max) - (35 - 7 * 5)), RGB(rojo,verde, azul)
Next j"Next i
Else ' 'Mensaje de errorMsgBox "Si desea obtenerlas gráficas de diferentes" & Chr(13) & "concentraciones
primero haga cück en:" & Chr(13) & "Cargar Datos de Archivo", vbOKOnly •*-vbCritical," Noes posible obtener las gráficas."End IfEnd Sub
Prívate Sub crndDÍagZirnrnJ3!ick() 'Se realiza el diagrama de Zimm
For i = 1 7o txtConcentracionesFor j = 1 To puntosIf voltaje(i, j) = O Thenauxl = 1EndlfNext jNext i
If auxl <> 1 Then
If datos = 2 ThenDim X(6, 700)
ANEXOC 21C
Dim a, b, sumX, sumXY, sumY, sumX2IstKCRo.Ciearconcentracion(O) = OFor i = 1 To txtConcentracionessumX = OsumY = 0sumXY = OsumX2 = Oang(0, 0) = Oang(i,0) = 0For j = 1 To puntosang(0,j) = ang(1,])
KCRo(i, j) = (1.4 * concentracion(i) / 1000) / ((vol(i, j) / 2,22) * (0.04) A 2 / (1 * (Cos(ang(i, j)* 3.1415 / 180)) A 2) "1000000)sumX = sumX + X(¡, j)sumY = sumY + KCRo(¡, j)sumXY = sumXY + X(i, j) * KCRo(i, j)
Next j 'Extrapolación a ángulo=0b = (sumY * sumX2 - sumX * sumXY) / (puntos * sumX2 - sumX * sumX)a = (sumY - b * puntos) / sumXX(i, 0) = (Sin(ang(¡, 0) / 2* 3.1415 / 180)) A 2 + concentracion(i) / 1000 * 1.4
IblEcAng.Caption = "EC. a 0=0. Y = " & FormaUa, "0.00000") & " x X *" a'Formatíb,"0.00000")Next i
For j = O To puntossumX = OsumY = OsumXY = O 'sumX2 = OFor i = 1 To txtConcentracionessumX = sumX + X(i, i)sumY = sumY + KCRo(¡, j)sumXY = sumXY + X(i, ]) * KCRo(i, j)
Next i 'Extrapolación a concentración=0b = (sumY * sumX2 - sumX * sumXY) / (4 * sumX2 - sumX * sumX)a = (sumY - b * 4) / sumXX(0, j) = (Sin(ang(0, j) / 2 * 3.1 415/1 80)) A 2 .
IbiEcCon.Caption = "EC; a C=0. Y = " & Format(a, "0.00000") & " xX -f " & Format(b,"0.00000")Next ipicZimm.DrawWidth-= 1
'Se gráfica el diagrama de ZimmFor i = O To txtConcentracionesFor j = O To puntos - 1picZimm.Line (picZimm.ScaieWidth / bdXf *X(¡, j), picZimm.ScaleHeight '(1 - KCRo(¡, ]) /cxtYf)HP¡cZimm.ScaieWidth / txtXf * X(¡, j + 1), picZimm.ScaleHeight * (1 - KCRo(i, j +1) /txtYf)), RGB(29, 119, 199)Next jMexfc i
For i = O To txtConcentraciones - 1
.ANEXO C 22 C
For j = O To puntospicZimm.Line (picZimm.ScaleWidth / txtXf *X(i, j), picZimm.ScaleHeight * (1 - KCRo(¡, j") /txtYf)HpicZimm.ScaieW¡dth / txtXf * X(¡ + 1, j), picZimm.ScaleHeight * (1 - KCRo(i + 1, j) /txtYf)), RGB(29, 119, 199)Next jNext i
For i = O To txtConcentracionesIstKCRo.Addltem ("Concentración " & i & " = " & concentracion(Í))For] = O To puntospicZimm.DrawWidth = 2picZimm.PSet ((picZimm.ScaleWidth / txtXf * X(i, j)), picZimm.ScaleHeight7' (1 - KCRofi, j) /txtYf)), RGB(29, 119, 199)IstKCRo.Addltem (" " & Format(ang(i, j), "00.000") & " " & Formai(KCRo(i, j), "O.QQE-00") & " " & Format(X(¡, j), "O.OOE-00"))IbIConO.Top = picZimm.ScaieHeight * (1 - KCRo(0, punios) / txcYí)IblAngO.Top = picZimm.ScaleHeight * (1 - KCRo(txtConcentraciones, 0) / txíYf) -lbiConO.Height/2IbIConO.Left = picZimm.ScaleWidth / txtXf *X(0, puntos - 1) - IblConO.WidthIblAngQ.Left = picZimm.ScaleWidth / txtXf *X(txtConcentra.ciones. 0) + 3Next jNexí iEise 'Mensaje de error
fv1sgBoxuSi desea obtenerlas gráficas de diferentes"~& Chr(13) & "concentracionesprimero haga ciick en:" & Chr(13) & "Cargar Datos de Archivo", vbOKCnly + vbcritlcai. " Noes posible obtener la gráfica de Zimm."E n d If . . . .
ElseMsgBox "Mo es posible obtener la gráfica de Zimm", vbOKOniy -*• vbCritical," Los datos
de la muestra están mal"EndlfEnd Sub
Prívate Sub c()Unload Mefrmfvlain.ShowEnd Sub
Prívate Sub cmdReseíear_Click() 'Se resetea para ingresar otra soluciónpícGraficoVA.CIspicZimm.CisIstKCRo.ClearIstValores.CleartxíMuestra ='"'txtSolvente =""fcxtConcentraciones =""txíLadomedidas = ""picGraTicoVA_paintEnd Sub
Prívate Sub cmdSalir__Click()EndEnd Sub
Prívate Sub picGraficoVA__paint() 'Contenedor del gráfico
ANEXO C 23 C
Dim X, YDim ¡ As Integer
'escala x 'Líneas de división de la pantalla del gráficoFori = O T o 8lb!X(Í).Top = picGraficoVATop + picGraficoVA.ScaleHeight + 6lblX(i).Caption = txtAngulo * (-4 + i) / 4lbIX(i).AutoSize = TrueIblX(i).Lert = p¡cGraficoVA.Left + picGraficoVA.Width / 8 * (i) - lblX(i).Width / 2Next i'Escala y
For i = O To 4lblY(i).Left = picGraficoVA.Left - 25IblY(i).Caption = Formafc(txtY / 4 * i, "0.00")lblY(i).Top = picGraficoVA.Top + picGraficoVA.ScaleHeight / 4 * (4 - i) - lblY(i).Height / 2Next i
'lineas XFor i = O To 8X = picGraficoVA.Lefl + picGrafícoVA.ScaleWidth / 8 * iY = picGraficoVA.Top + picGraficoVA.ScaleHeightPicture! .Une (X, Y)-(X, Y + 4)X = picGraficoVA.ScaleWidth / 8 * ipicGraficoVA.Line (X, 0)-(X, picGraficoVA.ScaleHeight), RGB(100, 100, 100)Next i
'líneas yFor i = O To 4X = picGraficoVA.LeftY = picGraficoVA.Top + picGraficoVA.ScaleHeight./. 4 *iPicturel.Line (X- 4, Y)-(X, Y)Y = picGraficoVA.ScaleHeight / 4 * (i * 1)picGraficoVA.Une (O, Y)-(picGraficoVA.ScaleWidth, "O, RGB(100, 100, 100)Next iEnd Sub
Prívate Sub picZimm_Paint() 'Pantalla del diagrama de ZimmDim X, YDim i As IniegerpicZimm.DrawWidth = 1'escala x 'Lineas de divisiónFor i = O To 4lblXz(i).Top = picZimm.Top -i- picZímm.ScaleHeight + 6 " '!blX2(i).Caption = Format(txtXf * i / 4, "0.000")IblX2(i).AutoSize =TruelblXz(¡).Left = picZimm.Left + picZimm.ScaleWidth / 4 *í - lblXz(i).Width / 2Next i
'Escala yFor i = O To 4IblYz(i).Left = picZimm.Left - 27lblYz(i).Caption = Format(txtYf *i / 4, "0.000")lbiYz(i).Top = picZimm.Top -i- picZimm.ScaleHeight / 4 * (4 - i) - lb!Yz(¡).Heighí / 2Next i
'lineas X
ANEXO C 24 C
Por i = O To 4X= picZimm.Left + picZimm.ScaleWidth / 4 *i •Y = picZimm.Top + picZimm.ScaleHeightPícture2.Line (X, Y)-(X, Y + 4)X = picZimm.ScaleWidth / 4 * ipicZimm.Line (X, 0)-(X, picZimm.ScaleHeight), RGB(100, 100, 100)Next i
'lineas yFor i = O To 4X= picZimm.LeftY = picZimm.Top + picZimm.ScaleHeight / 4 * iPictureZLine (X - 4, Y)-(X, Y)Y = picZimm.ScaleHeight / 4 * (i + 1)picZimm.Line (O, Y)-(picZimm.ScaleWidth, Y), RGB(1QO, 100, 100)Next iEnd Sub , .. .........
Prívate Sub bdAngulo_Change()picGraficoVA_paintEnd Sub
Prívate Sub updK_DownClick() .'Se cambia de escalatxtXf=txtXf- 0.001IstKCRo.ClearpicZimm.CíspícZimm_PaíntcmdDiagZimm_ClickEnd Sub
Prívate Sub updKJJpClickQ ............ ......bctXf = txtXf + 0.001IstKCRo.ClearpicZimm.CíspÍcZÍmm_Pa¡ntcmdDíagZimm_ClickEnd Sub
Prívate Sub updY_DownClick()If txtY>0.1 ThentxtY = txtY-0.1picGraíicoVA.CIspÍcGraíicoVA_paÍntcmdGraficas__ClickEndlfEnd Sub
Prívate Sub updY_UpClick()If txtY < 3 Then
picGraficoVA.CIsp¡cGraficoVA_paintcmdGraficas_ClickEnd IfEnd Sub
Prívate Sub updYf_DownClick()
ANEXO C 25 C
bctYf = txtYf- 0.0001IstKCRo.ClearpicZimm.ClspÍcZirnm_PaintcmdDiagZirnm_Cl¡ckEnd Sub
Prívate Sub updYfJJpClíck()txtYf=txtYf + 0.0001IstKCRo.ClearpicZimm.CispicZimm_PaintcmdDiagZimm_ClickEnd Sub
Código del módulo estándar dispersión.bas
Option ExpíicitPublic Declare Sub vbOut Lib "WlN95lO.DLL" (ByVal nPort As Integer, ByVal nData Asinteger)Public Declare Function vbinp Lib "WIN95iG.DLL" (ByVal nPort As Integer) As integerDeciare Function vbinp Lib "WlN95IO.DLL" (ByVal nPort As Integer) As IntegerDeclare Function vblnpw Lib "WlN95IO.DLL" (ByVai nPort As integer) As ¡ntegerPublic promedio As Single Variables para la lectura de ios valores de la señal devoltajePublic nfvledidas As Integer '£ de medidas para e! promedioPublic NumConcentracion As integer Variable que representa el control de! £-de Con.Public s2 As String Variable del nombre del archivo donde se guardan todos los datosPublic empezar, alinear, pulso As IntegerPublic vo!taje(2QO) As Single
iFunction leer_vo!taje(mVledidas As Integer) As Single 'Función de lectura de datosDim LSB, MSB, LSBO, MSBO, numero As SingleDim i, j", kAs IntegervbOui 890, 4promedio = 0 -
Fori = 1 To nfvledidasvbOut 390, 2
LS30 = vblnp(8S9)LSB = (240 And (1 12 Xor LSBO)) / 16 'Mascara para leer los 4 bits menos
significativosvbOut 890, O
MSBO = vblnp(889)MSB = 240 And (112 Xor MSBO) 'Mascara para leer los 4 bits menos
significativosnumero = MSB + LSB
vbOut 890, 4promedio = promedio + numeroFor j = 1 To 64QOO 'Retardo
Next jNext i
promedio = promedio / nMedidas * 3 / 255 'Promedio de voltajeleer_voltaje = promedioEnd Function
ANEXO D IDManual del usuario
Antes de utilizar el programa y el equipo en general, el usuario debe tener a
disposición algunos elementos como son: La muestra (solución) a
diferentes concentraciones; jeringuilla para cambiar de solución, la cubeta
bien limpia y otros elementos de maniobra que se utilizan en el
experimento.
En la parte mecánica dei equipo se debe considerar que sobre el disco de
acero, el sensor con su soporte se pueden mover linealmente de 4 a 11 cm
de distancia desde la solución dispersante que esta fija en el centro del
disco. En este programa se utiliza la mínima distancia (4 cm) entre el
sensor y la solución; esta distancia de 4 cm es la más óptima ya que a
menor distancia el sensor es más sensible. Si el usuario varía esta
distancia debe modificar el programa en la sección del formulario frmZimm
en la parte del cálculo de KCRo(ij), la cual no es una buena alternativa ya
que pierde sensibilidad el sensor. El láser también puede moverse en
dirección de la solución y el sensor, pero su ubicación (línea sensor-
solución-láser) no produce ningún cambio considerable en la toma de
medidas.
Este software es muy fácil de manejar; El programa se ejecuta haciendo
doble clic sobre su icono dispersion.exe; este inicia con una pantalla de
carátula que se mantiene automáticamente 5 segundos, y pasa a la
ventana principal, o también se puede entrar a está haciendo clic en el
botón "Continuar" como se muestra en la figura D.1.
ANEXO DManual del usuario
2D
Fig D.1 Ventana de la carátula
Al pasar a la ventana principal se tiene un cuadro de datos y otro de
comandos; primero ei usuario debe ingresar algunos datos en el siguiente
orden: el nombre de la muestra, el nombre del solvente, el número de
concentraciones (de 1 a 6), el ángulo a girar (de 1° a 14°), y el valor de las
concentraciones estrictamente en orden ascendente (en g/lt); si se ingresan
datos que no corresponden a los rangos indicados, el programa da un
mensaje de error (ver figura D.2 con #=15); las etiquetas para ingresar el
valor de las concentraciones se muestran de acuerdo al número de
concentraciones ingresado inicialmente; por ejemplo en la figura D.2 el # de
concentraciones es 3, por lo tanto solo se muestran 3 etiquetas para
ingresar sus valores en la parte inferior.
ANEXODManual del usuario
3D
FlgD.2 Ventana principal
Posteriormente se debe hacer clic en el botón crear archivo de datos para
poder acceder a dos comandos que muestran las ventanas de alineación
del sistema y de toma de medidas a diferentes concentraciones; mientras
que las opciones para ir comandos a la ventana del diagrama de Zimm,
corregir los datos y salir del programa, no se necesitan crear este archivo
de datos. Para entender lo anterior de mejor manera se presenta la f igura
D.2.
Al hacer clic en el botón "Alinear el sistema" se muestra la ventana de la
figura D.3. En esta pantalla, pueden cambiarse 3 parámetros (parte central
superior) haciendo cüc en cambiar configuración; estos 3 parámetros son el
ángulo a girar, el número de medidas (número de lecturas para cada valor
de voltaje), y el tiempo de muestreo (período de movimiento del motor de
ANEXOD 4DManual del usuario
pasos); el número de medidas por cada concentración (número de pasos)
no se puede cambiar ya que es proporcional al ángulo a girar.
Yendo al cuadro de comandos (parte superior derecha), el siguiente paso
consta en tomar lecturas de voltaje de una muestra haciendo clic en e!
botón "Empezar a Tomar Medidas", se debe esperar el recorrido completo
del motor (9° a la izquierda, 20° a la derecha y que vuelva a su posición
inicial en el centro o ángulo cero); luego se debe hacer clic en el botón
"Alinear" y esperar otra vez él recorrido anterior para asegurarse que la
alineación haya sido correcta. Haciendo clic en "Detener" se interrumpe el
proceso.
Entonces se puede acceder a 3 comandos ya conocidos: "Tomar Medidas
de Concentraciones", "Análisis de datos Diagrama de Zimm", "Salir del
Programa". Existe también la opción del comando "Regresar al Menú
Principal" que vuelve al usuario a la ventana principal, esto en caso de que
el usuario desee usar otra muestra sin salir del programa.
ANEXODManual del usuario
Fig D.3 Ventana de Alineación
AI hacer clic en el botón "Tomar Medidas a diferentes Concentraciones" en
cualquiera de las ventanas aparece la ventana de la figura D.4. Esta es
similar a la ventana de alineación.
ANEXODManual del usuario
6D
fciaSA-S) rarn¿££aW&&Ei^33JÉ[35£rEÍ^!^ !333a írí2JS53S£KO£M
!*
F/g D.4 Ventana de mediciones a diferentes concentraciones.
Aquí se puede cambiar solo el período de muestro y el número de medidas
y no el ángulo de giro como en la ventana de alineación; también se
ANEXOD 7DManual del usuario
muestra el valor de la concentración, y el comando "Alinear el sistema"
para recurrir a ia alineación del sistema para cada concentración en caso
necesario.
En el cuadro de comandos existen dos comandos nuevos: "Usar otra
Concentración" que presenta la misma ventana pero con el valor de la
concentración siguiente; el otro comando es "Volver a tomar Medidas de
esta Concentración", que como su nombre lo dice, vuelve a tomar medidas
de voltaje de la misma concentración, esto en caso de que se presente
algún error en las primeras medidas; además este comando anula las
medidas anteriores. El resto de comandos ya son conocidos.
Otro comando importante es el "Análisis de datos Diagrama de Zimm", que
se muestra en todas las ventanas. Este comando muestra una pantalla
para el análisis de datos. Primero se debe hacer clic en el botón "Cargar
Datos de Archivo", este comando lee los datos de los archivos con formato
ya establecido por el mismo programa, y los guarda en una variable tipo
matriz. La figura D.5 muestra la ventana de! diagrama de Zimm.
En esta última ventana en la parte superior izquierda, aparecen algunos
comandos; entre ellos se tiene el botón "Graficar curvas" que presenta las
curvas características de dispersión a diferentes concentraciones de una
solución. A continuación se tiene el botón "Diagrama de Zimm", esté realiza
la gráfica de Zimm y muestra las ecuaciones de extrapolación que
requiere el usuario. Por último se tiene un comando ("Resetear") que limpia
todo para poder usar otra concentración, los otros dos comandos ya se
describieron anteriormente.
ANEXO DManual del usuario
a a" o o a c o o o c a o o o a o a CD
F/g D.5 Ventana del diagrama de Zimm
Todas las ventanas que tienen pantallas de gráficos pueden variar sus
escalas X-Y, Las ventanas muestran todas las lecturas de voltaje con sus
ángulos correspondientes. Otra parte importante es que el programa guía al
usuario con ventanas de mensajes de error cuando se escribe datos que se
salen de los rangos aceptados.