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.