TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: EdinsonMak en 02 de Marzo de 2019, 23:51:27
-
Hola Amigos el motivo de este tema es que soy nuevo en esto y trabajando en una practica con el sensor de temperatura Lm35 me encuentro con un error y es que varia mucho sus valores en el montaje real da valores de 100,309,400 y asi varia queria saber que solucion me pueden dar el montaje por ahora es el basico al pin analogico del pic
este es el codigo de antemano muchas gracias
#include <18f452.h>
#device adc=10
#fuses XT,NOWDT,PROTECT,NOCPD,NOLVP,PUT,BROWNOUT,BORV27,CPB
#use delay(clock=4M)
#use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7, bits=8, parity=N) //para la pantalla de visualizacion
void main()
{
setup_adc_ports(ALL_ANALOG);//entrada del LM35
setup_adc(ADC_CLOCK_INTERNAL);
// int numero1,numero2,convnum1,convnum2,total;
float temperatura=0,n=0,grados=0;
while(true)
{
set_adc_channel(1);
temperatura=read_adc();
n=(temperatura*5000)/1023.0; //convierto el adc del lm35 a mV
grados=n/10; //convierto mV a grados
printf("\rTemperatura Ambiente: %.0f\r",grados); //muestro en grados
delay_ms(500);
}
}
-
Si mides el sensor directamente con un polimetro(tester, multimetro...) o mejor aun si puedes con un oscilsocopio, el valor del LM35 es correcto y no varia ?
De ser así tu problema podría ser que la referencia del ADC que segun veo tienes la interna del micro por que no veo en ningun sitio que pongas alguna externa ni cualquier otra referencia oscilará demasiado y no te sacará mucha precisión.