Influencias externas con ADC

0

Yo uso atmega328p. Estoy tratando de leer datos de una resistencia variable usando un ADC. El microcontrolador también tiene LEDs conectados. Si los enciendo, los datos del ADC aumentan notablemente.

Inicializando el ADC:

/***** ADC *****/
ADCSRA |= (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); //128
// 16MHz/128 = 125kHz
ADCSRA |= (1<<ADIE); //enable interrupt
ADCSRA |= (1<<ADEN); //enable adc
//ADMUX |= (1<<REFS0) | (1<<REFS1); //1.1В
ADMUX |= (1<<REFS0); //AVcc with capasitor as AREF pin

ADCSRA |= (1<<ADSC); //new start
ADMUX |= (1<<MUX0) | (1<<MUX2); //ADC5

¿Cómo puedo resolver este problema?

Pido disculpas por el esquema, pero no tengo el programa correcto a mano.

Información adicional debido a las respuestas:

  • En el estado normal, el valor ADC es 2. Si enciendo el LED, el valor aumenta a 20. Cambié la resistencia de 220 Ω a 1 kΩ, ahora el valor aumenta de 2 a 7. El voltaje proviene del USB 3.0 .
  • En un intento por fortalecer la fuente de alimentación, intenté soldar el segundo conector USB y energizar en paralelo. Nada ha cambiado.
pregunta Marat Gareev

2 respuestas

0

Algunas cosas para probar:

Aumente el valor de los límites de derivación en Aref, Vcc y AVcc (p20) del 328P.

Asegúrese de que el suministro y la ruta a tierra de la resistencia variable no estén directamente en línea con el suministro o la ruta a tierra de los LED.

Reduzca la carga en el 328P accionando los LED con un transistor o compuerta adicional.

Para obtener más información sobre la reducción de ruido crítico, el libro de datos de Atmega328 / P contiene métodos de mejora adicionales, consulte el capítulo ADC.
enlace

    
respondido por el Nedd
0

Creo que su fuente de alimentación es muy débil. O el microcontrolador está teniendo problemas con el suministro de corriente para el LED

Ejemplo para ilustrar mi punto:

  • LED = apagado \ $ \ rightarrow \ $ La referencia del voltaje analógico es X
  • LED = encendido \ $ \ rightarrow \ $ La referencia de voltaje analógico es Y
  • X > Y

asumiré que X es 5 V y Y es 1.45 V y que está midiendo una señal de CC de 10 mV.

  • LED = apagado \ $ \ rightarrow \ text {analogRead () =} \ frac {0.01 \ text {V} × 1023} {5 \ text {V}} = 2 \ $
  • LED = en \ $ \ rightarrow \ text {analogRead () =} \ frac {0.01 \ text {V} × 1023} {1.45 \ text {V}} = 7 \ $

Solución:

  • Verifique que su fuente de alimentación pueda suministrar al menos 500 mA, o incluso 1 A.
  • O aumente la resistencia de 220 Ω a 1 kΩ.
respondido por el Harry Svensson

Lea otras preguntas en las etiquetas