Está en la página 1de 13

INSTITUTO POLITÉCNICO NACIONAL

Unidad Profesional Interdisciplinaria De Biotecnología

LABORATORIO DE BIOINSTRUMENTACIÓN V

5MV2

Primer parcial

Práctica 1: Medidor digital de temperatura

INTEGRANTES:

Ramírez Álvarez Frida


Sánchez Ramírez Oscar Esteban

PROFESORES:

Luis Guillermo Ayala Torres


Rodrigo Mora Martínez

Fecha de entrega:  17 de marzo 2021.


Objetivo
Objetivo General

• Diseñar un medidor digital de temperatura mediante la lectura de un sensor para mostrarlos en


3 displays de 7 segmentos.

Objetivos específicos

• Realizar la caracterización del sensor mediante la lectura del voltaje obtenido en un rango de 0
a 99° C para la obtención de su ecuación característica
• Realizar el código en Arduino para que realice la lectura, el procesamiento de los datos
obtenidos y muestre el resultado en la salida de los 3 displays.
• Realizar la conversión binaria a digital utilizando el circuito integrado 74LS48 para que se
muestre la temperatura con decimales en los 3 displays de 7 segmentos.

Introducción
De los cuatro tipos comunes de sensores de temperatura que se pueden elegir para la detección de la
temperatura - termopares, dispositivos de temperatura de resistencia (RTD), termistores y CI de
sensores de temperatura- los CI de sensores de temperatura son una buena opción para los diseños
médicos y sanitarios basados en el contacto. Esto se debe principalmente a que no requieren
linealización, ofrecen una buena inmunidad al ruido y son relativamente fáciles de integrar en dispositivos
de asistencia sanitaria portátiles y para vestir. Para la detección sin contacto, se pueden utilizar
termómetros infrarrojos.

Los parámetros clave que se deben considerar, especialmente para las aplicaciones que se pueden
llevar puestas ya sea un dispositivo para la muñeca, incrustado en la ropa o un parche médico pegajoso
incluyen el tamaño, el consumo de energía y la sensibilidad térmica. La sensibilidad es importante
porque cuando se diseña para una precisión de grado clínico, incluso la potencia transitoria del orden
de los microvolts (𝜇𝑉) puede calentar el sensor y causar lecturas inexactas. Otra consideración incluye
el tipo de interfaz (digital o analógica), ya que esto determinará los requisitos de los componentes
asociados, como el microcontrolador.

El cumplimiento de la precisión de grado clínico, según ASTM E112, comienza con la selección del
sensor apropiado. Los sensores digitales de temperatura MAX30208 de Maxim Integrated, por ejemplo,
tienen una precisión de ±0.1 °C de +30 °C a +50 °C y una precisión de ±0.15 °C de 0 °C a +70 °C. Los
dispositivos miden 2 x 2 x 0.75 milímetros (mm) y vienen en un fino paquete LGA de 10 pines (Figura 1).
Los circuitos integrados funcionan con un voltaje de suministro que va de 1.7 a 3.6 voltios y consumen
menos de 67 microamperios (µA) en funcionamiento y 0.5 µA en espera.

Figura 1 Sensor de temperatura MAX30208..


Como ya se ha mencionado, un desafío crítico al diseñar con una precisión de grado clínico es asegurar
que la propia temperatura del sensor no influya en la lectura de la medición de un dispositivo que se
pueda llevar puesto.

El calor del CI del sensor, que viaja desde la placa de la PC a través del paquete que lleva al dado del
sensor, puede afectar la exactitud de las lecturas de temperatura. En un CI del sensor de temperatura,
este calor es conducido a través de una almohadilla térmica metálica ubicada en la parte inferior del
paquete, lo que resulta en un calentamiento parásito. Esto, a su vez, puede causar la conducción térmica
dentro y fuera de otros pines. Inevitablemente, esto interfiere con las mediciones de temperatura.

Para contrarrestar el calentamiento parasitario, se pueden emplear varias técnicas, empezando por el
uso de trazas finas para minimizar la conductividad térmica lejos del CI del sensor. Además, en lugar de
usar la almohadilla térmica en la parte inferior del paquete, se puede medir la temperatura en la parte
superior del paquete, lo más lejos posible de los pines del CI. En el caso del MAX30208CLB+ y otros
sensores digitales de temperatura MAX30208, la medición de la temperatura se realiza en la parte
superior del paquete.

Metodología

Se seleccionó el
sensor a utilizar
(termistor)

Se realizó la
caracterización del
sensor en el rango
deseado (0-99°C) para
obtener su ecuación.

Se realizó el programa
en Arduino para leer
la temperatura y
mostrarla en 3
displays.

Se realizó el armado
del circuito.
Resultados
El siguiente código de Arduino es el utilizado en la práctica. Se comenzó estableciendo el Puerto B y D
del Arduino, que son los pines digitales 0 a 12 cómo salida, ya que en estos se conectaron los 74LS48
para la salida de los displays.

Ya dentro del código principal se comenzó leyendo el voltaje analógico obtenido de la salida del divisor
de voltaje con el sensor (termistor), después este fue convertido a voltaje digital con una regla de tres
para poder ser utilizado en la ecuación obtenida de la caracterización.

El resultado de la operación con la ecuación característica del termistor nos da como resultado la
temperatura, la cuál fue multiplicada por 10 para mantener el decimal obtenido y así proceder con el
tratamiento de esta y obtener un número para los decimales, uno para las decenas y otro para el decimal
respectivamente con operaciones básicas como resta y división.

Por último, se realizó un caso para cada número en las decenas, unidades y decimales, para enviarlo a
cada uno de los 74LS48 en binario y así obtener la combinación de pines necesaria para prender y
mostrar la temperatura en los displays con la resolución requerida.

CÓDIGO DE ARDUINO break;


case 1:
int temperatura; PORTD = 1;
int decenas; break;
int uni; case 2:
int unidades; PORTD = 2;
int decimal; break;
int rt; case 3:
float entrada; PORTD = 3;
float voltaje; break;
case 4:
void setup() { PORTD = 4;
pinMode(A0, INPUT); break;
DDRD = B11111111; case 5:
DDRB = B111111; PORTD = 5;
} break;
case 6:
void loop() { PORTD = 6;
entrada = analogRead(A0); break;
voltaje = entrada * 5.0 / 1023.0; case 7:
temperatura = (-38.17 * log(voltaje) + 55.82) PORTD = 7;
* 10; break;
decenas = temperatura / 100; case 8:
uni = temperatura - (decenas * 100); PORTD = 8;
unidades = uni / 10; break;
decimal = uni - (unidades * 10); case 9:
PORTD = 9;
//MOSTRAR DECENAS break;
switch (decenas) { }
case 0:
PORTD = 0; //MOSTAR UNIDADES
switch (unidades) { digitalWrite(4, 0);
case 0: digitalWrite(5, 0);
digitalWrite(4, 0); digitalWrite(6, 0);
digitalWrite(5, 0); digitalWrite(7, 5);
digitalWrite(6, 0); break;
digitalWrite(7, 0); case 9:
break; digitalWrite(4, 5);
case 1: digitalWrite(5, 0);
digitalWrite(4, 5); digitalWrite(6, 0);
digitalWrite(5, 0); digitalWrite(7, 5);
digitalWrite(6, 0); break;
digitalWrite(7, 0); }
break;
case 2: //MOSTRAR DECIMAL
digitalWrite(4, 0); switch (decimal) {
digitalWrite(5, 5); case 0:
digitalWrite(6, 0); PORTB = 0;
digitalWrite(7, 0); break;
break; case 1:
case 3: PORTB = 1;
digitalWrite(4, 5); break;
digitalWrite(5, 5); case 2:
digitalWrite(6, 0); PORTB = 2;
digitalWrite(7, 0); break;
break; case 3:
case 4: PORTB = 3;
digitalWrite(4, 0); break;
digitalWrite(5, 0); case 4:
digitalWrite(6, 5); PORTB = 4;
digitalWrite(7, 0); break;
break; case 5:
case 5: PORTB = 5;
digitalWrite(4, 5); break;
digitalWrite(5, 0); case 6:
digitalWrite(6, 5); PORTB = 6;
digitalWrite(7, 0); break;
break; case 7:
case 6: PORTB = 7;
digitalWrite(4, 0); break;
digitalWrite(5, 5); case 8:
digitalWrite(6, 5); PORTB = 8;
digitalWrite(7, 0); break;
break; case 9:
case 7: PORTB = 9;
digitalWrite(4, 5); break;
digitalWrite(5, 5); }
digitalWrite(6, 5);
digitalWrite(7, 0); delay(1000);
break; }
case 8:
Se muestra el circuito realizado en Proteus en la figura 1. En el que se puede observar el divisor de
voltaje en el que se encuentra el termistor y su salida conectada a la entrada analógica A0.
Por el lado de las salidas se muestran los 12 pines establecidos como salida conectados a 3 74LS48, y
a su vez estos conectados a su display correspondiente, los cuáles son cátodos comunes y por eso se
conectan a tierra.

Figura 2. Circuito diseñado para el medidor de temperatura digital

En las figuras 2, 3, 4, 5 y 6 se muestra el comportamiento del circuito y los resultados obtenidos al leer
distintas temperaturas a lo largo del rango establecido (0-99°C). En las figura 5 se puede observar que
el error en la medición y el resultado arrojado por el Arduino es alto, por lo que se siguió bajando la
temperatura para así poder observar el momento en el que marque el cero deseado.

Figura 3. Funcionamiento del circuito en 99°C


Figura 4. Funcionamiento del circuito en 73°C

Figura 5. Funcionamiento del circuito en 13°C


Figura 6. Funcionamiento del circuito en 0°C

Figura 7. Funcionamiento del circuito en el que marca correctamente los 0°

Análisis de resultados
Un termistor es un elemento de detección de temperatura compuesto por un material semiconductor
sinterizado que exhibe un gran cambio en la resistencia en respuesta a un pequeño cambio en la
temperatura. Los termistores normalmente tienen coeficientes de temperatura negativos lo que significa
que la resistencia del termistor disminuye a medida que la temperatura aumenta.
Para realizar el medidor digital de temperatura se implementó el termistor con un arreglo de divisor de
voltaje, posterior a esto se obtuvo la ecuación de la caracterización con respecto a los valores
establecidos de la temperatura a los que se esperaban obtener y haciendo las conversiones del voltaje
analógico a digital. Con estos resultados se comprobó lo mencionado por parte del diseño de fabricación
de estos componentes, ya que el único inconveniente de ellos es que presentan un comportamiento no
lineal, lo cual es que los valores esperados al valor real de la temperatura no son exactos, existiendo un
porcentaje de error mayor al 5% sobre todo en los valores cercanos a 0°C.
Los termistores para la implementación de sensores que pudieran estar monitorizando el cambio de
temperatura corporal para el caso de algún diseño de dispositivo o equipo médico tendrían que
considerarse poco apropiados ya que podría generar datos erróneos debido a su comportamiento no
lineal y se tendrían que buscar otras alternativas de dispositivos que pudieran ajustarse a estos casos.

Memoria de cálculo
Temperatura (°C) Voltaje analógico Voltaje digital (V)

0 770 3.76344086

1 760 3.714565005

3 738 3.607038123
5 715 3.494623656

7 691 3.377321603

9 667 3.26001955
11 643 3.142717498

13 619 3.025415445

15 595 2.908113392

17 571 2.790811339
19 547 2.673509286

21 523 2.556207234

23 500 2.443792766
25 477 2.331378299

27 455 2.223851417

29 433 2.116324536

31 412 2.013685239

33 392 1.915933529

35 372 1.818181818

37 353 1.725317693
39 335 1.637341153
41 318 1.554252199

43 301 1.471163245

45 285 1.392961877

47 270 1.319648094

49 256 1.251221896

51 242 1.182795699

53 229 1.119257087

55 216 1.055718475

57 205 1.001955034

59 193 0.943304008

61 183 0.894428152

63 173 0.845552297

65 163 0.796676442
67 154 0.752688172

69 146 0.713587488

71 138 0.674486804

73 130 0.635386119

75 123 0.601173021

77 116 0.566959922

79 110 0.537634409

81 104 0.508308895
83 98 0.478983382

85 93 0.454545455
87 88 0.430107527

89 83 0.405669599
91 79 0.386119257

93 74 0.361681329

95 70 0.342130987

97 67 0.327468231

99 63 0.307917889
La tabla anterior muestra la caracterización realizada para el termistor utilizando un divisor de voltaje y
obteniendo su voltaje leído por Arduino.
Para obtener el voltaje digital se utilizó la siguiente fórmula:
𝑉𝑑 = 𝑉𝑎 ∗ 5/1023
Ya obtenido el voltaje para cada uno de los casos se realizó la gráfica de Temperatura vs Voltaje
y = -38.17ln(x) + 55.828
Temperatura vs voltaje R² = 0.9964

120

100
Temperatura (°C)

80

60

40

20

0
0 0.5 1 1.5 2 2.5 3 3.5 4
Voltaje (V)

Con los datos obtenidos de la gráfica se realizó un ajuste logarítmico para obtener la ecuación de
caracterización del termistor utilizado para utilizarlo en el código de Arduino:

𝑦 = −38.17𝑙𝑛(𝑥) + 55.828
También se realizó el sistema de linealización utilizando la “Thermistor Calculator”, en la que se
metieron los valores obtenidos en la caracterización.

Figura 8.Thermistor Calculator” con los datos obtenidos y su gráfica de temperatura contra resistencia
A partir del divisor de voltaje obtenemos la siguiente fórmula:
𝑅1
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛 ∗ 𝑅1+𝑅𝑡 … 𝐸𝑐 1

Con la siguiente fórmula obtenemos el valor de Rt


1 1
𝑅𝑡 = 𝑅0 ∗ 𝑒 β(𝑇−𝑇0) … Ec 2
Sustituyendo a partir de los valores obtenidos en la calculadora del termistor tenemos:
1 1
𝑅𝑡 = 407.76 ∗ 𝑒 1996.65(𝑇 −273+25) … 𝐸𝑐 3
𝑅1
𝑉𝑜𝑢𝑡 = 𝑉𝑖𝑛 ∗ … 𝐸𝑐 4
1996.65(1− 1 )
𝑅1 + 407.76 ∗ 𝑒 𝑇 273+25

Para la realización del programa lógico utilizado en Arduino, se utilizó el modelo obtenido de la
linealización y despejando la Ec 3 - la Temperatura:
1 1
𝑅𝑡 9262.05 ∗ 𝑒 4072.54(𝑇 −273+25)
=
9262.05 9262.05

𝑅𝑡 1
4072.54( −
1
)
=𝑒 𝑇 273+25
9262.05

𝑅𝑡 1 1
𝑙𝑛 ( ) = 4072.54 ( − )
9262.05 𝑇 298
𝑅𝑡
𝑙𝑛( ) 1 1
9262.05
= 𝑇 − 298
4072.05

𝑅𝑡
298 𝑙𝑛 (9262.05) + 4072.54 1
=
1.21𝑥106 𝑇

1.21𝑥106
𝑇=
𝑅𝑡
298 𝑙𝑛 (9262.05) + 4072.54

Cálculo de error en mediciones realizadas

Vobtenido − Vreal
%E = × 100
Vreal

99.5 − 98
E= × 100 = 1.5%
98

73.1 − 73
E= × 100 = 0.1%
73
13.5 − 13
E= × 100 = 0.5%
13

5.2 − 0
E= × 100 = 5.2%
0

Conclusiones
Al trabajar con sensores no lineales, fue necesario realizar una caracterización para lograr la
linealización de este, así como un mejor ajuste en su ecuación y por lo tanto una mejor resolución en las
mediciones realizadas.
La manera en la que se obtienen y procesan los datos puede variar si se realiza físicamente, pero con
el diseño del medidor digital de temperatura realizado se obtuvieron resultados adecuados con rangos
de error bajos, a excepción de los valores más pequeños debido al comportamiento no lineal del
termistor. Frida Ramírez Álvarez
Las señales obtenidas del cuerpo humano son obtenidas mediante sensores, que permiten mediante un
microcontrolador como Arduino la recepción de la información de manera analógica y su conversión a
digital para su procesamiento y muestra de los resultados obtenidos.
Al comprender el funcionamiento de un sensor, sobre todo uno no lineal, es posible mediante un
tratamiento adecuado de datos como lo fue la caracterización del termistor, el obtener un
comportamiento adecuado que se ajuste a la medición de temperatura y arroje un resultado dentro del
margen de error y resolución requerido. Oscar Esteban Sánchez Ramírez

Referencias

Ahmad, M. (2020). Sensores de temperatura de grado clínico en diseños médicos portátiles y para

vestir. Retrieved March 11, 2021, from Digikey.com website:

https://www.digikey.com/es/articles/quickly-integrate-clinical-grade-temperature-sensing-into-

medical-designs

Pardell, X. (2016). Instrumentación Biomédica - Apuntes de Electromedicina Xavier Pardell. Retrieved

March 13, 2021, from Pardell.es website: https://www.pardell.es/instrumentacion-biomedica.html

SN (2015). Termistor. Retrieved March 15, 2021, from Omega.com website:

https://mx.omega.com/prodinfo/termistor.html

También podría gustarte