Ummm, lo de promediar puede llegar a ser peligroso si el fenómeno que se esta estudiando posee alta dinámica.
Normalmente en los casos temperatura hay una gran inercia y promediar 8/16 con el ADC debe estar en el orden de los milisegundos o menos hacer TODO, captura + promediado, ejemplo el minimo especificado esta en 0.7us el TAD y 1us maximo con el RC del ADC en ese PIC + 1.4us de adquisicion ( a FULL escala, cambio total de voltaje). creo que totalmente factible. No se cual es el la precision que busca , pero algo que cambie 0.1º en 20us supongamos (una lectura tras otra *
, estamos hablando de algo que pueda subir 50000 ºC/s si mantiene ese ritmo.
El promediar no es malo.. al menos en el micro, si usas un capacitor externo como el que dijeron ya es otro tema, es tanto asi que hay un capitulo del datasheet de TI sobre el LM35 manejar una carga con gran capacidad.
Tengo una pregunta, se podria hacer de alguna manera que el LM35 trabajara en una resolucion de 8 bits, pero el microcontrolador funcionara a 10 bits (ya que otros sensores necesito que funcionen a 10 bits, y como no he hecho la etapa amplificadora pierdo muchos bits poniendolo a 10 en el LM35 y no mide correctamente con lo que me habeis dicho, y no tengo opcion de poner nada mas)
Como dijo Chenao, El LM tiene una salida analogica y lineal, ademas en centigrado full-range tiene un error de hasta 0.8ºC (testeado y 1.5ºC en los limites) a 25ºC ( lo tipico es +/- 0.4ºC a 25º ) - hablo del LM35 no el LM35A C o lo que sea.
El otro tema es si esta un poco lejos el LM es la caida de tension que tengas en el conductor. Ya que la tension en el conductor es importante ( es lo que medis ),
Volviendo al tema, el microcontrolador tiene 10bits, con eso el minimo step que podes medir es de 5V-0V/1024 = aprox 5mV (4.88mV) , esto es 0.5ºC del LM, podes mejorar esto "artificialmente" en la cual oversamplees y dividis, Toma 4 muestras y dividilo por 2 y vas a conseguir 1 bit mas. Obviamente "fabricado". Y aunque no quiera tambien tenes los siguientes problemas:
- Hacer el tema de oversampleo y promediado tiene algunas exigencias tales como que la variacion sea producida por "ruido blanco"
- El ADC tiene errores, sea cual sea tu metodo de obtencion.
- La representacion de 0.488 no es exacta.. pero sorprendentemente esta BASTANTE cerca 0.4880000054836273 ( en 32 bits )
- La representacion en flotante de otro numero puede que no sea TAN exacta como uno quisiera tambien.
- La tension de referencia puede no ser exacta tmb.
y vas sumando errores. Y tal ves tengas un error de unos 1ºC acumulado facilmente a 25ºC y empeoraria a fondo de escala.
Pero antes de entrar en todo esto, mediste a la salida del LM la tension que posee ? para verifica que correctamente es lo que recibe el ADC ? Y que es tambien lo que correctamente deberia salir del LM ?
Lo pregunto por que si haces eso vamos a separar y ubicar donde esta el error. Si es el LM, si es el ADC, si es el camino del LM al ADC o si es el programa quien lo esta arruinando.
(Intenta leer el LM35 con y sin la salida conectada al ADC, para ver si cambia tambien)