Buenas tardes estimados
quiero hacer un termómetro digital con lm35, pero no me marca la temperatura del entorno sus 24v a 27v, siempre me marca el máximo los 5V, 500º,50º y 0.05º cada ves que lo pruebo fisicamente , simulado en proteus va perfecto pero en la parte practica no me funciona
, no logro hacer que marque la temperatura real del ambiente.
aquí dejo el código:
#include <16F877a.h>
#device adc=10 //Ponemos que se usen 10 bits para A/D
#fuses HS
#use delay(clock=20M) //Frecuencia de reloj de 8MHz
#include <LCD420.c>
void main()
{
int16 lectura;
float voltios;
setup_adc_ports(ALL_ANALOG); //puertos A como analogicos
setup_adc(ADC_CLOCK_INTERNAL); //Reloj interno para laconversion ADC
setup_comparator(NC_NC_NC_NC);
set_tris_a (0b11111111); //Configuramos todo el puerto A como entrada
lcd_init(); //Inicializamos el display LCD
while(true)
{
set_adc_channel(0); //PIN_A0 como canal analogico
delay_us(20);
lectura=read_adc(); //Leemos el nivel del PIN
voltios=500.0*lectura/1024.0; //
printf(lcd_putc,"\f"); //Limpiamos la LCD
delay_ms(1);
printf(lcd_putc,"Temperatura ");
printf(lcd_putc,"\n %01.2f C",voltios );
delay_ms(200);
}
}
a veces pienso que no toma en cuenta el lm35, es una posibilidad.
ruego su ayuda
saludos cordiales
Daniel Villavicencio
FINAL.png(146.38 kB, 222x464 - visto 367 veces)