Autor Tema: Representar el muestreo del ADC en un valor con punto fraccionario  (Leído 2838 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado 100tifico

  • PIC10
  • *
  • Mensajes: 14
Representar el muestreo del ADC en un valor con punto fraccionario
« en: 16 de Septiembre de 2012, 03:10:55 »
Primero que nada hago un coordial saludo a toda la comunidad TodoPIC. Les comento que abro este tema ya que he invertido semanas buscando y no encuentro algo de información concreta del tema. Lo que sucede esque ya hace algun tiempo realice un proyecto de un termometro digital con el PIC16F877 + LM35 y LCD 16x2, el cual funciono muy bien. Posteriormente por experimentación con nuevos componentes me lance a la tarea hacer este mismo proyecto, pero con el PIC16F690, esto por la ventaja de ahorro en espacio, pues este micro no requiere de cristal externo. Bueno este me trajo algunas limitaciones, pero igualmente funciono muy bien. Hasta ahora todo bien, pues la arquitectura del programa me servia de muy buena manera para esto del termomentro, para contadores ó para tacomentros,  pero me surgio la necesidad de tener mayor presición en la medición, es decir, requiero de poder medir los decimales de grado centigrado, esto para lograr mantener un ambiente mas estable.

Creo que hay uno o más temas como este, pero al parecer no tuvierón respuesta y estan algo olvidados o puede que en su momento no se tubiera la respuesta a la mano, vuelvo a proguntar para ver si alguno de ustedes me puede dar un pista de por donde va la cosa. Yo ví en otro tema que alguíen explíco como transformar un valor decimal con punto fraccionario a binario, pero me imagino que en este caso seria de manera inversa, tomar el muestreo del ADC en binario, y de alguna manera adaptar ese valor con por lo menos con un digito fraccionario(es dónde me pierdo) y obtener una mayor resolución de la escala. Ahora que por el asunto de la resolución, pues como se aumenta la resolución, la escala de medición se hace más pequeña y se me ocurre que como yo unicamente he usado los 8 bits menos significativos para darle mayor amplituda a esa escala debería de usar los 10 bits de los dos registros de muestreo del ADC(otro artilugio que aún no he sabido como hacer). Quiero aclarar, que estos proyectos los he hecho en Ensamblador y este ultimo lo quiero realizar con el PIC16F877A y tambien en ensamblador . Así que se me hizo interezante compartir mi duda con ustedes que se han enfrentado a inumerables problematicas y aplicaciones con los PIC, para ver con que ideas me pueden orientar.

Sin más por el momento gracias por haber leído mí pregunta...Saludos a todo el foro. :)

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #1 en: 16 de Septiembre de 2012, 10:17:38 »
Tener en cuenta que la precisión del LM35 es de 0.5º, estonces agregar un decimal a la medida es para mentir, porque el sensor no es capaz de entregarte esa precisión  :roll:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado 100tifico

  • PIC10
  • *
  • Mensajes: 14
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #2 en: 18 de Septiembre de 2012, 01:59:36 »
Una sabia respuesta viniendo de uno de los más sabios programadores embebidos de TodoPic. Es un muy buen punto a tomar en cuenta mi estimado Suky, aúnque se me hace curioso ver en yuotube videos de termostatos que manejan punto decimal usando este mismo sensor, posiblemente como comentas solamente nos mienten estas lecturas, pero me pregunto si ¿me podrían recomendar otro sensor que cuente con la presición necesaria para realizar una medición fiable?

Desconectado fuente

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 571
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #3 en: 18 de Septiembre de 2012, 05:09:03 »
No tengo el datasheet del lm35 a mano, pero son 0,5V de precisión o de resolución?
Si no recuerdo mal, la salida de este integrado son 10mV por ºC, y los 0,5V se refieren a la precisión, no a la resolución.
Si son de precisión, basta con sumar o restar la diferencia con la lectura de algún termómetro de referencia, y no se estaría mintiendo por muchos decimales que se pongan, siempre que estén dentro de la resolución del integrado.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #4 en: 18 de Septiembre de 2012, 14:36:24 »
No tengo el datasheet del lm35 a mano, pero son 0,5V de precisión o de resolución?
Si no recuerdo mal, la salida de este integrado son 10mV por ºC, y los 0,5V se refieren a la precisión, no a la resolución.
Si son de precisión, basta con sumar o restar la diferencia con la lectura de algún termómetro de referencia, y no se estaría mintiendo por muchos decimales que se pongan, siempre que estén dentro de la resolución del integrado.

Es precisión, no creo que de saltos de 0.5ºC  :mrgreen: Uno más preciso mmm... Me acuerdo solo del LM92, I2C y de 0.33ºC  :tongue: Sino podes agregarle la resolución de 1 decimal, pero hay que saber que ese ultimo dígito no es confiable. Además estoy seguro que va a variar mucho.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado CR7

  • PIC10
  • *
  • Mensajes: 11
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #5 en: 18 de Septiembre de 2012, 18:24:49 »
Hola 100tifico,

Lo que comentas es correcto si hay referencias del LM35 que te pueden servir solo que como es obvio son mas difíciles de adquirir. Por ejemplo a ti te serviría el LM35CAZ el cual posee una precisión de 0.2°C.

Saludos!
-Solo los grandes son los que se levantan-

Desconectado 100tifico

  • PIC10
  • *
  • Mensajes: 14
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #6 en: 22 de Septiembre de 2012, 13:13:32 »
Bueno esto va tenindo algo avence, al menos para disernir aspectos sobre el sensor que se debe de utilizar, ó como se debe de utilizar. En lo personal no he utilizado el LM92 con presición de 0.33, que comenta el amigo Suky. Por otra parte CR7 dice que el LM35CAZ tiene presición de 0.2 . A mi ver creo que no esta muy clara la hoja de datos de LM35 pues en unos apartados si comenta sobre una presición de 0.2 y en otros comenta una presición de 0.5, pero no es muy especifico sobre cual de las variantes del LM35 es la que tiene dichas presiciones...ó solamente que sea el unico que no lo note si alguien sabe diferenciarlo sería buno que nos ilustre.

Ahora que, tambien me pregunto de quien se avastecen los fabricantes de termometros digitales clinicos, ya que estos funcionan de esta manera, con por lo menos un digito con punto decimal.?

Por el momento voy a seguir analizando la hoja de datos del LM35... yo me imagino que algo se me debe estar escapando...saludos a todos.! :)

Desconectado CR7

  • PIC10
  • *
  • Mensajes: 11
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #7 en: 22 de Septiembre de 2012, 13:21:49 »
Hola 100tifico

En la pág 3 del datasheet en la tabla de características eléctricas aparece como primer ítem la precisión y el fabricante asegura que a 25°C obtuvo en promedio una precisión de 0.2°C.

Saludos! :-/
-Solo los grandes son los que se levantan-

Desconectado 100tifico

  • PIC10
  • *
  • Mensajes: 14
Re: Representar el muestreo del ADC en un valor con punto fraccionario
« Respuesta #8 en: 26 de Septiembre de 2012, 14:11:29 »
Hola CR7.

Tomando en cuenta lo que me señalas, he dado una vista a la pagina tres de la hoja de datos del LM35, al parecer según comenta el fabricante el LM35A y LM35CA son sus variantes mas precisas, ya que como me indicaste, ellos asegurán una presisión de 0.2 °C para estos dos modelos. Posteriormente en la cuarta pagina comentan una presisión de 0.4 °C para los modelos LM35, LM35C y LM35D (Menor presición). El que yo tengo es el LM35DZ, me imagino que es el que cae en la categoria LM35D y que cuenta con 0.4 °C de presición. Aunque lo que me desconcerta el la grafica de "Presición-Temperatura" DS005516-32 y 33 (pagina 5 de la hoja de datos), donde hacen un desgloce del desempeño de todos los modelos, y en los casos más presisos parten unicamente de 0.5° C....no veo que lo hagan de una escala más pequeña. :?

Bueno para no hacerla más cansada (para dar avance en el tema de la programación)...imaginemos por un momento que no cuento con más recursos y quiero ó debo  implementar este sensor. Digamos que hago un programa en el cual despliega la temperatura con un digito fraccionario decimal (00.0 °C). Me imagino que la manera correcta en que se debe mover la escala numerica es en intervalos de 0.4 °C, y entonces de esta manera ya tendría lecturas mas presisas "Aparentemente". Ahora que me pregunto yo....¿Como comensaría a implementar ó adaptar un codigo que me de una lectura con punto fraccionario?

ó si me equivoco en este concepto... no sé que opinen ustedes...Saludos a todos..! :)


 

anything