Unidad Profesional Interdisciplinaria en Ingeniería y ...

83
INSTITUTO POLITECNICO NACIONAL Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas UPIITA CUANTIFICACIÓN DE HEMOGLOBINA POR MEDIO DE ESPECTROSCOPIA FOTOACÚSTICA PARA APOYO A DIAGNÓSTICOS DE ANEMIA Que para obtener el Título de “INGENIERO BIÓNICO” Presenta Emma Cristina Montellano Allende Presidente Álvaro Anzueto Ríos Asesores D. en C. José Abraham Balderas López D. en C. José de Jesús Garnica Verdiguel

Transcript of Unidad Profesional Interdisciplinaria en Ingeniería y ...

INSTITUTO POLITECNICO NACIONAL

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas

UPIITA

CUANTIFICACIÓN DE HEMOGLOBINA POR MEDIO DE ESPECTROSCOPIA FOTOACÚSTICA PARA APOYO A

DIAGNÓSTICOS DE ANEMIA

Que para obtener el Título de

“INGENIERO BIÓNICO”

Presenta

Emma Cristina Montellano Allende

Presidente

Álvaro Anzueto Ríos

Asesores D. en C. José Abraham Balderas López

D. en C. José de Jesús Garnica Verdiguel

P á g i n a | 2

INSTITUTO POLITECNICO NACIONAL

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas

UPIITA

CUANTIFICACIÓN DE HEMOGLOBINA POR MEDIO DE ESPECTROSCOPIA FOTOACÚSTICA PARA APOYO A

DIAGNÓSTICOS DE ANEMIA

Que para obtener el Título de

“INGENIERO BIÓNICO”

Presenta

Emma Cristina Montellano Allende

Presidente

_________________________________

Álvaro Anzueto Ríos

Asesores ___________________________________

_____________________________________________

D. en C. José Abraham Balderas López

D. en C. José de Jesús Garnica Verdiguel

P á g i n a | 3

AgradecimientosAgradecimientosAgradecimientosAgradecimientos

Siempre has estado en mis pensamientos y hoy no dudare en darte gracias Dios porque

a lo largo de mi paso por esta vida me has permitido encontrarme con las personas

perfectas que además de ser buenos amigos se convirtieron en mi familia, gracias por

poner en mi mente las metas, por darme las fuerzas necesarias para cumplirlas y por la

gracia de poder disfrutar cada etapa cumplida.

Gracias Abuelita Genoveva Carlos Santiago que aunque ya no estás con nosotros te

corresponde la mayor parte de este triunfo, tu fuerza, tu sabiduría y tus cuidados

siempre van conmigo, gracias Mamá Concepción Allende Carlos por ser una buena

guía y un gran apoyo, por levantarte muy temprano y acompañarme todos los días en

mis luchas grandes y pequeñas, gracias a mi mejor amigo Marco Antonio Rangel Parra,

por caminar a mi lado en todos los momentos difíciles y grandiosos, por escuchar con

atención y enseñarme el mundo a través de tus ojos.

Gracias a todas las personas que apoyaron este trabajo, desde mi Instituto Politécnico

Nacional hasta las personas que con una sonrisa me dieron ánimos de continuar.

P á g i n a | 4

Índice general

Simbología ..................................................................................................................................... 7

Resumen ........................................................................................................................................ 8

Abstract ......................................................................................................................................... 8

Glosario ......................................................................................................................................... 9

Capítulo 1 .................................................................................................................................... 10

1.1 Antecedentes ..................................................................................................................... 10

Capítulo 2 .................................................................................................................................... 12

2.1. Objetivos Generales .................................................................................................... 12

2.2. Objetivos Específicos .................................................................................................. 12

Capítulo 3 .................................................................................................................................... 13

PRIMERA PARTE ........................................................................................................................... 14

Capítulo 4 .................................................................................................................................... 15

4.1. La sangre ........................................................................................................................... 15

4.2. La Hemoglobina ................................................................................................................ 16

4.3. Eritropoyetina ................................................................................................................... 17

4.4. Anemia .............................................................................................................................. 18

4.5. Ley de Beer ....................................................................................................................... 18

4.6. Ley de Lambert Bouger-Beer ............................................................................................ 19

4.7. Espectroscopia Fotoacústica .............................................................................................. 20

Capítulo 5 .................................................................................................................................... 27

5.1. Reactivos y Equipo utilizados ............................................................................................. 27

Capítulo 6 .................................................................................................................................... 30

Resultados ............................................................................................................................... 30

SEGUNDA PARTE .......................................................................................................................... 39

Capítulo 7 .................................................................................................................................... 40

7.1. Elementos del sistema ....................................................................................................... 40

Capítulo 8 .................................................................................................................................... 44

8.1. Ensamblado de piezas ....................................................................................................... 44

P á g i n a | 5

Capítulo 9 .................................................................................................................................... 46

9.1. Circuito de amplificación para el micrófono ....................................................................... 46

9.2. Circuito para el control del motor a pasos ......................................................................... 47

9.3. Circuito para el LCD ........................................................................................................... 48

9.4. Circuito para modular el láser ............................................................................................ 48

9.5. Circuito de encendido del foco .......................................................................................... 49

Capítulo 10 .................................................................................................................................. 50

10.1 Creación de la Interfaz ...................................................................................................... 50

10.2 Sistema de cuantificación de Hemoglobina terminado ...................................................... 53

Capítulo 11 .................................................................................................................................. 54

Resultados finales .................................................................................................................... 54

................................................................................................................................................ 54

Capítulo 12 .................................................................................................................................. 55

Conclusiones y Trabajos a futuro ............................................................................................. 55

Referencias .................................................................................................................................. 56

Anexo1 ........................................................................................................................................ 57

Anexo2 ........................................................................................................................................ 61

P á g i n a | 6

Abreviaturas

Hb: Concentración de Hemoglobina

VCM: Volumen corpuscular medio

HCM: Hemoglobina corpuscular media

O₂: Oxigeno

CO₂: Dióxido de carbono

L: Litro

dl: Decilitro

ml: Mililitro

μl: Microlitro

g: Gramo

mV: Milivolts

mm³: Milímetro cubico

μm: Micrómetro

nm: Nanómetro

P á g i n a | 7

Simbología λ=Longitud de onda

β=Coeficiente de absorción óptica

α=Coeficiente de difusividad térmica

ε= Absorbitividad molar

P á g i n a | 8

Resumen

A lo largo de este trabajo se describe detalladamente la investigación, experimentación,

análisis y aplicación de la técnica denominada espectroscopia fotoacústica para la

construcción de un sistema de cuantificación de hemoglobina que sirva como

herramienta de apoyo en el diagnóstico de anemia.

Para encontrar los elementos requeridos y construir el sistema de cuantificación se

trabajo con un sistema de espectroscopia fotoacústica en la Unidad Profesional

Interdisciplinaria en Biotecnología(UPIBI), los primeros experimentos de

caracterización fueron obtenidos al analizar tres muestras de sangre vía venosa de

donantes sanos entre 20 y 30 años de la UPIBI, las muestras se realizaron con dos láser

diferentes, uno de 405nm y otro de 532nm obteniendo como resultado la elección del

láser (Longitud de onda), la cantidad mínima de sangre necesaria para el análisis, la

solución y el tamaño de la celda fotoacústica.

Por último se detalla el proceso de armado del sistema y las primeras pruebas.

Palabras clave: Espectroscopia fotoacústica, Absorción óptica, Celda fotoacústica.

Abstract

Throughout this paper describes in detail the research, testing, analysis and application

of the technique known as photoacoustic spectroscopy for the construction of a system

for quantification of hemoglobin that serves as a support tool in the diagnosis of anemia.

To find the required elements and build the system of quantification was working

with a system of photoacoustic spectroscopy in Professional Interdisciplinary

Biotechnology Unit (UPIBI), the first characterization experiments were obtained by

analyzing three samples of venous blood from healthy donors between 20 and 30 years

of UPIBI, the samples were performed with two different laser, a 405nm and a 532nm

which resulted in the choice of the laser (wavelength), the minimum amount of blood

needed for analysis, solution and photoacoustic cell size.

Finally, details the process of arming the system and the first tests.

P á g i n a | 9

Glosario

Absorbancia: Cantidad de luz que absorbe una muestra, la absorbancia de una solución es directamente proporcional a su concentración cuando satisface la ley de Beer-Lambert para absorción luminosa.

Cromóforo: Sustancia que tiene muchos electrones capaces de absorber energía o luz visible, y excitarse para así emitir diversos colores, dependiendo de las longitudes de onda de la energía emitida por el cambio de nivel energético de los electrones, de estado excitado a estado fundamental o basal.

Dilución: Reducción de la concentración de una sustancia.

Luz monocromática: A diferencia de la luz blanca, que es la superposición de todos los colores del espectro visible, la luz monocromática es aquella que está formada por un solo color, es decir, que tiene una sola longitud de onda.

P á g i n a | 10

Capítulo 1

Introducción

El cuerpo como maquina inteligente de lazo cerrado tiene la capacidad de sensar todas las variables de las que depende para un buen funcionamiento y autoregularlas de acuerdo a sus necesidades. El transporte de oxigeno a las células es una de las necesidades más importantes de este sistema, para lo cual se apoya de un área de control que detecta cuando hay déficit de oxigeno y da la instrucción a la medula ósea para que se generen más glóbulos rojos, por tanto más hemoglobina que es la responsable del transporte de oxigeno al sistema periférico, esta área de control es también llamada Eritropoyetina. Cuando existe algún agente interno o externo que falle como la insuficiencia renal o hemorragias debido a traumas o cirugías el equilibrio del sistema se rompe dando lugar a anemias. Siguiendo este mismo modelo de control (Eritropoyetina) se realiza un análogo para conteo de hemoglobina fuera del cuerpo, usando una muestra de sangre capilar o venosa y una técnica denominada espectroscopia fotoacústica, la cual permite a través de un sistema de celda abierta en la que se hace incidir luz intermitente analizar las propiedades térmicas y ópticas de la sangre y determinar la concentración de hemoglobina en ella.

1.1 Antecedentes

Existen ya en el mercado diversos equipos que han sido diseñados para la cuantificación de hemoglobina con propósitos generales, algunos de ellos y sus principales características se detallan a continuación:

Hemocue

Hemocue AB [1] es una empresa de origen Sueco que fabrica analizadores portátiles de

Hemoglobina, Microalbuminuria, Glucosa y Contadores de Leucocitos que utilizan micro

cubetas desechables, funciona con baterías y corriente alterna, permite almacenar los

P á g i n a | 11

resultados y cuenta con una onda dual de fotómetro que corrige cualquier fuente de

turbidez. Cualquier fuente de sangre (capilar, venosa o arterial) puede ser utilizada.

HG-2000

El medidor de hemoglobina HG-2000[2] es fabricado por una empresa japonesa llamada

APEL e incorpora los últimos avances técnicos en tecnología de microprocesador.

No es necesario mezclar el reactivo y la sangre para preparar la muestra y la calibración

puede realizarse fácilmente utilizando la cubeta precargada de reactivo y solución

estándar

Hemoglonóbimetro

El Hemoglonóbimetro [3] se utiliza para medir la concentración de hemoglobina en la

sangre dando resultados de laboratorio sin diluciones ni mediciones volumétricas. El

principio de funcionamiento de este instrumento es el de comparar el campo de absorción

de la luz verde por la hemoglobina con el campo de absorción de la luz verde por un cristal

de referencia

P á g i n a | 12

Capítulo 2

Objetivos

2.1. Objetivos Generales

Elaborar un equipo de cuantificación de hemoglobina en sangre usando la técnica de espectroscopia fotoacústica.

2.2. Objetivos Específicos

• Encontrar una solución estándar para diluir la sangre y analizar sus propiedades fotoacústicas.

• Determinar experimentalmente la longitud de onda que permita resaltar las características fotoacústicas de la hemoglobina.

• Determinar la concentración mínima de sangre con la cual se puedan realizar estudios con el método de espectroscopia.

• Utilizar los parámetros obtenidos en la experimentación y marco teórico para elegir los elementos que conforman el sistema.

• Diseñar y Maquinar una celda fotoacustica

• Ensamble de los componentes del sistema.

• Procesamiento de la señal fotoacústica.

• Programación del algoritmo de cuantificación de hemoglobina.

• Programar una Interfaz Computadora-Sistema

P á g i n a | 13

Capítulo 3

Planteamiento del problema

Los principales problemas que se desean resolver al construir el prototipo de cuantificación de anemia son: El tiempo de respuesta de un análisis de hemoglobina, y el costo del sistema en comparación con equipos portátiles similares.

Justificación

El monitoreo de hemoglobina es uno de los estudios más requeridos por clínicas del sector público y privado, en la actualidad este problema ha sido resuelto mediante análisis de laboratorios, algunos equipos portátiles y métodos empíricos de medición como asociar a cada gasa mojada de sangre 10ml , sin embargo todas estas soluciones tienen sus defectos, los análisis de laboratorio tardan 24hrs sin embargo para situaciones de emergencia este lujo no puede tomarse, casos como hemorragias o cirugías requieren de algún sistema que monitoree lo más rápido posible la cantidad de hemoglobina en sangre para apoyo a toma de decisiones, por otra parte los equipos portátiles que existen son costos y el método de cuantificación de gasas es impreciso .

El sistema de cuantificación de hemoglobina por espectroscopia fotoacústica para apoyo a diagnósticos de anemia es un prototipo que pretende resolver el problema de tiempo de respuesta y bajo costo, el proceso de extracción de la muestra de sangre sería menos traumática para el paciente y más rápida para el médico al usar la técnica de los glucómetros (extracción capilar) lo cual requeriría menor cantidad de sangre extraída y diagnósticos en menor tiempo, además de dejar las bases teóricas y de

diseño para futuras investigaciones o mejoras.

P á g i n a | 14

PRIMERA PARTE Análisis de Teoría, Experimentación y Extracción de parámetros

necesarios para la construcción del sistema.

P á g i n a | 15

Capítulo 4

Marco Teórico

4.1. La sangre

La sangre es una forma especializada de tejido conjuntivo [4], compuesta por una sustancia intercelular líquida llamada plasma, en la cual se encuentran en suspensión los elementos figurados: hematíes, leucocitos y plaquetas. La sangre circula a través de un sistema de tubos cerrados, denominados vasos sanguíneos. En el adulto sano el volumen de la sangre es de 5 L y constituye aproximadamente el 8% del peso corporal. La sangre actúa manteniendo la composición adecuada y casi constante de los líquidos corporales, los que permiten la nutrición, el crecimiento y la función de las células del organismo. Participa en el intercambio entre el medio externo y los tejidos corporales y además es portadora de hormonas y de otras sustancias biológicamente activas, que regulan el funcionamiento de órganos como el hígado, la médula ósea y las glándulas endocrinas. La función primaria de los hematíes de la sangre es la de mantener en circulación una elevada concentración de hemoglobina, esencial para el transporte de oxigeno y CO₂. Glóbulos rojos

También llamados eritrocitos o hematíes, son corpúsculos muy diferenciados que han perdido todos sus organitos durante la maduración, presentan un color amarillo verdoso, pero en masas densas adquieren un color rojo, debido a la alta concentración de hemoglobina. Los eritrocitos de los mamíferos presentan la forma de discos bicóncavos y de perfil se presentan como cuerpos alargados con extremos redondeados, su tamaño en estado fresco es de 6 a 8um, tienen una vida de 120 días y su valor normal en la mujer promedio es de alrededor de 4.800.000, y en el varón, de aproximadamente 5.400.000 hematíes por mm³ (o microlitro).

P á g i n a | 16

Glóbulos blancos

También llamados leucocitos, son células nucleadas que se encuentran en cantidad mucho menor que los eritrocitos. El número promedio de leucocitos en la sangre circulante es de 5000 a 10000 mm³. En la sangre humana pueden distinguirse dos tipos principalmente: Los leucocitos agranulosos y los granulosos, este criterio de clasificación se basa en la presencia de gránulos específicos en su citoplasma. Hay dos tipos de leucocitos agranulosos, los linfocitos, que son células pequeñas de tamaño aproximado al eritrocito, núcleo redondeado y escaso citoplasma, y los monocitos, células de mayor tamaño, citoplasma más abundante y núcleo ovalado o reniforme. Existen tres clases de leucocitos granulosos, los cuales contienen gránulos específicos en su citoplasma. Se les denomina neutrófilos, eosinófilos y basófilos, según la reacción de coloración de sus gránulos citoplasmáticos.

Plaquetas

Son pequeños corpúsculos incoloros con forma de huso o disco ovalado, que miden de 2 a 4 µm de diámetro, su vida promedio es de 5 a 9 días. Las propiedades físicas de las plaquetas son tres: aglutinación, adhesividad y agregación. En un adulto hay 250.000 plaquetas por mm³ de sangre. Desempeñan una función muy importante tanto en la hemostasia como en la coagulación sanguínea. El término hemostasia se refiere a la detención del flujo de sangre y puede producirse al final de cualquiera de los mecanismos de defensa del cuerpo. En un lapso de 1 a 5seg después de la lesión de un capilar sanguíneo, las plaquetas se adhieren a la cubierta lesionada y entre si para formar un tapón plaquetario que detiene el flujo de sangre hacia los tejidos. En el lugar se liberan prostaglandinas que afectan el flujo sanguíneo local por vasoconstricción. Si la lesión es extensa, se activa el mecanismo de coagulación para ayudar a la hemostasia.

4.2. La Hemoglobina

La hemoglobina es una proteína globular [5] presente en altas concentraciones dentro de los hematíes se encarga del transporte de O₂ del aparato respiratorio hacia los tejidos periféricos; y del transporte de CO₂ y protones (H+) de los tejidos

P á g i n a | 17

periféricos hasta los pulmones para ser excretados. Los valores normales en sangre son de 13 -- 18 g/ dl en el hombre y 12 -- 16 g/dl en la mujer. Se sabe que por cada litro de sangre hay 150 gramos de Hb, y que cada gramo de Hb disuelve 1.34 ml de O₂, en total se transportan 200 ml de O₂ por litro de sangre. Esto es, 87 veces más de lo que el plasma sólo podría transportar. Sin un transportador de O₂ como la Hb, la sangre tendría que circular 87 veces más rápido para satisfacer las necesidades corporales. Una molécula de hemoglobina consta de 2 pares de cadenas polipeptídicas (unión de aminoácidos) llamados globina y 4 grupos proteicos hem que contienen cada uno un átomo de Fe en estado ferroso. Las cadenas peptídicas adoptan una posición helicoidal como se muestra en la figura 4.1; lo que da a la molécula de hemoglobina una estructura esteroide.

Figura 4.1 Posición helicoidal de la hemoglobina y grupo heme.

4.3. Eritropoyetina

La eritropoyetina o EPO es una hormona glicoproteica [5] que estimula la formación de eritrocitos y es el principal agente estimulador de la eritropoyesis natural. En los seres humanos, es producida principalmente por el riñón, el resto en el hígado. La producción de eritropoyetina se ve estimulada por la reducción de tensión de oxígeno en los tejidos (hipoxia tisular) que es detectada por las células intersticiales peritubulares del riñón. Se supone la existencia de un sensor extrarrenal. La noradrenalina, la adrenalina y varias prostaglandinas estimulan la producción de EPO. La eritropoyetina producida en el riñón estimula las células madre de la médula ósea para que aumenten la producción de eritrocitos (glóbulos rojos).

P á g i n a | 18

En el cuerpo humano, la EPO se forma en un 85-90% en el riñón mediante el endotelio de los capilares situados alrededor de los canales nefríticos, y en un 10-15% en los hepatocitos del hígado. Además, podría sintetizarse también en el cerebro, la matriz, los testículos y el bazo.

4.4. Anemia

Las anemias [6] son enfermedades en las que los glóbulos rojos o la hemoglobina (la proteína que transporta oxígeno) presentan valores inferiores a los normales. Los glóbulos rojos contienen la hemoglobina, que les permite transportar oxígeno desde los pulmones hasta las distintas partes del cuerpo. Como en la anemia se reduce el número de los glóbulos rojos o la cantidad de hemoglobina presente en ellos, la sangre no puede transportar una adecuada cantidad de oxígeno. Los análisis simples de sangre pueden detectar la anemia. Es posible determinar el porcentaje de glóbulos rojos en el volumen total de la sangre (hematocrito) y la cantidad de hemoglobina presente en una muestra de sangre. Estos análisis forman parte de un recuento completo de las células sanguíneas. La hemorragia es la causa más frecuente de anemia. Cuando se pierde sangre, el cuerpo rápidamente absorbe agua de los tejidos hacia el flujo sanguíneo a fin de mantener los vasos llenos de sangre. Como resultado, la sangre se diluye y el porcentaje de glóbulos rojos se reduce. Finalmente, se corrige la anemia incrementando la producción de los glóbulos rojos. Sin embargo, la anemia puede ser intensa al principio, sobre todo si es debida a una pérdida súbita de sangre, como sucede en un accidente, una intervención quirúrgica, un parto o la rotura de un vaso sanguíneo.

4.5. Ley de Beer Al pasar un haz de luz monocromático a través de una solución transparente y colorida, su intensidad disminuye exponencialmente a medida que aumenta la concentración de la sustancia absorbente en el medio [7]. Las ecuaciones que expresan esta ley son:

= 10 4.1 Despejando el valor KC se tiene que

= log

4.2

P á g i n a | 19

Donde: I=Intensidad de luz transmitida I₀=Intensidad de luz incidente K=Coeficiente de extinción C=Concentración de la muestra

4.6. Ley de Lambert Bouger-Beer Considérese un haz de luz de intensidad I₀ que penetra en una cubeta llena de una solución de concentración C. Después de haber atravesado a una distancia X dentro de la cubeta, la luz tendrá una intensidad I. Cuando haya atravesado una distancia infinitamente pequeña, dx, la intensidad será I+dl. Evidentemente el incremento dl es negativo pues el haz de luz se debilita al atravesar la celda [7].

= − 4.3

La cantidad

= ln , donde ln es el logaritmo neperiano de I, sustituyendo en la

ecuación 4.3 se obtiene:

ln

= − 4.4

Para convertir los logaritmos neperianos en logaritmos decimales, aquellos se dividen por 2.303, que es el logaritmo neperiano de 10

=

2.303= ! 4.5

Donde ε es una nueva constante denominada absorvitividad molar y sus unidades son Lmol⁻¹cm⁻¹ si la concentración de la solución esta expresada en molaridad.

A la cantidad

se le denomina absorbancia.

P á g i n a | 20

4.7. Espectroscopia Fotoacústica

Se desarrolló en la década de los 70´s [8], y proporciona un medio para la obtención de espectros de absorción ultravioleta y visible de la materia en fase condensada. Esta técnica supuso un gran avance en las técnicas espectroscópicas ya que hasta entonces era muy difícil obtener espectros de absorción de sustancias líquidas y sólidas debido a problemas de dispersión y reflexión de la radiación a concentraciones altas de los

cromóforos absorbentes.

La técnica se basa en el efecto de absorción de radiación modulada (intermitente) y su posterior conversión en calor en virtud de procesos de desextitación no-radiativos. Esto da lugar a fluctuaciones de temperatura en el interior del material, denominados ondas térmicas, las cuales se traducen en una onda de sonido si la frecuencia de modulación está dentro del intervalo de frecuencias acústicas, el cual es detectado por medio de una cámara fotoacústica [9], la cual consiste de una cavidad sellada comunicada a un micrófono a través de un canal delgado.

Un sistema fotoacústico como se muestra en la Figura4.2 está compuesto por los siguientes elementos:

• Fuente de radiación (Láser).

• Cámara fotoacústica.

• Micrófono.

• Amplificador Lock In.

P á g i n a | 21

Figura 4.2 Sistema Fotoacústico y sus componentes.

Existen dos configuraciones básicas de sistemas fotoacústicos, la configuración frontal (celda fotoacústica abierta) y la configuración por transmisión (celda fotoacústica cerrada). La primera utilizada tradicionalmente para estudios de espectroscopia fotoacústica y la otra para estudios de propiedades térmicas.

Modelo Matemático del Sistema

A continuación se describe la teoría de una nueva metodología fotoacústica por transmisión para la medición tanto de difusividad térmica como de coeficiente de

absorción óptico en líquidos. Figura 4.3

P á g i n a | 22

Figura 4.3 Modelo del sistema fotoacústico para su análisis matemático.

La geometría del modelo unidimensional, representado por la figura 4.3 consta de dos capas incrustadas entre dos medios semi-infinitos ópticamente no absorbentes (w y g en esta figura). Cuando la radiación monocromática medida desde el medio w, con intensidad I₀ y una frecuencia modulada f (modulación de frecuencia angular w = 2 π f), incide en el medio m y se absorbe a través de ella de acuerdo con el modelo de Beer-Lambert (suponiendo el medio s transparente para la misma radiación).

Las ecuaciones diferenciales correspondientes para el problema de la difusión de

calor unidimensional son:

Llxt

T

x

T

lxLlt

T

x

T

xleek

I

t

T

x

T

xt

T

x

T

g

g

g

s

s

s

tix

m

m

m

m

w

w

w

−−≤<∞−=∂

∂−

∂∂

−≤≤−−=∂∂−

∂∂

≤≤−−=∂

∂−∂∂

≤=∂

∂−∂∂

01

01

0 1

0 01

2

2

2

2

02

2

2

2

α

α

βα

α

ωβ

(4.6)

- l-L

x

0

- l

w

s (Liquid Sample)

g

m

s

Radiaciòn Modulada

P á g i n a | 23

que son complementadas con las condiciones de contorno normal del flujo de calor y la continuidad de la temperatura en la pieza completa de interfaces w-m, m-s y s-g.

(4.7)

En estas ecuaciones #$, %$ y $ con j=w, m, s, g corresponden a la temperatura, la difusividad

térmica y la conductividad térmica del medio j respectivamente y β (0-30cm⁻¹) es el coeficiente de absorción óptica del medio m el cual tiene un espesor l. La solución del sistema de ecuaciones 4.6, que satisface las condiciones de contorno y el cumplimiento de los requisitos físicos de finitud de la solución, tienen la estructura:

(4.8)

En estas ecuaciones σj=(1+i)aj, j=w ,m, s, g, donde aj=(πf/αj)1/2 es el coeficiente de

difusión térmica medio j y r, definida como r = β /σm y es un parámetro complejo que implica tanto, la absorción óptica de la muestra y su coeficiente de difusión térmica, las incógnitas A, B, D, E, F y G son determinadas mediante la aplicación de las condiciones de frontera. De acuerdo con el modelo Roscencwaig-Gersho para la generación de señales en cámaras fotoacústicas, la señal fotoacústica es proporcional a la temperatura en la capa intermedia de material de sellado de la cámara y el gas en su interior, para la configuración de transmisión de esta intermediaria corresponde en este caso a la que existe entre medio y g s en la figura 4.3. La aplicación de las condiciones de frontera y después de un poco de álgebra es posible demostrar que las fluctuaciones de temperatura en esta capa están dadas por:

),(),(

),(),(

),0(),0(

),(),(

),(),(

),0(),0(

tLlx

TktLl

x

Tk

tlx

Tktl

x

Tk

tx

Tkt

x

Tk

tLlTtLlT

tlTtlT

tTtT

gg

ss

ss

mm

mm

ww

gs

sm

mw

−−∂

∂−=−−

∂∂−

−∂∂−=−

∂∂−

∂∂−=

∂∂−

−−=−−−=−

=

tixg

tixxs

tix

mm

xxm

tixw

eDetxT

eGeFetxT

eer

r

k

IBeAetxT

eEetxT

g

ss

mm

w

ωσ

ωσσ

ωβσσ

ωσ

σ

=

+=

−++=

=

),(

][),(

])1(

[),(

),(

20

P á g i n a | 24

(4.9)

La señal Fotoacústica correspondiente está dada por:

)1()1(

)(2)1)(1()1)(1(

)1(22

)(),,(

20

0

0

−Ψ−+Ω+−+++−−

−=

−−−

lwm

lwm

wmll

wmll

wm

L

mmgg

mm

mm

s

ebeb

breerbeerb

er

r

k

I

alT

fGPfLlP

σσ

σβσβ

σ

σγδ

(4.10)

donde bjh=ej /eh es la relación entre efusividades térmicas para los medios de j y h , P0 y T0 son, respectivamente, la presión ambiente y la temperatura del aire dentro de la

cámara fotoacústica, γ es la relación de calores específicos, γ = cp / cv y lg su espesor. La señal fotoacústica experimental se multiplica por un factor de modulación de frecuencia-dependiente, G(f) en representación de la función de transferencia (Ecuación 4.10) es una expresión compleja muy complicada, que depende a su vez de otros, en las propiedades térmicas y ópticas de los medios de comunicación involucrados. Es entonces posible, en principio, para obtener información de estos parámetros en el análisis de esta ecuación, aunque esto es en general una tarea muy

complicada a menos que las condiciones apropiadas limitantes sean consideradas.

Casos limites especiales

1. Débil absorción de la muestra en el régimen térmico. Si la muestra se comporta en el régimen térmicamente grueso, |σml|>>1 (|exp(-σml)|≈0 y|exp(σml)|>>1), y su coeficiente de absorción óptica es tal

que | r | <1, entonces las expresiones llwm

meerb σβ −−−− )1)(1( y )(2 wmbr + , en el

Lsmgssmgs

Lsmgssmgs

ti

lwm

lwm

wmll

wmll

wm

L

mmg

s

s

mm

mm

s

ebbbb

ebbbb

eebeb

breerbeerb

er

r

k

ItfLlT

σ

σ

ωσσ

σβσβ

σ

σ

2

2

20

)1)(1()1)(1(

y

)1)(1()1)(1(

donde

)1()1(

)(2)1)(1()1)(1(

)1(

2),,,(

−−−

+−+−+=Ψ

−−+++=Ω

−Ψ−+Ω+−+++−−

−=

P á g i n a | 25

numerador, y lwm

meb σ−−Ψ )1( , en el denominador de la ecuación. (3), puede

pasarse por alto y esta ecuación se simplifica a:

)1(

)1)(1(

)1(22

)(),,(

20

0

0 l

wm

wmL

mmgg

eb

rb

r

re

k

I

alT

fGPfLlP

σ

σγδ −

+Ω++

−= (4.11)

Si, además, el espesor de la muestra, l, se considera como la única variable esta última ecuación se puede escribir en forma muy simple:

)( lCelP βδ −= (4.12)

Aquí C es una expresión compleja que, aunque dependiendo de las propiedades físicas de los medios de comunicación implicados, es independiente del espesor de la muestra l. La ecuación 4.12 predice un comportamiento lineal de la amplitud (en escala semi-log) en función del espesor de la muestra, mientras que la fase de la señal fotoacústica se mantiene constante. Es entonces posible obtener el coeficiente de absorción óptica, β, por el pigmento en la solución a través de la ecuación 4.12, el procedimiento experimental consiste en llevar a cabo una exploración de la señal fotoacústica en función del espesor de la muestra de líquido (espesor de la muestra de análisis). El coeficiente de absorción óptica se puede obtener como la pendiente de la recta que ajusta los datos experimentales de amplitud (en escala semi-log) dentro del rango de espesor de la misma muestra, donde la

fase de la señal fotoacústica se mantiene constante.

2. Fuerte absorción de la muestra en el régimen térmico de espesor.

Si, por el otro extremo, el coeficiente de absorción óptica de la muestra es muy

grande (teóricamente β→ ∞ y r →∞) entonces &' ≈ 0 y en los límites se aplica

lo siguiente:

01

,11

,11

)1( ,1

1

)1( ,1

1

)1(

22

2

222

=−

−=−

−=−+−=

−−−=

−−

∞→∞→

∞→∞→∞→

r

rLim

r

rLim

r

rrLim

r

rrLim

r

rrLim

rr

rrr

(4.13)

Y la ecuación 4.10 se simplifica como:

[ ] 1

)1)(1)(1(24

)(),,(

2222

0

0

0

Llsgwm

lmswm

Lsmgs

lL

gssmwmmmgg

smms

ms

eeee

ee

k

I

alT

fGPLlfP

σσσσ

σσ

γγγγγγ

γγγσ

γδ

−−−−

−−

+++

+++=

(4.14)

P á g i n a | 26

donde γj con j, h=w,m,s,g, son los coeficientes térmicos de acoplamiento, que se

define como γjh=(1-bjh)/( 1+bjh). Este límite corresponde al caso de "saturación

de óptica" de la señal fotoacústica, en estas condiciones, el haz de la luz es absorbida a lo largo de una distancia corta dentro de la muestra y, en oposición a la anterior limitación, las propiedades ópticas de la muestra no aparece explícitamente en la ecuación y sólo las propiedades térmicas de la muestra son capaces de ser medidos. Si, además, el régimen térmicamente grueso de la

muestra se considera en la ecuación 4.13 |&σ()| ≈ 0, ésta ecuación se simplifica:

1

)1)(1)(1(24

)(),,( 2

0

0

0 lL

smgs

L

gssmwmmmgg

m

s

s

ee

e

k

I

alT

fGPLlfP σ

σ

σ

γγγγγ

σγδ −

++++= (4.14)

Teniendo en cuenta de nuevo l de la muestra de espesor como la única variable en la ecuación 4.14, esta ecuación se puede escribir como H (C en la ecuación 4.12 que es una expresión compleja independiente del grosor de la muestra l.

)( lmHelP σδ −= (4.15)

La ecuación 4.15 muestra que tanto la amplitud de la señal fotoacústica (en escala semi-log) y la fase tienen un comportamiento lineal en función del espesor de la muestra en estas condiciones. Este comportamiento de las fases que marca la diferencia entre este caso límite y el discutido previamente en la fase uno ha demostrado ser una constante. Un tratamiento adecuado de análisis de la ecuación 4.15 permite que dos valores independientes difusividad térmica, una de la amplitud y el otro de la fase. La metodología experimental consiste en la medición de la amplitud y la fase en función del espesor de la muestra y llevar a cabo un procedimiento de análisis, que consiste en el ajuste lineal de la amplitud (en escala semilogarítmica) y la fase en función del espesor de la muestra. Estos procedimientos producen una pendiente m muy similar de la cual la

difusividad térmica se puede obtener como ,- =.

-2/.

P á g i n a | 27

Capítulo 5

Experimentación Previa

5.1. Reactivos y Equipo utilizados

El primer paso para poder contar la hemoglobina es poder identificarla entre todos los demás componentes de la sangre, un estándar para el análisis espectroscópico de hemoglobina es la solución llamada Cianmetahemoglobina [10], la cual tiene la

propiedad de pintar todas las hemoglobinas para ser detectadas por métodos

espectroscópicos.

Reactivos

Los reactivos usados para la preparación de este estándar son:

• 50mg de Cianuro de potasio.

• 100g de Ferricianuro de potasio.

• 2g de bicarbonato de sodio. Se aforo a 1L de solución. Equipo Para la preparación de la solución se utilizo:

• 1 Balanza analítica (Ohaus E4000).

• 1Parrilla Magnética.

• 1Equipo de espectroscopia fotoacústica de la (UPIBI).

Las características del equipo fotoacústico utilizado son:

• Frecuencia de modulación de 1Hz.

P á g i n a | 28

• Cámara fotoacústica con capacidad de 3ml.

• Láser monocromático de longitud a 405nm (violeta) y a 532nm (verde).

• Amplificador Lock-in.

• Fuente de corriente

5.2. Obtención de muestras de sangre Las primeras muestras de sangre analizadas fueron extraídas vía venosa a alumnos voluntarios de la (UPIBI) con edades de entre 20 y 30 años, se extrajeron 3ml de sangre de cada voluntario y se diluyo con la solución estándar de hemoglobina.

Primero se uso el equipo fotoacústico con un laser violeta (405nm) y se vario el

volumen de sangre y reactivo como se muestra en la tabla 5.1.

Experimento Volumen de Sangre [ml]

Volumen de Reactivo [ml]

Factor de dilución

1 0.02 5 250 2 0.02 11 550

Tabla 5.1 Volumen de Sangre y Reactivo para el láser de 405nm

Se tomaron 30 datos de cada experimento variando la distancia 0.005cm entre cada dato.

Los datos fueron obtenidos por el micrófono en mili volts, procesados por un lock-in para su amplificación y eliminación de ruido y almacenados en un programa con lenguaje Qbasic, posteriormente se graficaron los datos de amplitud y fase con el programa Origin 6.1 en escala semilog y se obtuvo la pendiente de cada grafica (ver

graficas 6.1-6.4).

Dado que la pendiente en amplitud y fase son muy similares entre sí para ambos experimentos, la dilución es muy grande y las pendientes están fuera del rango β (0-

30012), se hayan propiedades térmicas pero no ópticas que son las de interés, por tanto se cambia de laser a uno verde (532nm).

P á g i n a | 29

De manera similar a los experimentos anteriores se usa el equipo fotoacústico con un laser verde variando los volúmenes de sangre y reactivo como se muestra en la tabla

5.2.

Experimento Volumen de Sangre [ml]

Volumen de Reactivo [ml]

Factor de dilución

3 1 0 0 4 1 4 4 5 1 9 9 6 1 15 15 7 1 20 20

Tabla 5.2 Volumen de Sangre y Reactivo para el láser de 532nm

Para el experimento 3 se obtiene una pendiente de 49.99 que sigue estando fuera del rango β sin embargo no tiene ninguna dilución a comparación del experimento 1 con una pendiente de 47.56 y con una dilución de 550, por tanto se siguen haciendo experimentos con el mismo laser verde pero ahora con más diluciones (experimento 4, 5, 6, 7) hasta llegar al experimento 7 donde se encuentran los volúmenes de sangre y reactivo adecuados. (Ver las graficas 6.5-6.14)

5.3. Parámetros necesarios para el sistema. Con base a los experimentos anteriores se concluyo que la longitud de onda apropiada para sangre es 532nm (laser verde) y que el factor de dilución que muestra graficas satisfactorias a propiedades ópticas es 1ml de sangre y 20ml de reactivo.

Como en la práctica se pretende usar extracción capilar (punción en el dedo índice) y no venosa, la cantidad de sangre debe ser menor a 1ml, pero conservar la proporción con el reactivo.

Para obtener la cantidad de sangre mínima necesaria, realizamos la siguiente operación:

-34 =11

20= 0.051

Por tanto la cantidad de sangre que se debe extraer es 0.05ml.

P á g i n a | 30

Capítulo 6

Resultados

Laser violeta (405nm)

Experimento1 Con una dilución de 0.02ml de sangre y 5ml de reactivo se obtienen las graficas 6.1 y 6.2 correspondientes a la amplitud y a la fase de la señal fotoacústica respectivamente. De acuerdo a los criterios establecidos en la sección teórica se puede inferir que a ésta concentración de sangre solamente se puede determinar su difusividad térmica, ya que tanto la amplitud como la fase decrecen linealmente y con aproximadamente la misma pendiente. La pendiente de la amplitud es de 47.56 y el coeficiente de difusividad térmica respectivo es α=0.01389015/7.

Grafica 6.1. Señal Fotoacústica para sangre con dilución 0.02ml a 5ml

En cuanto a la fase su pendiente es de 49.8304 y el coeficiente de difusividad térmica

respectivo es α=0.01265015/7.

0,00 0,05 0,10 0,15 0,20

0,36788

1

2,71828

7,38906

20,08554

54,59815

148,41316

403,42879

λ=405nmm=47.56298α=0.001389 cm2 /s

Ampl

itud

Foto

acús

tica

(mV

)

Longitud de la celda (cm)

P á g i n a | 31

Grafica 6.2. Fase de la señal Fotoacústica para sangre con dilución 0.02ml a 5ml

Experimento2 Con una dilución de 0.02ml de sangre y 11ml de reactivo se obtienen las graficas 6.3 y 6.4 correspondientes a la amplitud y a la fase respectivamente. Para ésta concentración de sangre solamente se puede determinar su difusividad térmica, ya que tanto la amplitud como la fase decrecen linealmente y con aproximadamente la misma pendiente. La pendiente de la amplitud es de 46.27 y el coeficiente de difusividad térmica respectivo es α=0.001466015/7.

0,00 0,05 0,10 0,15 0,20-8

-7

-6

-5

-4

-3

-2

-1

0

λ=405nmm=49.83604α=0.001265 cm2/s

Fase

(rad)

Longitud de la celda (cm)

P á g i n a | 32

Grafica 6.3. Señal Fotoacústica para sangre con dilución 0.02ml a 11ml

En cuanto a la fase su pendiente es de 43.78 y el coeficiente de difusividad térmica respectivo es α=0.01638015/7.

Grafica 6.4. Fase de la señal Fotoacústica para sangre con dilución 0.02ml a 11ml

Laser verde (532nm)

Experimento 3 Con 1ml se sangre sin diluir se obtienen las graficas 6.5 y 6.6 correspondientes a la amplitud y a la fase respectivamente.

0,00 0,05 0,10 0,15 0,20 0,25

1

2,71828

7,38906

20,08554

54,59815

148,41316

403,42879λ=405nmm=-46.27816α=0.001466cm

2/s

Ampl

itud

Foto

acús

tica

(mV

)

Longitud de la celda (cm)

0,03 0,04 0,05 0,06 0,07 0,08 0,09-3,0

-2,5

-2,0

-1,5

-1,0

-0,5

λ=405nmm=-43.78361

α=0.001638cm2/s

Fase

(rad

)

Longitud de la celda (cm)

P á g i n a | 33

Al igual que el experimento anterior para ésta concentración de sangre solamente se puede determinar su difusividad térmica, ya que tanto la amplitud como la fase decrecen linealmente y con aproximadamente la misma pendiente. La pendiente de la amplitud es de 49.99 y el coeficiente de difusividad térmica

respectivo es α=0.001257015/7.

Grafica 6.5. Señal Fotoacústica para sangre sin dilución

En cuanto a la fase su pendiente es de 48.10 y el coeficiente de difusividad térmica respectivo es α=0.01358015/7.

Grafica 6.6. Fase de la señal Fotoacústica para sangre sin dilución

0,04 0,06 0,082,71828

7,38906

20,08554

54,59815

λ=532nmm=-49.99681 cm

-1

α=0.001257 cm2/s

Am

plitu

d Fo

toac

ústic

a (m

V)

Longitud de la celda (cm)

0,04 0,05 0,06 0,07 0,08 0,09-5

-4

-3

-2

λ=532nmm=-48.10452α=0.001358 cm2/s

Fase

(rad

)

Longitud de la celda (cm)

P á g i n a | 34

Experimento 4

Con una dilución de 1ml de sangre y 4ml de reactivo se obtienen las graficas 6.7 y 6.8 correspondientes a la amplitud y a la fase respectivamente. Aunque este caso parece similar a los ya analizados anteriormente (comportamientos aproximadamente lineales en la amplitud y la fase) las pendientes respectivas difieren considerablemente, 35.35 y 24.03, respectivamente, por lo cual y en base a os criterios ya mencionados, esta concentración se encuentra en el límite intermedio en el cual se aplica estrictamente la ecuación 4.10, por lo que la determinación de parámetros ópticos o térmicos resulta muy complicada. La pendiente de la amplitud es de 35.35 y el coeficiente de difusividad térmica

respectivo es α=0.002513015/7.

Grafica 6.7. Señal Fotoacústica para sangre con dilución 1ml a 4ml

En cuanto a la fase su pendiente es de 24.03 y el coeficiente de difusividad térmica

respectivo es α=0.015437015/7.

0,02 0,04 0,06 0,08 0,10

1

2,71828

7,38906λ=532nmm=-35.35431α=0.002513 cm2/s

Ampl

itud

Foto

acús

tica

(mV

)

Longitud de la celda (cm)

P á g i n a | 35

Grafica 6.8. Fase de la señal Fotoacústica para sangre con dilución 1ml a 4ml

Experimento 5 Con una dilución de 1ml de sangre y 9ml de reactivo se obtienen las graficas 6.9 y 6.10 correspondientes a la amplitud y a la fase respectivamente. Se tiene en este caso un comportamiento lineal en la amplitud pero, a diferencia de los dos casos anteriores, un comportamiento en la fase constante en un rango de grosores de la muestra líquida, por lo que, de acuerdo a los criterios ya establecidos, se tiene una concentración de muestra al cual se le puede determinar propiedades ópticas. Llevando a cabo el ajuste lineal correspondiente se tiene un coeficiente de absorción óptico de β= 30.40012 .

0,03 0,04 0,05 0,06 0,07 0,08 0,09 0,10 0,11-2,2

-2,0

-1,8

-1,6

-1,4

-1,2

-1,0

-0,8

-0,6

-0,4

λ=532nmm=-24.03788

α=0.005437 cm2/sFa

se (r

ad)

Longitud de la celda (cm)

P á g i n a | 36

Grafica 6.9. Señal Fotoacústica para sangre con dilución 1ml a 9ml

En cuanto a la fase se observa un comportamiento diferente a la amplitud a diferencia de las graficas anteriores.

Grafica 6.10. Fase de la señal Fotoacústica para sangre con dilución 1ml a 9ml

Experimento6 Con una dilución de 1ml de sangre y 15ml de reactivo se obtienen las graficas 6.11 y 6.12 correspondientes a la amplitud y a la fase respectivamente.

0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,200,13534

0,36788

1

2,71828

λ=532 nm

β=30.40249 cm-1Am

plitu

d Fo

toac

ústic

a (m

V)

Longitud de la celda (cm)

P á g i n a | 37

La fase para este experimento resulta constante en un rango de grosores de la muestra líquida, por lo que, de acuerdo a los criterios ya establecidos, se tiene una concentración de muestra al cual se le puede determinar propiedades ópticas. La pendiente de la amplitud β= 12.49012 .

Grafica 6.11. Señal Fotoacústica para sangre con dilución 1ml a 15ml

Al igual que la grafica de fase anterior conforme se tienen propiedades ópticas las graficas de fase van tendiendo a una constante.

Grafica 6.12. Fase de la señal Fotoacústica para sangre con dilución 1ml a 15ml

0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,20

1

2,71828

λ=532nmβ=12.49091 cm -1

Ampl

itud

Foto

acús

tica

(mV

)

Longitud de la celda (cm)

0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,20-0,31

-0,30

-0,29

-0,28

-0,27

-0,26

-0,25

-0,24

-0,23

-0,22

Fase

(rad

)

Longitud de la celda (cm)

P á g i n a | 38

Experimento 7 Con una dilución de 1ml de sangre y 20ml de reactivo se obtienen las graficas 6.13 y 6.14 correspondientes a la amplitud y a la fase respectivamente. La fase permanece constante en un rango de grosores de la muestra líquida, por lo que, de acuerdo a los criterios ya establecidos, se tiene una concentración de muestra al cual se le puede determinar propiedades ópticas. La pendiente de la amplitud β= 14.03012 .

Grafica 6.13. Señal Fotoacústica para sangre con dilución 1ml a 20ml

Grafica 6.14.Fase de la señal Fotoacústica para sangre con dilución 1ml a 20ml.

0,02 0,04 0,06 0,08 0,10 0,12 0,14 0,16 0,18 0,200,13534

0,36788

1

λ=532nm

β=14.03173 cm-1

Ampl

itud

Foto

acús

tica

(mV

)

Longitud de la celda (cm)

0,020,030,040,050,060,070,080,090,100,110,120,130,140,150,160,170,180,19

-0,6

-0,4

-0,2

Fase

(rad

)

Longitud de la celda(cm)

P á g i n a | 39

SEGUNDA PARTE (Diseño, construcción y primeras pruebas del prototipo de

cuantificación de hemoglobina)

P á g i n a | 40

Capítulo 7

Construcción del sistema de cuantificación de Hemoglobina.

7.1. Elementos del sistema Con los parámetros obtenidos del capítulo anterior se compraron los siguientes elementos:

Láser El láser usado se compro de Canadá vía internet a la empresa Apinex y sus principales características son:

• Longitud de onda de 532nm.

• 5mw de Potencia.

• Tensión de 3 a 5v

• Corriente mínima necesaria de 400mA.

Figura 7.1. Modulo láser de 532nm

P á g i n a | 41

Motor a pasos Para el desplazamiento de láser en el eje vertical se requiere de un motor a pasos bipolar cuyas características son:

• Tensión de 12v

• 1A de corriente

• 33 pasos en un giro

Figura 7.2.Motor a pasos bipolar

Celda Fotoacústica Para poder contener 1ml del reactivo (estándar de hemoglobina) y 0.05ml de sangre el tamaño de la celda se diseño de 2cm de largo por 1de alto. (Ver los planos del la celda en el anexo1).

Figura 7.3. Celda fotoacustica vista lateral

Arduino Uno Para procesar las señales del micrófono y controlar el sistema se eligió una tarjeta de adquisición de datos llamada arduino uno que cuenta con las siguientes características:

• 14 entrada/salida digitales, de los cuales 6 pueden se usados como salidas PWM

• Posee 6 entradas analógicas

P á g i n a | 42

• Los pin 0 y 1 pueden funcionar como RX y TX serial. • Un oscilador de crystal de 16 MHz • Conector USB • Un jack de poder • Una conector ICSP • Botón de Reset

Figura7.4. Tarjeta de adquisición de datos Arduino Uno

Otras características técnicas de la tarjeta se muestran a continuación:

Microcontroller ATmega328 Operating Voltage 5V Input Voltage (recommended) 7-12 V Input Voltage (limits) 6-20 V Digital I/O Pins 14 (of which 6 provide PWM output) Analog Input Pins 6 DC Current per I/O Pin 40 mA DC Current for 3.3V Pin 50 mA Flash Memory 32 KB (of which 0.5 KB used by

bootloader) SRAM 2 KB EEPROM 1 KB Clock Speed 16 MHz

Tabla 7.1. Características técnicas de la tarjeta Arduino LCD El LCD solo desplegara el valor en mv de la señal obtenida por el micrófono por ello se eligió un LCD de 16x2 con alimentación de 5v directa del Arduino.

P á g i n a | 43

Figura 7.5 LCD de 16x2

Fuente de alimentación

La fuente de alimentación iomega pudo cubrir las necesidades de alimentar tanto al motor como al láser, su principal características es que tiene dos alimentaciones, 5v y 12v con una corriente de 1.5A.

Carcasa del sistema

En proporción al motor, poleas y considerando los espacios de las tarjetas de se diseño una caja de lámina negra con las siguientes medidas: 20cm de largo, 15cm de profundidad y 38cm de alto (Ver planos en el anexo1).

P á g i n a | 44

Capítulo 8

Parte Mecánica del sistema.

8.1. Ensamblado de piezas

En el siguiente capítulo se hace un análogo al sistema fotoacústico de la figura 4.2, el principal objetivo es desplazar el láser en el eje vertical hasta que entre en la abertura de la celda fotoacústica. Se tiene un motor con movimiento rotacional entonces se propone el siguiente diseño para convertirlo en un movimiento traslacional.

Figura 8.1. Diseño para el desplazamiento del láser

Polea

Motor

Banda

Láser

Celda

P á g i n a | 45

(El plano de este diseño en SolidWorks se muestra en el anexo1). La carcasa se perforo para en la parte superior e inferior para poder montar las varillas que sujetan la placa con el láser y posteriormente se atornillaron. En la figura 8.2 se muestran la polea y la banda que se sujeto a la placa del láser por un dentado de plástico y en su extremo inferior el motor a pasos. El diseño ya construido y montado a la carcasa es el siguiente:

Figura 8.2. Ensamble carcasa-sistema fotoacústico

P á g i n a | 46

Capítulo 9

Parte Electrónica del sistema

9.1. Circuito de amplificación para el micrófono

Como primera parte se necesita amplificar la señal que arroja el micrófono para después llevarla al ADC del Arduino.

Para este fin se diseño el siguiente circuito con un amplificador operacional LM386 y un acoplador de impedancias (LM324), ambos circuitos fueron alimentados con la fuente general del sistema en la salida de 5v. La salida A1 se conectara con la tarjeta Arduino Uno en el mismo pin.

Figura 9.1Circuilto de Amplificación

P á g i n a | 47

9.2. Circuito para el control del motor a pasos

Para controlar la potencia del motor a pasos se hizo uso del circuito integrado L293 que contiene de manera interna un puente H, la alimentación de este circuito es de 12v sin embargo la máxima corriente que soporta es de 1A, la fuente de alimentación general del sistema es de 1.5A por ello se añadieron al circuito 2 resistencias

limitadoras de 100Ω.

Las entradas 6,5,4,3 se conectan al arduino uno en los mismos pines y las salidas A,B,C,D se conectan al motor a pasos.

Figura9.2. Circuito de control del motor a pasos

P á g i n a | 48

9.3. Circuito para el LCD

El diagrama de conexionado del LCD se muestra a continuación, el conector1 es el cable que lleva la información del LCD al circuito general.

Las entradas GND,5v,13,12,11,10,9 y 8 se conectan al arduino uno.

Figura 9.3.Diagrama de conexionado del LCD

9.4. Circuito para modular el láser

Se construyo un interruptor electrónico para controlar el prendido del láser por medio de un pulso de 1Hz del Arduino.

P á g i n a | 49

Figura 9.4. Circuito de control de láser

9.5. Circuito de encendido del foco

Para poder verificar la conexión entre el arduino y el sistema se instalo un foco de 12v, en cuanto

la interfaz computadora-arduino revisa las conexiones el foco prendera en señal de listo.

Figura 9.5. Circuito de encendido del foco

Para el diagrama 9.4 y 9.5 las entradas A5 y A4 se conectan a la tarjeta arduino.

P á g i n a | 50

Capítulo 10

Interfaz Gráfica Sistema-computadora

10.1 Creación de la Interfaz

La programación de la interfaz se realizo en la plataforma Visual Studio 2008 y en el programa C++ cli y se unió con la programación del Arduino Uno. (El código se

muestra en el anexo 2) .

Una vez que se conecta la fuente de alimentación del sistema y el cable USB a la computadora se abre la interfaz grafica con el icono de Detector_de_Anemia ubicado

en el escritorio.

Detector_de_Anemia.exe

Figura 10.1. Icono para abrir la interfaz gráfica

Inmediatamente se abre la interfaz como se muestra a continuación.

P á g i n a | 51

Figura10.2.Interfaz sistema-computadora

La interfaz posee dos pestañas una de Medición y otra de datos técnicos, en la primera pestaña se verifica que la conexión este correcta.

Después de oprimir el icono de checar conexión, el sistema prendera el foco y el laser y los apagara inmediatamente, lo cual indica que todo está correcto y manda a un mensaje de listo!.

Figura10.3 Mensaje de conexión correcta.

Después de poner la solución y la sangre en la celda fotoacústica se oprime el icono de comenzar y entonces el laser bajara a la celda fotoacústica prendiendo y apagagando en intervalos de 1s.

P á g i n a | 52

Una vez que el sistema haya terminado de tomar los 100 datos con intervalos de 50ms aparecerá un mensaje de Terminado!.

Figura 10.4 Mensaje de terminado.

Una vez que el sistema haya terminado de leer los datos, se entra a la pestaña de datos técnicos, donde aparecerá una grafica similar a las mostradas en el capítulo 6, lo único que se debe de hacer es seleccionar con los botones de desplazamiento la región que se aproxime a una constante y obtendremos el valor del coeficiente de absorción

óptico.

Figura10.5 Grafica de datos mostrada por la interfaz.

P á g i n a | 53

La grafica mostrada por la interfaz pertenece a la amplitud de la señal fotoacústica, después de haber seleccionado el rango se oprime calcular y se regresa a la pantalla

de medición para poder ver el valor de β.

10.2 Sistema de cuantificación de Hemoglobina terminado

Figura 10.6 Sistema de cuantificación de Hemoglobina por espectroscopia fotoacústica

Figura 10.7Panatalla LCD mostrando datos adquiridos.

P á g i n a | 54

Capítulo 11

Resultados finales

Se realizaron 6 pruebas con el sistema de cuantificación de hemoglobina en voluntarios de 24 a 58 años y se obtuvieron graficas que no fueron similares a las del capítulo 6, la mayoría de las graficas obtenidas mostraban datos que si tendían a una

constante, pero con betas muy pequeñas (β=0.0123601−2 para la grafica 11.1) que arrojaban resultados erróneos al querer relacionarlos con un diagnostico de anemia.

Figura 11.1 Grafica arrojada por el sistema de cuantificación.

Después de revisar el sistema se concluyo que el error es debido a que la amplificación requiere ser más especializada y que el sistema necesita de un equipo lock-in para poder funcionar correctamente.

P á g i n a | 55

Capítulo 12

Conclusiones y Trabajos a futuro

Después de haber visto los resultados finales se puede concluir que el objetivo de traducir la teoría de la espectroscopia fotoacústica a un sistema tangible de medición de hemoglobina se cumplió, el tiempo de respuesta también se acorto de 24hrs que tardan los laboratorios convencionales a 30s, sin embargo la efectividad y confiabilidad del sistema requieren un duro trabajo.

El sistema tiene mucho por corregir y mejorar empezando por la implementación de un lock-in, posteriormente programar la grafica de fase, reducir las medidas, elaborar circuitos impresos, hacer pruebas con personas que padezcan diferentes

enfermedades, validar el sistema en algún centro de salud y validar los resultados.

P á g i n a | 56

Referencias

[1]Lynnette Neufeld. "Hemoglobin measured by Hemocue and a reference method in venous and capillary blood: A validation study". Salud Pública Mex. 2002

[2] Apel. http://www.apel.co.jp/HG-2000-s.html (consultado, Febrero 15,2011)

[3]MercadoLibre.http://articulo.mercadolibre.com.ve/MLV-28000998-hemoglonobimetro-medidor-de JM#utm_medium=PMS&utm_campaign=5799818&utm_source=http://natyo.co.ve (consultado Febrero 15,2011)

[4]uchicagokidshospital. Comer Children`s Hospital, The University of Chicago.

[5] Alors Correderas Rosario. "Determinación de la hemoglobina en el laboratorio".

[6]Colins F. "Transfusiones de Sangre y Trastornos de la Hemostasia Quirúrgica".

México DF, Interamericana. 1991.

[7]Balderas López Abraham, "Photoacoustic methodology to measure thermal and optical properties of dye solutions"

[8]Review of Scientific Instruments 77, México Distrito Federal,2006

[9]Costa J. "Diccionario de quimica física" Editorial Díaz de Santos Ediciones, España, 2006.

[10] tp://www.grupocomsurlab.com/index.php?page=shop.product_details&flypage= flypage.tpl&product_id=5546&category_id=199&option=com_virtuemart&Itemid=29&vmcchk=1&Itemid=29

P á g i n a | 57

Anexo1 Planos de las piezas mecánicas

Celda

P á g i n a | 58

Carcasa

P á g i n a | 59

P á g i n a | 60

P á g i n a | 61

Anexo2 Programa para interfaz grafica en el lenguaje C++ cli

#pragma once #include "stdafx.h" #include <iostream> using namespace std; using namespace System::IO::Ports; #include <windows.h> #include <conio.h> #include <stdio.h> #include <math.h> namespace Detector_de_Anemia using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Resumen de Form1 /// /// ADVERTENCIA: si cambia el nombre de esta clase, deberá cambiar la /// propiedad 'Nombre de archivos de recur sos' de la herramienta de compilación de recursos administrado s /// asociada con todos los archivos .resx de los que depende esta clase. De lo contrario, /// los diseñadores no podrán interactuar correctamente con los /// recursos adaptados asociados con este formulario. /// </summary> public ref class Form1 : public System::Windows::Forms::Form #pragma region Función Principal public : int *Datos; private : System::Windows::Forms::Label^ label20; public : double *Desp; Form1( void ) InitializeComponent();

P á g i n a | 62

Datos= new int (102); Desp= new double (102); #pragma endregion #pragma region Limpiar Recursos protected : /// <summary> /// Limpiar los recursos que se estén utilizando. /// </summary> ~Form1() if (components) delete components; #pragma endregion private : System::Windows::Forms::TabControl^ tabControl1; private : System::Windows::Forms::TabPage^ tabPage1; private : System::Windows::Forms::TabPage^ tabPage2; private : System::Windows::Forms::Label^ label4; private : System::Windows::Forms::Label^ label3; private : System::Windows::Forms::Label^ label2; private : System::Windows::Forms::PictureBox^ pictureBox2; private : System::Windows::Forms::PictureBox^ pictureBox1; private : System::Windows::Forms::Label^ label1; private : System::Windows::Forms::Label^ label5; private : System::Windows::Forms::Label^ label7; private : System::Windows::Forms::DataGridView^ dataGridVi ew1; private : System::Windows::Forms::DataVisualization::Charting ::Chart^ chart1; private : System::Windows::Forms::Label^ label8; private : System::Windows::Forms::Label^ label11; private : System::Windows::Forms::Button^ button2; private : System::Windows::Forms::Label^ label9; private : System::Windows::Forms::Label^ label12; private : System::Windows::Forms::Label^ label10; private : System::Windows::Forms::Label^ label13; private : System::Windows::Forms::Label^ label14; private : System::Windows::Forms::HScrollBar^ hScrollBar2; private : System::Windows::Forms::HScrollBar^ hScrollBar1; private : System::Windows::Forms::Label^ label15; private : System::Windows::Forms::Label^ label6; private : System::Windows::Forms::Button^ button1; private : System::Windows::Forms::GroupBox^ groupBox1; private : System::Windows::Forms::Label^ label17; private : System::Windows::Forms::Label^ label16; private : System::Windows::Forms::Button^ button3; private : System::Windows::Forms::Label^ label19; private : System::Windows::Forms::Label^ label18; private : System::Windows::Forms::Button^ button4; private : System::Windows::Forms::DataGridViewTextBoxColumn ^ Column1;

P á g i n a | 63

private : System::Windows::Forms::DataGridViewTextBoxColumn ^ Column2; private :System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// <summary> /// Método necesario para admitir el Diseñador. No se puede modificar /// el contenido del método con el editor de código . /// </summary> void InitializeComponent( void ) System::ComponentModel::ComponentResourceManager ^ resources = ( gcnew System::ComponentModel::ComponentResourceManager(Fo rm1:: typeid )); System::Windows::Forms::DataVisualization::Chartin g::ChartArea^ chartArea1 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::ChartArea()); System::Windows::Forms::DataVisualization::Chartin g::Legend^ legend1 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::Legend()); System::Windows::Forms::DataVisualization::Chartin g::Series^ series1 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::Series()); System::Windows::Forms::DataVisualization::Chartin g::Series^ series2 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::Series()); System::Windows::Forms::DataVisualization::Chartin g::DataPoint^ dataPoint1 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::DataPoint(0, 0)); System::Windows::Forms::DataVisualization::Chartin g::DataPoint^ dataPoint2 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::DataPoint(0, 1500)); System::Windows::Forms::DataVisualization::Chartin g::DataPoint^ dataPoint3 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::DataPoint(1, 1500)); System::Windows::Forms::DataVisualization::Chartin g::DataPoint^ dataPoint4 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::DataPoint(1, 0)); System::Windows::Forms::DataVisualization::Chartin g::DataPoint^ dataPoint5 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::DataPoint(0,

P á g i n a | 64

0)); this ->tabControl1 = ( gcnew System::Windows::Forms::TabControl()); this ->tabPage1 = ( gcnew System::Windows::Forms::TabPage()); this ->label20 = ( gcnew System::Windows::Forms::Label()); this ->groupBox1 = ( gcnew System::Windows::Forms::GroupBox()); this ->label13 = ( gcnew System::Windows::Forms::Label()); this ->label17 = ( gcnew System::Windows::Forms::Label()); this ->label16 = ( gcnew System::Windows::Forms::Label()); this ->label6 = ( gcnew System::Windows::Forms::Label()); this ->button1 = ( gcnew System::Windows::Forms::Button()); this ->label12 = ( gcnew System::Windows::Forms::Label()); this ->label10 = ( gcnew System::Windows::Forms::Label()); this ->label9 = ( gcnew System::Windows::Forms::Label()); this ->label11 = ( gcnew System::Windows::Forms::Label()); this ->button2 = ( gcnew System::Windows::Forms::Button()); this ->label8 = ( gcnew System::Windows::Forms::Label()); this ->label7 = ( gcnew System::Windows::Forms::Label()); this ->tabPage2 = ( gcnew System::Windows::Forms::TabPage()); this ->label19 = ( gcnew System::Windows::Forms::Label()); this ->label18 = ( gcnew System::Windows::Forms::Label()); this ->button4 = ( gcnew System::Windows::Forms::Button()); this ->button3 = ( gcnew System::Windows::Forms::Button()); this ->label15 = ( gcnew System::Windows::Forms::Label()); this ->label14 = ( gcnew System::Windows::Forms::Label()); this ->hScrollBar2 = ( gcnew System::Windows::Forms::HScrollBar()); this ->hScrollBar1 = ( gcnew System::Windows::Forms::HScrollBar()); this ->chart1 = ( gcnew System::Windows::Forms::DataVisualization::Charting ::Chart()); this ->dataGridView1 = ( gcnew System::Windows::Forms::DataGridView()); this ->Column1 = ( gcnew System::Windows::Forms::DataGridViewTextBoxColumn() ); this ->Column2 = ( gcnew System::Windows::Forms::DataGridViewTextBoxColumn() ); this ->label4 = ( gcnew System::Windows::Forms::Label()); this ->label3 = ( gcnew System::Windows::Forms::Label());

P á g i n a | 65

this ->label2 = ( gcnew System::Windows::Forms::Label()); this ->pictureBox2 = ( gcnew System::Windows::Forms::PictureBox()); this ->pictureBox1 = ( gcnew System::Windows::Forms::PictureBox()); this ->label1 = ( gcnew System::Windows::Forms::Label()); this ->label5 = ( gcnew System::Windows::Forms::Label()); this ->tabControl1->SuspendLayout(); this ->tabPage1->SuspendLayout(); this ->groupBox1->SuspendLayout(); this ->tabPage2->SuspendLayout(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->chart1))->BeginInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->dataGridView1))->BeginInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->pictureBox2))->BeginInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->pictureBox1))->BeginInit(); this ->SuspendLayout(); // // tabControl1 // this ->tabControl1->Controls->Add( this ->tabPage1); this ->tabControl1->Controls->Add( this ->tabPage2); this ->tabControl1->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 12, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->tabControl1->Location = System::Drawing::Point(12, 115); this ->tabControl1->Name = L "tabControl1" ; this ->tabControl1->SelectedIndex = 0; this ->tabControl1->Size = System::Drawing::Size(775, 449); this ->tabControl1->TabIndex = 0; // // tabPage1 // this ->tabPage1->Controls->Add( this ->label20); this ->tabPage1->Controls->Add( this ->groupBox1); this ->tabPage1->Controls->Add( this ->label17); this ->tabPage1->Controls->Add( this ->label16); this ->tabPage1->Controls->Add( this ->label6); this ->tabPage1->Controls->Add( this ->button1); this ->tabPage1->Controls->Add( this ->label12); this ->tabPage1->Controls->Add( this ->label10); this ->tabPage1->Controls->Add( this ->label9); this ->tabPage1->Controls->Add( this ->label11); this ->tabPage1->Controls->Add( this ->button2); this ->tabPage1->Controls->Add( this ->label8); this ->tabPage1->Controls->Add( this ->label7);

P á g i n a | 66

this ->tabPage1->Location = System::Drawing::Point(4, 29); this ->tabPage1->Name = L "tabPage1" ; this ->tabPage1->Padding = System::Windows::Forms::Padding(3); this ->tabPage1->Size = System::Drawing::Size(767, 416); this ->tabPage1->TabIndex = 0; this ->tabPage1->Text = L "Medición" ; this ->tabPage1->UseVisualStyleBackColor = true ; // // label20 // this ->label20->AutoSize = true ; this ->label20->BackColor = System::Drawing::Color::FromArgb( static_cast <System::Int32>( static_cast <System::Byte>(255)), static_cast <System::Int32>( static_cast <System::Byte>(128)), static_cast <System::Int32>( static_cast <System::Byte>(0))); this ->label20->FlatStyle = System::Windows::Forms::FlatStyle::Popup; this ->label20->Font = ( gcnew System::Drawing::Font(L "Bell MT" , 20.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label20->ForeColor = System::Drawing::SystemColors::ControlLightLight; this ->label20->Location = System::Drawing::Point(165, 306); this ->label20->Name = L "label20" ; this ->label20->Size = System::Drawing::Size(95, 31); this ->label20->TabIndex = 29; this ->label20->Text = L "(1/cm)" ; this ->label20->Visible = false ; // // groupBox1 // this ->groupBox1->Controls->Add( this ->label13); this ->groupBox1->Location = System::Drawing::Point(366, 273); this ->groupBox1->Name = L "groupBox1" ; this ->groupBox1->Size = System::Drawing::Size(363, 85); this ->groupBox1->TabIndex = 28; this ->groupBox1->TabStop = false ; // // label13 // this ->label13->AutoSize = true ; this ->label13->Font = ( gcnew System::Drawing::Font(L "Century Gothic" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label13->Location = System::Drawing::Point(7, 22); this ->label13->Name = L "label13" ; this ->label13->Size = System::Drawing::Size(333, 42);

P á g i n a | 67

this ->label13->TabIndex = 23; this ->label13->Text = L "Los valores normales de hemoglobina son:\r\n12-16g/dL" ; // // label17 // this ->label17->AutoSize = true ; this ->label17->Font = ( gcnew System::Drawing::Font(L "Century Gothic" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label17->Location = System::Drawing::Point(43, 367); this ->label17->Name = L "label17" ; this ->label17->Size = System::Drawing::Size(148, 21); this ->label17->TabIndex = 27; this ->label17->Text = L "Su diagnóstico es:" ; // // label16 // this ->label16->AutoSize = true ; this ->label16->BackColor = System::Drawing::Color::White; this ->label16->FlatStyle = System::Windows::Forms::FlatStyle::Popup; this ->label16->Font = ( gcnew System::Drawing::Font(L "Bell MT" , 20.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label16->ForeColor = System::Drawing::SystemColors::ControlText; this ->label16->Location = System::Drawing::Point(226, 361); this ->label16->Name = L "label16" ; this ->label16->Size = System::Drawing::Size(133, 31); this ->label16->TabIndex = 26; this ->label16->Text = L "Resultado" ; this ->label16->Visible = false ; // // label6 // this ->label6->AutoSize = true ; this ->label6->BackColor = System::Drawing::Color::FromArgb( static_cast <System::Int32>( static_cast <System::Byte>(192)), static_cast <System::Int32>( static_cast <System::Byte>(192)), static_cast <System::Int32>( static_cast <System::Byte>(0))); this ->label6->FlatStyle = System::Windows::Forms::FlatStyle::Popup; this ->label6->Font = ( gcnew System::Drawing::Font(L "Chiller" , 20.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label6->ForeColor = System::Drawing::SystemColors::ControlLightLight;

P á g i n a | 68

this ->label6->Location = System::Drawing::Point(250, 218); this ->label6->Name = L "label6" ; this ->label6->Size = System::Drawing::Size(109, 31); this ->label6->TabIndex = 25; this ->label6->Text = L "Terminado!" ; this ->label6->Visible = false ; // // button1 // this ->button1->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 9.75F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->button1->ForeColor = System::Drawing::Color::Blue; this ->button1->Location = System::Drawing::Point(243, 71); this ->button1->Name = L "button1" ; this ->button1->Size = System::Drawing::Size(147, 32); this ->button1->TabIndex = 24; this ->button1->Text = L "Checar Conexión" ; this ->button1->UseVisualStyleBackColor = true ; this ->button1->Click += gcnew System::EventHandler( this , &Form1::button1_Click); // // label12 // this ->label12->AutoSize = true ; this ->label12->BackColor = System::Drawing::Color::FromArgb( static_cast <System::Int32>( static_cast <System::Byte>(255)), static_cast <System::Int32>( static_cast <System::Byte>(128)), static_cast <System::Int32>( static_cast <System::Byte>(0))); this ->label12->FlatStyle = System::Windows::Forms::FlatStyle::Popup; this ->label12->Font = ( gcnew System::Drawing::Font(L "Bell MT" , 20.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label12->ForeColor = System::Drawing::SystemColors::ControlLightLight; this ->label12->Location = System::Drawing::Point(19, 306); this ->label12->Name = L "label12" ; this ->label12->Size = System::Drawing::Size(133, 31); this ->label12->TabIndex = 22; this ->label12->Text = L "Resultado" ; this ->label12->Visible = false ; this ->label12->Click += gcnew System::EventHandler( this , &Form1::label12_Click); // // label10 // this ->label10->AutoSize = true ;

P á g i n a | 69

this ->label10->Font = ( gcnew System::Drawing::Font(L "Century Gothic" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label10->Location = System::Drawing::Point(6, 273); this ->label10->Name = L "label10" ; this ->label10->Size = System::Drawing::Size(328, 21); this ->label10->TabIndex = 21; this ->label10->Text = L "La cantidad de hemoglobina medida es:" ; // // label9 // this ->label9->AutoSize = true ; this ->label9->BackColor = System::Drawing::Color::Red; this ->label9->Font = ( gcnew System::Drawing::Font(L "Chiller" , 20.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label9->ForeColor = System::Drawing::SystemColors::ControlLightLight; this ->label9->Location = System::Drawing::Point(427, 72); this ->label9->Name = L "label9" ; this ->label9->Size = System::Drawing::Size(136, 31); this ->label9->TabIndex = 20; this ->label9->Text = L "Sin Conexión." ; // // label11 // this ->label11->AutoSize = true ; this ->label11->Location = System::Drawing::Point(6, 218); this ->label11->Name = L "label11" ; this ->label11->Size = System::Drawing::Size(185, 20); this ->label11->TabIndex = 18; this ->label11->Text = L "Espera un momento..." ; this ->label11->Visible = false ; // // button2 // this ->button2->BackColor = System::Drawing::Color::RoyalBlue; this ->button2->Font = ( gcnew System::Drawing::Font(L "Mistral" , 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->button2->ForeColor = System::Drawing::Color::Lavender; this ->button2->Location = System::Drawing::Point(568, 122); this ->button2->Name = L "button2" ; this ->button2->Size = System::Drawing::Size(131, 39); this ->button2->TabIndex = 15;

P á g i n a | 70

this ->button2->Text = L "Comenzar" ; this ->button2->UseVisualStyleBackColor = false ; this ->button2->Click += gcnew System::EventHandler( this , &Form1::button2_Click); // // label8 // this ->label8->AutoSize = true ; this ->label8->Font = ( gcnew System::Drawing::Font(L "Century Gothic" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label8->Location = System::Drawing::Point(6, 122); this ->label8->Name = L "label8" ; this ->label8->Size = System::Drawing::Size(707, 84); this ->label8->TabIndex = 14; this ->label8->Text = resources->GetString(L "label8.Text" ); this ->label8->Click += gcnew System::EventHandler( this , &Form1::label8_Click); // // label7 // this ->label7->AutoSize = true ; this ->label7->Font = ( gcnew System::Drawing::Font(L "Century Gothic" , 11.25F, static_cast <System::Drawing::FontStyle>((System::Drawing::Font Style::Bold | System::Drawing::FontStyle::Italic)), System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label7->Location = System::Drawing::Point(6, 18); this ->label7->Name = L "label7" ; this ->label7->Size = System::Drawing::Size(760, 54); this ->label7->TabIndex = 13; this ->label7->Text = L "Bienvenido al sistema de medición de hemoglobina \"Hemobin\"\r\nAntes de com enzar las" L " medicones revisa que la celda fotoacustica este limpia y despues oprime el \r\nb" L "oton conexión " ; this ->label7->Click += gcnew System::EventHandler( this , &Form1::label7_Click); // // tabPage2 // this ->tabPage2->Controls->Add( this ->label19); this ->tabPage2->Controls->Add( this ->label18); this ->tabPage2->Controls->Add( this ->button4); this ->tabPage2->Controls->Add( this ->button3); this ->tabPage2->Controls->Add( this ->label15); this ->tabPage2->Controls->Add( this ->label14); this ->tabPage2->Controls->Add( this ->hScrollBar2); this ->tabPage2->Controls->Add( this ->hScrollBar1); this ->tabPage2->Controls->Add( this ->chart1); this ->tabPage2->Controls->Add( this ->dataGridView1);

P á g i n a | 71

this ->tabPage2->Location = System::Drawing::Point(4, 29); this ->tabPage2->Name = L "tabPage2" ; this ->tabPage2->Padding = System::Windows::Forms::Padding(3); this ->tabPage2->Size = System::Drawing::Size(767, 396); this ->tabPage2->TabIndex = 1; this ->tabPage2->Text = L "Datos Técnicos" ; this ->tabPage2->UseVisualStyleBackColor = true ; // // label19 // this ->label19->AutoSize = true ; this ->label19->Location = System::Drawing::Point(573, 331); this ->label19->Name = L "label19" ; this ->label19->Size = System::Drawing::Size(48, 20); this ->label19->TabIndex = 28; this ->label19->Text = L "Dato" ; // // label18 // this ->label18->AutoSize = true ; this ->label18->Location = System::Drawing::Point(573, 293); this ->label18->Name = L "label18" ; this ->label18->Size = System::Drawing::Size(48, 20); this ->label18->TabIndex = 27; this ->label18->Text = L "Dato" ; this ->label18->TextAlign = System::Drawing::ContentAlignment::TopCenter; // // button4 // this ->button4->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 14.25F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->button4->ForeColor = System::Drawing::Color::Black; this ->button4->Location = System::Drawing::Point(642, 296); this ->button4->Name = L "button4" ; this ->button4->Size = System::Drawing::Size(109, 58); this ->button4->TabIndex = 26; this ->button4->Text = L "Calcular" ; this ->button4->UseVisualStyleBackColor = true ; this ->button4->Click += gcnew System::EventHandler( this , &Form1::button4_Click); // // button3 // this ->button3->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 9.75F, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0)));

P á g i n a | 72

this ->button3->ForeColor = System::Drawing::Color::Black; this ->button3->Location = System::Drawing::Point(80, 288); this ->button3->Name = L "button3" ; this ->button3->Size = System::Drawing::Size(147, 32); this ->button3->TabIndex = 25; this ->button3->Text = L "Borrar Datos" ; this ->button3->UseVisualStyleBackColor = true ; this ->button3->Click += gcnew System::EventHandler( this , &Form1::button3_Click); // // label15 // this ->label15->AutoSize = true ; this ->label15->Location = System::Drawing::Point(263, 331); this ->label15->Name = L "label15" ; this ->label15->Size = System::Drawing::Size(69, 20); this ->label15->TabIndex = 5; this ->label15->Text = L "Máximo\r\n" ; // // label14 // this ->label14->AutoSize = true ; this ->label14->Location = System::Drawing::Point(263, 293); this ->label14->Name = L "label14" ; this ->label14->Size = System::Drawing::Size(65, 20); this ->label14->TabIndex = 4; this ->label14->Text = L "Minimo" ; this ->label14->Click += gcnew System::EventHandler( this , &Form1::label14_Click); // // hScrollBar2 // this ->hScrollBar2->Location = System::Drawing::Point(379, 331); this ->hScrollBar2->Maximum = 54; this ->hScrollBar2->Minimum = 1; this ->hScrollBar2->Name = L "hScrollBar2" ; this ->hScrollBar2->Size = System::Drawing::Size(172, 20); this ->hScrollBar2->TabIndex = 3; this ->hScrollBar2->Value = 1; this ->hScrollBar2->Scroll += gcnew System::Windows::Forms::ScrollEventHandler( this , &Form1::hScrollBar2_Scroll); // // hScrollBar1 // this ->hScrollBar1->Location = System::Drawing::Point(379, 293); this ->hScrollBar1->Maximum = 54; this ->hScrollBar1->Minimum = 1; this ->hScrollBar1->Name = L "hScrollBar1" ;

P á g i n a | 73

this ->hScrollBar1->Size = System::Drawing::Size(172, 20); this ->hScrollBar1->TabIndex = 2; this ->hScrollBar1->Value = 1; this ->hScrollBar1->Scroll += gcnew System::Windows::Forms::ScrollEventHandler( this , &Form1::hScrollBar1_Scroll); // // chart1 // this ->chart1->BorderlineWidth = 0; chartArea1->AxisX->Interval = 5; chartArea1->AxisX->IntervalType = System::Windows::Forms::DataVisualization::Charting ::DateTimeIntervalType::Number; chartArea1->AxisX->Maximum = 45; chartArea1->AxisX->Title = L "Desplazamiento (mm)" ; chartArea1->Name = L "ChartArea1" ; this ->chart1->ChartAreas->Add(chartArea1); legend1->Name = L "Legend1" ; this ->chart1->Legends->Add(legend1); this ->chart1->Location = System::Drawing::Point(298, 21); this ->chart1->Name = L "chart1" ; this ->chart1->Palette = System::Windows::Forms::DataVisualization::Charting ::ChartColorPalette::Bright; series1->ChartArea = L "ChartArea1" ; series1->ChartType = System::Windows::Forms::DataVisualization::Charting ::SeriesChartType::Point; series1->Legend = L "Legend1" ; series1->Name = L "Muestras (mV)" ; series2->BorderColor = System::Drawing::Color::W hite; series2->BorderWidth = 3; series2->ChartArea = L "ChartArea1" ; series2->ChartType = System::Windows::Forms::DataVisualization::Charting ::SeriesChartType::Line; series2->Legend = L "Legend1" ; series2->Name = L "Rango" ; series2->Points->Add(dataPoint1); series2->Points->Add(dataPoint2); series2->Points->Add(dataPoint3); series2->Points->Add(dataPoint4); series2->Points->Add(dataPoint5); this ->chart1->Series->Add(series1); this ->chart1->Series->Add(series2); this ->chart1->Size = System::Drawing::Size(453, 269); this ->chart1->TabIndex = 1; this ->chart1->Text = L "chart1" ; // // dataGridView1 // this ->dataGridView1->ColumnHeadersHeightSizeMode = System::Windows::Forms::DataGridViewColumnHeadersHe ightSizeMode::AutoSize;

P á g i n a | 74

this ->dataGridView1->Columns->AddRange( gcnew cli:: array < System::Windows::Forms::DataGridViewColumn^ >(2) this ->Column1, this ->Column2); this ->dataGridView1->Location = System::Drawing::Point(16, 21); this ->dataGridView1->Name = L "dataGridView1" ; this ->dataGridView1->Size = System::Drawing::Size(276, 251); this ->dataGridView1->TabIndex = 0; this ->dataGridView1->CellContentClick += gcnew System::Windows::Forms::DataGridViewCellEventHandle r( this , &Form1::dataGridView1_CellContentClick_1); // // Column1 // this ->Column1->AutoSizeMode = System::Windows::Forms::DataGridViewAutoSizeColumnM ode::ColumnHeader; this ->Column1->HeaderText = L "Despl. (mm)" ; this ->Column1->Name = L "Column1" ; this ->Column1->Width = 130; // // Column2 // this ->Column2->HeaderText = L "Muestra (mV)" ; this ->Column2->Name = L "Column2" ; // // label4 // this ->label4->AutoSize = true ; this ->label4->Font = ( gcnew System::Drawing::Font(L "Copperplate Gothic Bold" , 14.25F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label4->ForeColor = System::Drawing::Color::DarkBlue; this ->label4->Location = System::Drawing::Point(8, 90); this ->label4->Name = L "label4" ; this ->label4->Size = System::Drawing::Size(814, 21); this ->label4->TabIndex = 13; this ->label4->Text = L "\"Cuantificación de Hemoglobina para diagnóstico de Anemias Generales.\"" ; this ->label4->Click += gcnew System::EventHandler( this , &Form1::label4_Click); // // label3 // this ->label3->AutoSize = true ; this ->label3->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label3->Location = System::Drawing::Point(152, 63); this ->label3->Name = L "label3" ;

P á g i n a | 75

this ->label3->Size = System::Drawing::Size(242, 20); this ->label3->TabIndex = 12; this ->label3->Text = L "Y TECNOLOGIAS AVANZADAS"; // // label2 // this ->label2->AutoSize = true ; this ->label2->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 12, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label2->Location = System::Drawing::Point(152, 43); this ->label2->Name = L "label2" ; this ->label2->Size = System::Drawing::Size(489, 20); this ->label2->TabIndex = 11; this ->label2->Text = L "UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA " ; // // pictureBox2 // this ->pictureBox2->Image = (cli:: safe_cast <System::Drawing::Image^ >(resources->GetObject(L "pictureBox2.Image" ))); this ->pictureBox2->Location = System::Drawing::Point(16, 9); this ->pictureBox2->Name = L "pictureBox2" ; this ->pictureBox2->Size = System::Drawing::Size(80, 78); this ->pictureBox2->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Stretch Image; this ->pictureBox2->TabIndex = 10; this ->pictureBox2->TabStop = false ; // // pictureBox1 // this ->pictureBox1->Image = (cli:: safe_cast <System::Drawing::Image^ >(resources->GetObject(L "pictureBox1.Image" ))); this ->pictureBox1->Location = System::Drawing::Point(659, 13); this ->pictureBox1->Name = L "pictureBox1" ; this ->pictureBox1->Size = System::Drawing::Size(83, 74); this ->pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::Stretch Image; this ->pictureBox1->TabIndex = 9; this ->pictureBox1->TabStop = false ; // // label1 // this ->label1->AutoSize = true ; this ->label1->Font = ( gcnew System::Drawing::Font(L "Gill Sans MT" , 18, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,

P á g i n a | 76

static_cast <System::Byte>(0))); this ->label1->Location = System::Drawing::Point(150, 9); this ->label1->Name = L "label1" ; this ->label1->Size = System::Drawing::Size(419, 34); this ->label1->TabIndex = 8; this ->label1->Text = L "INSITUTO POLITECNICO NACIONAL" ; this ->label1->TextAlign = System::Drawing::ContentAlignment::TopCenter; // // label5 // this ->label5->AutoSize = true ; this ->label5->Font = ( gcnew System::Drawing::Font(L "Microsoft Sans Serif" , 12, System::Drawing::FontStyle::Bold, System::Drawing:: GraphicsUnit::Point, static_cast <System::Byte>(0))); this ->label5->Location = System::Drawing::Point(511, 657); this ->label5->Name = L "label5" ; this ->label5->Size = System::Drawing::Size(319, 20); this ->label5->TabIndex = 14; this ->label5->Text = L "Ing. Emma Cristina Montellano Allende" ; // // Form1 // this ->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this ->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this ->BackColor = System::Drawing::Color::LightBlue; this ->ClientSize = System::Drawing::Size(802, 576); this ->Controls->Add( this ->label5); this ->Controls->Add( this ->label4); this ->Controls->Add( this ->label3); this ->Controls->Add( this ->label2); this ->Controls->Add( this ->pictureBox2); this ->Controls->Add( this ->pictureBox1); this ->Controls->Add( this ->label1); this ->Controls->Add( this ->tabControl1); this ->FormBorderStyle = System::Windows::Forms::FormBorderStyle::Fixed3D; this ->Icon = (cli:: safe_cast <System::Drawing::Icon^ >(resources->GetObject(L "$this.Icon" ))); this ->MaximizeBox = false ; this ->Name = L "Form1" ; this ->StartPosition = System::Windows::Forms::FormStartPosition::CenterSc reen; this ->Text = L "Detector de Anemia" ; this ->Load += gcnew System::EventHandler( this , &Form1::Form1_Load); this ->tabControl1->ResumeLayout( false ); this ->tabPage1->ResumeLayout( false ); this ->tabPage1->PerformLayout(); this ->groupBox1->ResumeLayout( false ); this ->groupBox1->PerformLayout();

P á g i n a | 77

this ->tabPage2->ResumeLayout( false ); this ->tabPage2->PerformLayout(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->chart1))->EndInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->dataGridView1))->EndInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->pictureBox2))->EndInit(); (cli:: safe_cast <System::ComponentModel::ISupportInitialize^ >( this ->pictureBox1))->EndInit(); this ->ResumeLayout( false ); this ->PerformLayout(); #pragma endregion #pragma region Eventos private : System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) this ->label18->Text=System::Convert::ToString( this ->hScrollBar1->Value); this ->label19->Text=System::Convert::ToString( this ->hScrollBar2->Value); private : System::Void dataGridView1_CellContentClick(Syste m::Object^ sender, System::Windows::Forms::DataGridViewCellEve ntArgs^ e) private : System::Void label7_Click(System::Object^ sender , System::EventArgs^ e) private : System::Void label8_Click(System::Object^ sender , System::EventArgs^ e) private : System::Void label6_Click(System::Object^ sender , System::EventArgs^ e) private : System::Void label12_Click(System::Object^ sende r, System::EventArgs^ e) private : System::Void label14_Click(System::Object^ sende r, System::EventArgs^ e) private : System::Void dataGridView1_CellContentClick_1(Sys tem::Object^ sender, System::Windows::Forms::DataGridViewCellEve ntArgs^ e) private : System::Void label4_Click(System::Object^ sender , System::EventArgs^ e) #pragma region Checar Conexión private : System::Void button1_Click(System::Object^ sende r, System::EventArgs^ e) String ^Confirmacion; String ^Puerto= "COM4";

P á g i n a | 78

String ^Palabra_Termino= "fin" ; int baudRate=9600; array <unsigned char > ^escribe= gcnew array <unsigned char >(4); escribe[0]= 'c' ;escribe[1]= 'o' ;escribe[2]= 'n' ;escribe[3]= 'e' ; SerialPort^ arduino; arduino = gcnew SerialPort(Puerto, baudRate); arduino->Open(); arduino->Write(escribe,0,4); Confirmacion=arduino->ReadTo(Palabra_Termino); arduino->DiscardInBuffer(); arduino->Close(); this ->label9->Text=Confirmacion; this ->label9->ForeColor=System::Drawing::Color::Black; this ->label9->BackColor=System::Drawing::Color::GreenYe llow; #pragma endregion #pragma region Captura Datos private : System::Void button2_Click(System::Object^ sende r, System::EventArgs^ e) label11->Visible= true ; this ->label6->Visible= false ; String ^Lectura; String ^Puerto= "COM4"; String ^Palabra_Termino= "fin" ; int baudRate=9600; array <unsigned char > ^escribe= gcnew array <unsigned char >(4); escribe[0]= 'c' ;escribe[1]= 'a' ;escribe[2]= 'p' ;escribe[3]= 't' ; SerialPort^ arduino; arduino = gcnew SerialPort(Puerto, baudRate); arduino->Open(); arduino->Write(escribe,0,4); /////////////////////////////////////////////////// ///////////////////// double Avance_Motor=.45; for ( int i=0;i<90;i++) Lectura=arduino->ReadTo(Palabra_Termino); Datos[i]=( int )((System::Convert::ToInt16(Lectura))*5); //Se convierte el dato a mV. Desp[i]=Avance_Motor*i; this ->dataGridView1->Rows->Add(Avance_Motor*i,Datos[i]) ; this ->chart1->Series[ "Muestras (mV)" ]->Points->AddXY(Avance_Motor*i,Datos[i]);

P á g i n a | 79

arduino->DiscardInBuffer(); arduino->Close(); this ->label6->Visible= true ; label11->Visible= false ; #pragma endregion #pragma region Borrar Datos private : System::Void button3_Click(System::Object^ sende r, System::EventArgs^ e) this ->dataGridView1->Rows->RemoveAt(dataGridView1->SelectedCells[0]->RowIndex); #pragma endregion #pragma region Rangos private : System::Void hScrollBar1_Scroll(System::Object^ sender, System::Windows::Forms::ScrollEventArgs^ e) this ->label18->Text=System::Convert::ToString( this ->hScrollBar1->Value); this ->chart1->Series[ "Rango" ]->Points[0]->XValue= this ->hScrollBar1->Value; this ->chart1->Series[ "Rango" ]->Points[1]->XValue= this ->hScrollBar1->Value; this ->chart1->Series[ "Rango" ]->Points[4]->XValue= this ->hScrollBar1->Value; private : System::Void hScrollBar2_Scroll(System::Object^ sender, System::Windows::Forms::ScrollEventArgs^ e) this ->label19->Text=System::Convert::ToString( this ->hScrollBar2->Value); this ->chart1->Series[ "Rango" ]->Points[2]->XValue= this ->hScrollBar2->Value; this ->chart1->Series[ "Rango" ]->Points[3]->XValue= this ->hScrollBar2->Value; #pragma endregion #pragma region Calculo de Pendiente private : System::Void button4_Click(System::Object^ sende r, System::EventArgs^ e) double sum_x_y=0,sum_x=0,sum_y=0,sum_x_2=0; double m,b; int n_datos; int minimo,maximo; minimo=(System::Convert::ToInt16( this ->label18->Text))*2.2; maximo=(System::Convert::ToInt16( this ->label19->Text))*2.2; n_datos=maximo-minimo; for ( int i=minimo;i<maximo;i++) sum_x_y=sum_x_y+Desp[i]*Datos[i]; sum_x=sum_x+Desp[i]; sum_y=sum_y+Datos[i]; sum_x_2=sum_x_2+Desp[i]*Desp[i];

P á g i n a | 80

m=((n_datos*sum_x_y-sum_x*sum_y)/(n_datos*sum_x_2 -sum_x*sum_x))/3; b=(sum_x_2*sum_y-sum_x*sum_x_y)/(n_datos*sum_x_2-sum_x*sum_x); this ->label12->Text=System::Convert::ToString(System::M ath::Abs(m)); this ->label12->Visible= true ; this ->label20->Visible= true ; this ->label16->Visible= true ; if ((System::Math::Abs(m)>0)&&(System::Math::Abs(m)<30 )) this ->label16->Text= "Con Anemia." ; else this ->label16->Text= "Sin Anemia." ; #pragma endregion #pragma endregion ;

Programa para la tarjeta Arduino Uno #include <LiquidCrystal.h> #define Laser A5 #define Foco A4 const int analogPin = A1; LiquidCrystal lcd(13, 12, 11, 10,9,8); unsigned char w,o,r,d; char Palabra_listo[]="Listo!"; char Palabra_termino[]="fin"; unsigned char sensorReading[100]; //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% int mA=6; int mB=5; int mC=4; int mD=3; unsigned long retardo=40;//En milisegundos. //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void setup() Serial.begin(9600); delay(100); pinMode(Foco, OUTPUT); pinMode(Laser, OUTPUT); digitalWrite(Foco, LOW);

P á g i n a | 81

digitalWrite(Laser, LOW); //////////////////////////////////////////MOTOR pinMode(mA, OUTPUT); pinMode(mB, OUTPUT); pinMode(mC, OUTPUT); pinMode(mD, OUTPUT); //INICIAR EN PARO digitalWrite(mA, LOW); digitalWrite(mB, LOW); digitalWrite(mC, LOW); digitalWrite(mD, LOW); ///////////////////////////////////////////////// void loop() if (Serial.available()>=4) lcd.begin(16, 2); lcd.clear(); lcd.print("Detec. de Anemia."); lcd.setCursor(8, 1); lcd.print("mV"); lcd.setCursor(15, 1); lcd.print("s"); w=(unsigned char)Serial.read(); o=(unsigned char)Serial.read(); r=(unsigned char)Serial.read(); d=(unsigned char)Serial.read(); if ((w=='c')&&(o=='o')&&(r=='n')&&(d=='e')) Serial.print(Palabra_listo) ; Serial.print(Palabra_termino); digitalWrite(Foco, HIGH); //for(int i=0;i<30;i++) //Subir, temporalmente deshabilitado. //subir(); // if ((w=='c')&&(o=='a')&&(r=='p')&&(d=='t')) delay(1000); digitalWrite(Foco, LOW); int j=0;

P á g i n a | 82

for(int i=0;i<33;i++) sensorReading[j] =(unsigned char) analogRead(analogPin); lcd.setCursor(0, 1); lcd.print((int)sensorReading[j]*5,10); //Para que de en mV.(De digital a mV) lcd.print("----"); digitalWrite(Laser, HIGH); delay(500); j=j+1; sensorReading[j] =(unsigned char) analogRead(analogPin); lcd.setCursor(0, 1); lcd.print((int)sensorReading[j]*5,10); lcd.print("----"); digitalWrite(Laser, LOW); delay(500); j=j+1; sensorReading[j] =(unsigned char) analogRead(analogPin); lcd.setCursor(0, 1); lcd.print((int)sensorReading[j]*5,10); lcd.print("----"); j=j+1; lcd.setCursor(11, 1); lcd.print((int)i); lcd.print("--"); bajar(); ////////////////////////////////////////Envio de datos a Compu. for(int i=0;i<99;i++) Serial.print((int)sensorReading[i]); Serial.print(Palabra_termino); ////////////////////////////////////////////////////////////// Serial.flush();

P á g i n a | 83

////////////////////////////////////////////Funciones. void subir() //paso 1 digitalWrite(mA, LOW); digitalWrite(mB, HIGH); digitalWrite(mC, HIGH); digitalWrite(mD, LOW); delay(retardo); //paso 2 digitalWrite(mC, LOW); digitalWrite(mD, HIGH); delay(retardo); //paso 3 digitalWrite(mA, HIGH); digitalWrite(mB, LOW); delay(retardo); //paso 4 digitalWrite(mC, HIGH); digitalWrite(mD, LOW); delay(retardo); //FIN subir void bajar() //paso 1 digitalWrite(mA, HIGH); digitalWrite(mB, LOW); digitalWrite(mC, HIGH); digitalWrite(mD, LOW); delay(retardo); //paso 2 digitalWrite(mC, LOW); digitalWrite(mD, HIGH); delay(retardo); //paso 3 digitalWrite(mA, LOW); digitalWrite(mB, HIGH); delay(retardo); //paso 4 digitalWrite(mC, HIGH); digitalWrite(mD, LOW); delay(retardo); //FIN bajar