TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: jls_80 en 18 de Julio de 2017, 23:48:56
-
Saludos a todos,
Por favor sí me pueden ayudar, estoy utilizando el PIC12F675 con el sensor de temperatura LM35. Como saben al momento de la conversión los datos de almacenan en los registros ADRESL y ADRESH. La pregunta es, como interpreto estos datos para que a partir de ellos pueda obtener el valor real de la variable física media, los mismos que los quiero presentar en displays de 7 segmentos.
-
Dependiendo de como lo conectes el datasheet del LM35 te indica cual es la formula para pasarlo:
Lo normal es que lo conectes directamente sin nada en el medio y obtengas una salida del LM35 igual a:
V = 0 mV + 10.0 mV/°C
Es decir 10mV por cada Grado centigrado. 50mV serian 5ºC
Suponiendo que tu micro tenga 10bits y que el rango sea de 5V tendrias que cada bit de menor peso del ADC son 4.88mV o mejor dicho... el valor en voltios que te de el ADC es de
ADC * 4.88mV
El valor en centigrados usando una sola formula y uniendo esas 2 es:
ADC * 4.88mV / 10mV/ºC
O lo que es igual a:
ADC * 0.48828125 ºC
Y el resultado te va a dar en grados centigrados
-
Muchas gracias por tu respuesta KILLERJC, pero para mayor comprensión cito el siguiente ejemplo: el sensor mide 42ºC, éste dará un valor de 0.42V que será leido por el PIC. Como el rango es de 5V, entonces 0.42V/5V = 0.084, y el pic tiene 10bits de conversión, entonces 0.084x1024=86 (en binario = 00010101 10000000), este es el valor que se guardaría luego de la conversión en los registros ADRESH y ADRESL. Suponiendo que tengan una justificación a la izquierda (ADCON0,7=0) entonces se tendría los siguientes valores: ADRESH=00010101 y ADRESL=10000000. La pregunta es cómo a partir de estos datos obtengo el valor de 42 que es el que presentaría en displays....?
-
No hay que buscarle mayor comprension, todo lo que hiciste lo hice en mi post, tenes 2 formulas y las tenes que unir, si queres sacarlo en centigrados ya te hice la matematica. Y es:
Resultado = ADC * 0.48828125 ºC
Simplemente pone el valor que te da en el ADC ahi y listo, multiplica y lo tenes en centigrados.
Si solo te interesa la parte entera, pones como resultado un variable entera.
Por supuesto, la justificacion debe ser derecha. Asi se entiende como un entero. Si usas izquierda lo entenderia como un fraccionario.
-
Gracias KILLERJC... Ya comprendo .. Lo voy a implementar...