Detección de 3V en vez de 5V - ADC en ATMEGA88

Hola a todos,

Quería agradecer al foro por brindar un espacio para los diseñadores y poder apoyarnos a fin de lograr mejorar nuestros proyectos y aprender siempre nuevas cosas.

El motivo por el que ahora hago consulta es debido a la prueba que hago de un circuito en PROTEUS con un microcontrolador ATMEGA88, el detalle es este:

-Programa configurado para detectar ADC del voltaje de una resistencia variable de 1k, conectado por un extremo al VCC=5v (predeterminado por el PROTEUS), el otro extremo a GND (tierra) y el punto variable es la entrada a mi pin ADC1 del atmega88 (PC1)

-cuando simulo el software me detecta la variación de voltaje, pero el detalle esta en que cuando coloco la resistencia al 60% va ok, pero valores mayores a este (>61%), se resetea parece los valores y para 61% en vez de detectar el valor continuo, inicia nuevamente como si fuera 0V, cuando si sacamos cálculos es aproximadamente 3V.

Quería saber si ha alguien le paso esto y como lo soluciono.

Espero su ayuda y gracias por su comprensión.

Saludos.

Diego.
 
Lo mas probable es que configuraste mal el ADC del atmega88, checa bien la referencia que estas utilizando para el ADC, no me acuerdo que referencias tiene, si mal no recuerdo su referencia interna es de 2.5 V, entonces cuando pasas de ese nivel te muestra mal los valores
 
eso es lo que creo que esta mal mira por ejemplo estoy usando esta configuración

void ini_ADC()
{
ADMUX=(1<<REFS0); // For Aref=AVcc;
ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0); //prescalar div factor =128
}

se supone que ahí toma mi voltaje de referencia con el que se alimenta y esta sería la conexión

thump_8166068vref.jpg


 
Última edición por un moderador:
ADMUX = (1<<REFS0) esto deja todo el registro de ADMUX en cero y solamente en 1 el bit REFS0
ADMUX |= (1<<REFS0) esto pone a 1 el bit REFS0 y deja todos los demas bits iguales
Toma en cuenta ese dato, ahorita no tengo lector de PDF para checar la hoja de datos del atmega88
Pero lo unico que tienes que asegurar es:
Que la frecuencia de muestreo sea menor que 200Khz, esto si quieres lograr los 10 bits de resolucion.
Asegurate que el bit ADLAR no esta activado, si es que quieres la resolucion de 10 bits, si no es el caso entonces activa esta funcion
Seleccionar la referencia correcta, puedes probar a usar la referencia interna
Seleccionar el pin de entrada para el ADC

Si Aref=AVcc la conexion que tienes del hardware esta bien, solo checa bien en la hoja de datos que este bien la seleccion de la referencia y de la frecuencia de muestreo que sea menor a 200Khz si quieres la resolucion de 10 bits y que no estes activando el bit ADLAR o en su defecto si estas usando resolucion de 8 bits, entonces checa que la frecuencia de muestreo sea superior a 200Khz y que el bit ADLAR este activo, y que leas solamente el byte alto del registro ADC, osea ADCH.

Justo me agarraste en un momento en el que no tengo disponible ninguno de mis documentos, porque vendi mi compu y esta es prestada y no tiene nada mas que windows xp jejeje
 
Verdad no? :LOL: veo la corrección del ADMUX que me mencionaste y te juro que casi me orino de risa porque es un error un poco básico :LOL:.

pero voy a probar según lo que me comentas porque según la configuración que estoy haciendo si esta dentro de la frecuencia permitida para los 10 bits y el voltaje entonces estaría OK.

A ver voy a probar y comento si funciono.

Muchas gracias.
 
Atrás
Arriba