ANALISIS DE COMO CALCULAR LA TEMPERATURA CON EL ADC DEL PIChaciendo calculos de como sacar la temperatura con el convertior ADC del PIC hice lo siguiente
el registro del cada ADC del pic PIC16F688 es de 10 bits
es decir 2^10 = 1024 niveles a la escala
esto significa que el ADC tiene una resolución de 10 bits, osea que puede registrar variaciones tan pequeñas de 1/(2^10) sobre el voltaje de referencia
regularmente el voltaje de referencia del ADC es 5v (por convencion y porque es lo comun como fuente de voltaje del PIC)
pero puede ponerse un voltaje distinto de referencia.
teniendo lo anterior claro, procedemos a describir el sensor de temperatura LM35
el LM35 presenta variaciones de 10mV/°C
lo que significa que por cada grado centigrado el dispositivo entrega 10mV mas
por ejemplo:
a 2° debe entregar 20mV
a 23° debe entregar 230mV
a 150° debe entregar 1.5V
mas información en la hoja técnica del sensor
http://www.national.com/ds/LM/LM35.pdfsi elegimos el rango completo del sensor, 2° - 150° es suficiente para el uso que le daremos.
como el voltaje esperado mayor es 150° -> 1.5V ponemos este voltaje como la referencia (basicamente en el pin de Vref del PIC se alambra hacia un punto fijo que proporcione 1.5V (luego discutiremos como lograr esto)
entonces la proporcion ya en el registro de 10 bits es
0v -> 0
1.5V -> 1023
la proporcion es 1.5V/1023 o 150°/1023
con esa division podemos saber segun el valor del registro cuanto es el voltaje que se está midiendo
por ejemplo, si el registro nos muestra un valor de 123, cuanta temperatura estamos leyendo?
123 * (150/1023) = 18.03°C
ya tenemos una formula con la que podemos tener una resolucion de parcial de 1 decimal para la temperatura, porque digo parcial, porque por la naturaleza de la formula, hay valores de temperatura que no se podran presentar, por ejemplo
en la tabla vemos que no aparece el valor de temperatura 0.2°, 0.5°, 0.8°, 1.1°, 1.4° etc
porque no aparecen?
partiendo del hecho que para tener desde 0.0 hasta 150.0 son 1500 valores posibles, con un registro de 10 bits solo podemos contar hasta 1024.
si hubieramos optado por representar de 0.0 a 100.0 como full escala, nos bastaria con los 1024 registros para tener un decimal completo de despliegue, pero para visualizacion y control es suficiente un decimal parcial.
la temperatura esta redondeada a 1 decimal