ESCUELA POLITÉCNIC NACIONAA Lbibdigital.epn.edu.ec/bitstream/15000/5640/1/T1752.pdfPuerto paralel...

135
ESCUELA POLITÉCNICA NACIONAL ESCUELA DE INGENIERÍA DISEÑO Y CONSTRUCCIÓN DE UN SISTEMA DE ADQUISICIÓN Y PROCESAMIENTO DE DATOS PARA EL ANÁLISIS DE LA DISPERSIÓN DE LA LUZ EN SOLUCIONES BIOMOLÉCULARES. PROYECTO PREVIO A LA OBTENCIÓN DEL TITULO DE INGENIERO EN ELECTRÓNICA Y CONTROL JOSÉ ROLANDO SOTO JARAMILLO DIRECTOR: Ing. MARCO BARRAGAN Quito, JULIO DEL 2001

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)

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 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

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

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.