Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

30/04/2012 #1


Eliminar las variaciones de lectura del adc del pic16f887
Tengo un problema con la lectura analogica del pic, estoy adaptando un termopar al pic y lo compenso con el sensor LM35, los voltajes de cada uno de los sensores son correctas segun la simulacion pero en la LCD me registra mucha variacion en la temperatura de aprox +-2grados. El problema esta en que si mido el voltaje en la entrada analoga del pic estas no varian. Que puedo hacer para solucionar este problema?
30/04/2012 #2

Avatar de Rigeliano

Prueba con un condensador a la entrada del ADC del Pic o sino también podrías implementar un filtro en el Pic.
30/04/2012 #3


ya intente con condensadores y resistencias tratando de hacer un flitro pasa bajos pero me sigue haciendo lo mismo, como puedo implementar un filtro en el pic?
30/04/2012 #4

Avatar de Daniel Meza

ya intente con condensadores y resistencias tratando de hacer un flitro pasa bajos pero me sigue haciendo lo mismo, como puedo implementar un filtro en el pic?
Me parece que solo en los DSPic se pueden implementar filtros. Pero puedes optar por otra forma... leer unas 10 muestras por cada sensor y realizar un promedio de las 10, este resultado será el que se muestre en el LCD. No olvides colocar aún así algún filtro pasabajas.

La idea de hacer el promedio es para descartar posibles medidas sobre de y bajo de la temperatura sensada
Saludos
30/04/2012 #5


mira amigo el problema es que seguramente tu adc esta leyendo 5/255 = 0.0196078431 y tu sensor lee de esta manera 1º es igual a 10mV entonses si tu adc mide como minimo 19mv=1 lo que aqui deves de hacer es un multimplicador lo puedes hacer con un operacional con un arreglo de un no inversor multimplicado por 2 y con eso puedes resolver dicho problema saludos
30/04/2012 #6

Avatar de Daniel Meza

corrigiendo al amigo xmatrix, el ADC de los PIC's es de 10bits lo que da un rango de aprox 4.9mV por unidad. Se puede entonces ajustar la salida del LM35 por medio de un divisor resistivo para que por cada °C de una salida de ≈4.9 mV, de esta forma se simplificaría la lectura de este por el PIC
30/04/2012 #7


si puede usando esa manera o configurandolo a 8 bits y colocando un operacional cualquiera de las dos maneras
30/04/2012 #8

Avatar de Daniel Meza

Es cierto... me fuí por la mayor resolución. Habrá que ver cual es la salida del termopar para optar por la interfaz de sensado
30/04/2012 #9

Avatar de eng

ponle una resistencia que vaya conectada de la entrada del adc a tierra
30/04/2012 #10
Moderador

Avatar de Chico3001

Una cosa que tienen que tener en cuenta es que debido a que la masa el termopar es despreciable tiene una respuesta muy rapida pero es inherentemente ruidoso..., de echo cualquier tipo de sensor tiene cierto rango de variacion y esta depende mucho del cuidado a la hora de elegir los componentes y acomodarlos en la placa....

En el termopar trata primero de usarlo lo mas corto posible... y velo alargando poco a poco... no intentes leer usando cables de 10 o 15 metros hasta no estar seguro que tu circuiteria funciona bien...

Daniel Meza dijo: Ver Mensaje
Me parece que solo en los DSPic se pueden implementar filtros. Pero puedes optar por otra forma... leer unas 10 muestras por cada sensor y realizar un promedio de las 10, este resultado será el que se muestre en el LCD. No olvides colocar aún así algún filtro pasabajas.

La idea de hacer el promedio es para descartar posibles medidas sobre de y bajo de la temperatura sensada
Saludos
De echo lo optimo son 8, 16 o 32 muestras... asi solo se hace un corrimiento para sacar el promedio...
04/05/2012 #11


gracias por sus comentarios al parecer ya esta resuelto el problema, fue de gran ayuda sus opiniones.
07/05/2012 #12

Avatar de angeldemx

Daniel Meza dijo: Ver Mensaje
Me parece que solo en los DSPic se pueden implementar filtros. Pero puedes optar por otra forma... leer unas 10 muestras por cada sensor y realizar un promedio de las 10, este resultado será el que se muestre en el LCD. No olvides colocar aún así algún filtro pasabajas.

La idea de hacer el promedio es para descartar posibles medidas sobre de y bajo de la temperatura sensada
Saludos
esto si que funciona!!
25/06/2017 #13


Daniel Meza dijo: Ver Mensaje
Me parece que solo en los DSPic se pueden implementar filtros. Pero puedes optar por otra forma... leer unas 10 muestras por cada sensor y realizar un promedio de las 10, este resultado será el que se muestre en el LCD. No olvides colocar aún así algún filtro pasabajas.

La idea de hacer el promedio es para descartar posibles medidas sobre de y bajo de la temperatura sensada
Saludos
buenas queria que me expliques como escribo en ccs el codigo para sacar promedio de 10 lecturas
25/06/2017 #14

Avatar de wasausky

los guardas en un array unidimensional como:
int temp;
int16 s;
main(){
s=0;
for (i=0,i<=10,i++)
{ setup_adc(i);
delay_us(50); tiempo de cambio de canal
temp=read_adc();
s=s+temp;
delay_ms(tiempo de muestreo que desees);
}
temperatura_final=s/10;
}

esa es la idea adaptalo a tu codigo y listo
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.