ayuda con el conversor A/D

estoy usando el conversor analogico digital de un pic16f877 pero no logro hacer que funcione bien el problema es que no mantiene un valor constante y anda variando erraticamente intente con el capacitor de 100nF en la alimentacion del pic pero no funciono ye no se que mas puedo hacer alguien me puede dar una idea de que hacer
 
¿Que tan erratico funciona? ¿de cuanto es la variación?
¿Cual es la frecuencias mas alta que estás muestreando?
 
estoy haciendo un muetreo por segundo el pic trabaja a 4Mhz y varia demasiado no es una cantidad exacta pero conecto la terminal ra0 a tierra y me marca 00 y aveses se va hasta ff no se a que se deva, si le conecto un potenciometro y le doy voltajes que referencia mide bien sin saltos solo falla cuando conecto el lm35
 
Yo utilice el sensor de temperatura LM35 con un ADC0804 conectado a un micro AT89S52. El LM35, conectado directamente a la entrada analogica positiva del ADC y la negativa la pones a tierra. Calcula aproximadamente la tension de referencia y coloca un preset para que puedas ajustarla en la calibracion. Para obtener mediciones precisas en importante que trabajes con el ADC por interrupciones, ya que si trabajas en modo 'free-running' (convierte todo el tiempo) es muy posible que leas mediciones erroneas.
Para trabajar por interrupciones tenes que utilizar 3 lineas de control que tiene el ADC:
RD -> Pasa el dato convertido al buffer de salida y lo mantiene para que puedas leerlo.
WR -> Da la orden al conversor que empiece una nueva conversion
INT -> El conversor avisa que finalizo la conversion

La linea INT debe conectarse a una entrada de interrupcion del mico y las otras dos a cualquier entradad comun.
La idea es que hagas
WR=1;
WR=0;
para iniciar la conversion. Luego una vez que finaliza el micro te interrumpe y dentro de la funcion de interrupcion debe hacer lo siguiente:
RD=1;
conversion=inportb(XXX);
RD=0;

Espero que te sea util la información. Saludos!
 
Atrás
Arriba