Está en la página 1de 21

Diseño de un Termómetro Clínico

IMPLEMENTACIÓN UNO
Se realiza la implementación del algoritmo mediante el uso de CCS así:
#include <16F877.h> //pic empleado
#device adc=10 //bits del resultado de convercion
#FUSES HS,NOWDT //datos del programador
#use delay(clock=20000000) //frecuencia empleada
#include <LCD.C> //incluimos libreria de la lcd
#byte portc = 0x07 //direcciones de memoria para los puertos
#byte trisc = 0x87
#byte portb = 0x06
#byte trisb = 0x86
#use fast_io(c) //manejo del puerto c
int i,x; // declaramos las variables
int16 q;
float z;
#INT_EXT //atención a interrupción por cambio de RB0
ext_isr(){
if(i==0)
{bit_set(portc,0); i=1;} //enciende la luz del lcd
else
{bit_clear(portc,0); i=0;}} //apaga la luz del lcd
void main() {
trisc=0; //puerto c salida
trisb=255; //puerto d entrada
portc=0; //limpio puerto c
setup_adc_ports(AN0); //Canales 0 analógico
setup_adc(ADC_CLOCK_DIV_32); //Fuente de reloj 32
enable_interrupts(int_ext); //habilita int por RB0
Ext_int_edge(L_TO_H); //flanco de subida
enable_interrupts(global); //habilita int global
lcd_init(); //inicio de lcd
LCD_GOTOXY(1,1); //ubicación en la lcd
printf(lcd_putc,"**DIGITAL-TEMP**"); //imprimimos el texto en la lcd
LCD_GOTOXY(1,2); //ubicación en la lcd
printf(lcd_putc,"ESPERE"); //imprimimos el texto en la lcd
delay_ms(200); //retardo
for(x=7;x<15;x++) //imprimo tiempo de espera
{LCD_GOTOXY(x,2); //ubicación en la lcd
printf(lcd_putc,"*"); //imprimimos el texto en la lcd
delay_ms(400); } //retardo
bit_clear(portc,0); //apago luz del lcd
bit_clear(portc,1); //apago alarma de fuera de rango
printf(lcd_putc,"\f"); //borro la lcd
while(1) //ciclo infinito
{
delay_us(200); //tiempo de espera
set_adc_channel(0); //Habilitación canal 0
delay_us(200); //tiempo de espera
q = read_adc(); //Lectura canal0
z=((q-10)/6.82)+1.03; //conversión a grados + ajuste del valor digital
if(z>=0 && z<=50) //condición de trabajo
{
LCD_GOTOXY(1,1); //ubicamos el cursor en la posición 1.1 de la lcd
printf(lcd_putc," TEMPERATURA ACT"); //imprimimos el texto en la lcd
LCD_GOTOXY(1,2); //ubicamos el cursor en la posición 1.2 de la lcd
printf(lcd_putc, " => %3.3f *C <=",z); //imprimimos el promedio de la temperatura
}
else
{LCD_GOTOXY(1,1); //ubicación en la lcd
printf(lcd_putc,"\f TEMP NO DISP."); //imprimimos el texto en la lcd
LCD_GOTOXY(1,2); //ubicación en la lcd
printf(lcd_putc,"** RANGO OUT. **"); //imprimo texto en la lcd
bit_set(portc,1); //alarman de temperatura baja
delay_ms(100); //retardo
bit_clear(portc,1); //imprimimos el texto en la lcd
printf(lcd_putc,"\f"); //borro la lcd
}}}

Se realiza simulación mediante el software Proteus asi:


Mediante el simulador proteus pudimos verificar el funcionamiento del sistema con el cual
mediremos la temperatura, logramos analizar y acoplar la señal emitida por el sensor, además
pudimos ver como la alarma de fuera de rango funciona cuando la señal del sensor sobre pasa
las temperaturas programadas.
 1 Amplificador de instrumentación INA2126
 1 Lcd 2x16
 1 Microcontrolador 16f877
 1 sensor Lm 35Z
 2 Transistores lm3904
 2 led
 3 resistencias 2.2 kΩ
 1 resistencias 0.5 kΩ
 2 resistencias 1.5 kΩ
 1 resistencias 2.33 kΩ
 1 resistencias 1 kΩ
 1 Fuente de alimentación 5 Vdc
 1 cristal de 20Mhz
 2 capacitores de 22pF
 1 pulsador NA
Diseño de un Termómetro Clínico

IMPLEMENTACIÓN DOS

A continuación se mostrara el diseño de un prototipo a nivel de simulación termómetro


clínico, el cual tiene como características:

a. Temperatura mínima: 32 °C, Vo4(t) = 0V.

b. Temperatura máxima: 42 °C, Vo4(t) = 5V.

c. Si la temperatura es mayor a 36 °C y menor a 38 °C, en el display debe aparecer


“Normal” y encenderse el Led Verde.

d. Si la temperatura es menor a 36 °C, en el display debe aparecer “Hipotermia” y


encenderse y apagarse el Led amarillo 2 veces por segundo y activarse el zumbador.

e. Si la temperatura es mayor a 38 °C, en el display debe aparecer “Hipertermia” y


encenderse y apagarse el Led rojo 2 veces por segundo y activarse el zumbador.

f. El microcontrolador será el PIC16F877

g. Se simulara con Proteus.

Se diseñó con el siguiente diagrama de bloques:


FUENTE DE ALIMENTACION

Para la simulación se implementó con una fuente de dos baterías de 9v y un regulador de


5v.

SENSOR DE TEMPERATURA

Siguiendo con estos pasos lo primero es determinar el sensor, en este caso como es simulado
y no se cuenta con el sensor clínico PR222J2 se seleccionó la NTC activa la cual se le dieron
los parámetros:

ADECUADOR DE SEÑAL

Consiste en un amplificador no inversor, en donde la salida, Vo1(T), es proporcional al


producto entre la resistencia del NTC y una corriente DC menor a 100 μA. Este valor de la
intensidad de la corriente garantiza que el NTC no se autocaliente por ley de Joule. Además,
al NTC se le conecta una resistencia en
paralelo (Rp), con el propósito de linealizar la relación Resistencia versus Temperatura del
sensor. El valor de Rp en la práctica, se toma como el valor de la resistencia del NTC a la
mitad del rango de temperatura medido. Por ejemplo, en el caso de termometría clínica, el
rango de temperatura a medir va desde 33 °C hasta 43 °C y por lo tanto la mitad de la escala
corresponde a 38 °C. Si se utilizara el sensor clínico referencia PR222J2, su resistencia a
38°C, sería de 1301.1 X.

Cuya corriente de salida se ve afectada por el valor de la resistencia NTC la cual al ser este
un amplificador inversor cuya fórmula está dada por:

Con los valores usados, estimando la NTC a una impedancia media a 38° C de 1301Ω ,
conectando a R1 con un valor de 50k Ω a una fuente de 5v y seria:
AMPLIFICADOR

Como la salida de la etapa anterior es negativa y está en el orden de los 100 mV, es necesario
amplificar esta señal diez veces con otro amplificador inversor cuya salida sea ahora positiva,
La figura muestra esta etapa amplificadora.

Esta amplificación está dada como:

Con los valores del ejemplo anterior, con:


CIRCUITO DE CALIBRACIÓN

Consiste en un amplificador de instrumentación (AD622), a cuya entrada inversora se


conecta y a la no inversora se le conecta un divisor de voltaje basado en un potenciómetro de
precisión para calibrar la temperatura mínima (33 °C). Esto se hace, colocando el NTC a 33
°C y ajustando el potenciómetro de precisión hasta que la salida del amplificador de
instrumentación, sea cero. El ajuste de plena escala se hace colocando el NTC a 43 °C y se
ajusta la resistencia de ganancia, Rg, del amplificador de instrumentación hasta que la salida
de este es de 5V, ya que el convertidor análogo digital dentro del microcontrolador, convierte
a digital, señales análogas que varíen desde cero a 5V. La figura muestra el circuito de
calibración.

La ganancia de este amplificador está dada por:

Según lo calibrado si el potenciómetro RV1 está a un 17% la ganancia seria de:

Es decir que con el Rv2 ajustado a un 15 % conectado a 5v se obtienen:


Como El AO de instrumentación está en diferencial la señal de entrada será:

Es asi que gracias al ajuste de Rv2 se puede determinar el mínimo de temperatura y con el
ajuste de ganancia el máximo de temperatura a medir para que sea proporcional una salida
de cero a 5v en esta escala.

FILTRO PASABAJAS

El espectro de la señal térmica del cuerpo humano, va desde DC hasta 5 Hz. Se emplea el
filtro pasa bandas con frecuencia de corte a 10 Hz y atenuación de 20 dB/década, para
eliminar ruidos de 60 Hz inducidos por la red de potencia eléctrica y ruidos de 120 Hz
inducidos por rectificadores de onda completa de las fuentes de alimentación. En la banda
pasante del filtro Vo3(T) es igual a .La figura muestra el circuito del filtro pasa bajas.

La frecuencia de corte está dada por:

CIRCUITO MICROCONTROLADO

En este caso, la salida del filtro pasa bajas, se conecta a un microcontrolador PIC16F877A a
su entrada del convertidor análogo/digital de alta resolución (10 bits), el cual cuenta con una
pantalla GLCD grafica de 128 * 64 pixeles, cuenta con leds conectados para indicar cuando
se encuentre en estado normal de temperatura, hipertermia e hipotermia, Buzzer para alarmar
estos estados.
Programación del microcontrolador

La programación se hizo con Pic C Compiler

El código se encuentra a continuación:

#device adc=10
#use delay (clock = 20000000)
#include "HDM64GS12.c"
#include "graphics.c"
#include <math.h>
#use standard_io (ALL)
#define Ledrojo pin_B3
#define Ledverde pin_B6
#define Ledamarillo pin_B7
#define Buzer Pin_C1
float s; //dato dacimal conversor AD
float t;// dato convertido a voltaje
float temp;//dato para la temperatura
float tempant;
Int statusled = 0;
Int timer=0;
Int stl=0;
CHAR mens [ ] = " ";
CHAR Mens2 [ ] = "Hipotermia";
CHAR Mens3 [ ] = "Hipertermia";
CHAR Mens4 [ ] = "Normal";
//------- funcion para despliegue de imagen de portada cuatro bloques por ser 16f877 que
tiene menos ram q un 18f 4550
//del 0 al 16
const int8 imagen[16][16] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x
FF,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x1C,0x88,0xC1,0x8C,0xF9,0xC6,0x38,0x41
,
0x80,0x00,0x01,0xC1,0xF0,0x38,0x00,0x00,0x08,0xC9,0x21,0x8C,0x81,0x26,0x48,0xE1,
0x80,0x00,0x03,0xE1,0xF0,0x7C,0x00,0x00,0x08,0xA9,0x01,0xDC,0x81,0x26,0x40,0xA
1,
0x80,0x00,0x03,0xE1,0xF0,0x7C,0x00,0x00,0x08,0xA8,0xC1,0x54,0xF1,0x26,0x41,0xB1
,
0x80,0x00,0x03,0xE0,0xE0,0x7C,0x00,0x00,0x08,0xA8,0x21,0x34,0x81,0x26,0x41,0x11,
0x80,0x01,0xC1,0xC0,0x00,0x38,0x70,0x00,0x08,0x99,0x21,0x24,0x81,0x26,0x49,0xF1,
0x80,0x03,0xE0,0x00,0x00,0x00,0xF8,0x00,0x1C,0x88,0xC9,0x24,0xF9,0xC6,0x39,0x11,
0x80,0x03,0xE0,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x03,0xE0,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
};

void glcd_imagen()
{
char i,j;
signed char k;
for( i = 0 ; i < 16 ; i ++ )
{
for( j = 0 ; j < 16 ; j ++)
{
for(k=7;k>-1;k--)
{
if( bit_test(imagen[i][j] ,7-k ))
glcd_pixel( j*8+k,i, ON );
}
}
}
}
// del 16 al 32
const int8 imagen2[16][16] = {
0x80,0x01,0xC0,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x07,0xFF,0xFF,0x01,0xFF,0xFF,0xFF,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x07,0xFF,0xFF,0x01,0xFF,0xFD,0xFF,0x81,0x80,0xFF,0x03,0xFF,0xF8,0x00,0x01
,
0x80,0x03,0xFF,0xFE,0x00,0xFF,0xF9,0xFF,0x81,0x80,0xFF,0x03,0xFF,0xFE,0x00,0x01
,
0x80,0x00,0xFF,0xF8,0x00,0x3F,0xE1,0xFF,0xC1,0x81,0xFF,0x83,0xFF,0xFF,0x00,0x01
,
0x80,0x00,0x7F,0xF0,0x00,0x0F,0xC1,0xFF,0xE1,0x81,0xFF,0x83,0xFF,0xFF,0x00,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x0F,0x81,0xFF,0xE1,0x83,0xFF,0xC3,0xF8,0xFF,0x80,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x81,0xBF,0xF1,0x83,0xFF,0xC3,0xF8,0x3F,0x80,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x9F,0xF9,0x83,0xE7,0xC3,0xF8,0x1F,0xC0,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x9F,0xF9,0x87,0xE7,0xE3,0xF8,0x1F,0xC0,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x8F,0xFD,0x87,0xE7,0xE3,0xF8,0x1F,0xC0,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x87,0xFF,0x8F,0xE7,0xF3,0xF8,0x1F,0xC0,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x87,0xFF,0x8F,0xC3,0xF3,0xF8,0x1F,0xC0,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x83,0xFF,0x8F,0xC3,0xF3,0xF8,0x1F,0xC0,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x81,0xFF,0x9F,0xFF,0xFB,0xF8,0x1F,0xC0,0x01
,
};
void glcd_imagen2()
{
char i,j;

signed char k;

for( i = 16 ; i < 32 ; i ++ )

for( j = 0 ; j < 16 ; j ++)

for(k=7;k>-1;k--)

{
if( bit_test(imagen2[i][j] ,7-k ))

glcd_pixel( j*8+k,i, ON );

//del 32 al 48

const int8 imagen3[16][16] = {

0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x81,0xFF,0x9F,0xFF,0xFB,0xF8,0x3F,0xC0,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x80,0xFF,0xBF,0xFF,0xFB,0xF8,0xFF,0x80,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x80,0x7F,0xBF,0xFF,0xFF,0xFF,0xFF,0x80,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x80,0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0x00,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x80,0x3F,0xBF,0x00,0xFF,0xFF,0xFE,0x00,0x01
,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x01,0x80,0x1F,0xFF,0x00,0xFF,0xFF,0xFC,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x07,0xE0,0x0F,0xFE,0x00,0x7F,0xFF,0xF0,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x07,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x0F,0x80,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x0F,0x80,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x0F,0x80,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x38,0x38,0x00,0x07,0x07,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x00,0x7C,0x1C,0x0F,0x80,0x00,0x01,
0x80,0x00,0x3F,0xE0,0x00,0x07,0x00,0x00,0x00,0x00,0x7C,0x3E,0x0F,0x80,0x00,0x01,

};

void glcd_imagen3()

{
char i,j;

signed char k;

for( i = 32 ; i < 48 ; i ++ )

for( j = 0 ; j < 16 ; j ++)

for(k=7;k>-1;k--)

if( bit_test(imagen3[i][j] ,7-k ))

glcd_pixel( j*8+k,i, ON );

//del 32 al 64

const int8 imagen4[16][16] = {

0x80,0x00,0x3F,0xE0,0x00,0x0F,0x00,0x00,0x00,0x00,0x7C,0x3E,0x0F,0x80,0x00,0x01,
0x80,0x00,0x1F,0xF0,0x00,0x0F,0x00,0x00,0x00,0x00,0x38,0x3E,0x07,0x00,0x00,0x01,
0x80,0x00,0x1F,0xF0,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x01,
0x80,0x00,0x0F,0xF8,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x80,0x00,0x0F,0xFC,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x01,
0x80,0x00,0x07,0xFF,0x01,0xF8,0x3C,0x00,0x00,0x00,0x00,0x40,0x19,0x20,0x80,0x01,
0x80,0x00,0x03,0xFF,0xFF,0xF0,0x18,0x00,0x00,0x00,0x10,0x00,0x25,0x00,0x00,0x01,
0x80,0x00,0x01,0xFF,0xFF,0xC0,0x19,0xAB,0xE6,0x78,0xDB,0x5C,0x21,0x2E,0x9B,0x
81,
0x80,0x00,0x00,0x3F,0xFF,0x80,0x1A,0xB2,0xA9,0x55,0x52,0x44,0x21,0x2A,0xA0,0x8
1,
0x80,0x00,0x00,0x07,0xFE,0x00,0x1B,0x22,0xA9,0x55,0x92,0x5C,0x21,0x2A,0xA3,0x8
1,
0x80,0x00,0x00,0x00,0x00,0x00,0x1A,0x22,0xA9,0x55,0x12,0x54,0x35,0x2A,0xB2,0x81
,
0x80,0x00,0x00,0x00,0x00,0x00,0x19,0xA2,0xA6,0x54,0xCA,0x5A,0x19,0x2A,0x9B,0x4
1,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x
FF

};

void glcd_imagen4()

char i,j;

signed char k;

for( i = 48 ; i < 64 ; i ++ )

for( j = 0 ; j < 16 ; j ++)

for(k=7;k>-1;k--)

if( bit_test(imagen4[i][j] ,7-k ))


glcd_pixel( j*8+k,i, ON );

void med_ir ()

{
setup_adc_ports (AN0);//setup_adc_ports (ALL_ANALOG);

setup_adc (ADC_CLOCK_DIV_32);//setup_adc (ADC_CLOCK_INTERNAL);

set_adc_channel (0); //habilitacion canal 0

delay_ms (300);

t = read_adc(); //lectura canal 0

s = 5000.0 * t / 1024.0; //conversion a tension en mv

setup_adc (ADC_OFF);

setup_adc_ports (NO_ANALOGS );

delay_ms (100);

temp = ((s*1000.0)/418.0)+30178.0; // 4900mv= 42° 720mv v=32° k=30,168

temp=temp/1000;

Void led_s ()

If (statusled==0)

output_Low (Ledrojo);

output_High (Ledverde);

output_Low (Ledamarillo);

timer=0;

stl=0;

}
If (timer <= 2 && stl==0)

If (statusled==1)

output_high (Ledrojo);

output_low (Ledverde);

output_low (Ledamarillo);

If (statusled==2)

output_Low (Ledrojo);

output_low (Ledverde);

output_High (Ledamarillo);

timer ++;

delay_ms(10);

if (timer>2)

stl=1;

timer = 0;

}
If (timer <= 2 && stl==1)

output_low (Ledrojo);

output_low (Ledverde);

output_low (Ledamarillo);

timer ++;

delay_ms(10);

if (timer>2)

stl=0;

timer = 0;

///////////////////////////termina lo da la pantala//////////////////////////////

void main ()

glcd_init(ON); // iniciamos la lcd

glcd_fillScreen(0); //LIMPIAMOS LA PANTALLA


glcd_imagen(); //Llamamos a la funcion imagen para dibujar AASS

glcd_imagen2();

glcd_imagen3();

glcd_imagen4();

delay_ms(3000);

glcd_fillScreen (0); //LIMPIAMOS LA PANTALLA

glcd_rect (0, 0, 127, 63, 0, 1);

output_low (Ledrojo);

output_low (Ledverde);

output_low (Ledamarillo);

output_low (Buzer);

while (true)

tempant= temp;

med_ir();

if(tempant != temp) //si hubo un cambio en la temperatura , despliega esto en la pantalla

glcd_rect (19, 12, 98, 34, 1, 0); //borra el texto anterior

sprintf (mens," %01.1g C",temp); // Carga el dato para publicarlo

glcd_text57(20,14 , mens, 2, 1) ;//Lo publica ejes x,y,dato,tamaño ,color

sprintf (mens,"o",); // Pone el ° para grados

glcd_text57(80,12 , mens, 1, 1) ;//Lo publica ejes x,y,dato,tamaño ,color

If (temp>38)

{
Statusled =1;

glcd_rect (29, 39, 98, 60, 1, 0); //borra el texto anterior

glcd_text57(32, 44, Mens3, 1, 1) ;

output_high (buzer);

If (temp<36)

Statusled =2;

glcd_rect (29, 39, 98, 60, 1, 0); //borra el texto anterior

glcd_text57(32, 44, Mens2, 1, 1) ;

output_high (buzer);

If (temp > 36 && temp < 38)

Statusled =0;

glcd_rect (29, 39, 98, 60, 1, 0); //borra el texto anterior

glcd_text57(41, 44, Mens4, 1, 1) ;

output_low (buzer);

led_s ();

}
BIBLIOGRAFIA

 https://www.polibits.gelbukh.com/2005_31/Diseno%20de%20un%20Termometro%

20Digital%20para%20Analisis%20Clinico%20en%20Animales%20de%20Trabajo.

pdf. Recuperado el 04 de abril de 2019.

 https://uvadoc.uva.es/bitstream/10324/13320/1/TFG-P-274.pdf. Recuperado el 04

de abril de 2019.

También podría gustarte