Estoy recibiendo un comportamiento algo extraño del ADC de mi arduino, intentaré explicarlo lo mejor posible. Hice un circuito amplificador de micrófono que da una señal de pico a pico de 0 a 5 V con un desplazamiento de CC de 2,5 V. Esta señal se introduce en el ADC de Arduino. Estoy construyendo un medidor de VU, por lo que en base a la lectura del ADC, se enciende algún número de luces.
El circuito en la siguiente condición con las conexiones a tierra del LED abiertas, como se ve aquí, funciona bien. El Arduino lee los valores como se supone que debe recoger cualquier sonido en el micrófono. Verifiqué esto haciendo una impresión en serie de los valores a mi computadora y también sondeando la salida del opamp en un osciloscopio.
Circuito simplificado. (Ver mi primer comentario para ver el circuito completo del amplificador).
El problema surge cuando cierro las conexiones de tierra de los LEDs como se ve en la siguiente imagen. Curiosamente, el ADC parece dar un pulso cuadrado en el instante en que muestrea la señal. Lo he comprobado sondeando la salida del amplificador óptico en un osciloscopio: el gráfico que hay debajo del circuito muestra lo que vi en el osciloscopio. El ADC está leyendo un valor de 1016 (casi 5 V) que enciende todas las luces perpetuamente.
Circuito simplificado. (Ver mi primer comentario para ver el circuito completo del amplificador).
Para complicar aún más las cosas, cuando reduzco el suministro de voltaje a todo el circuito (incluido el microcontrolador) a unos 3 V, el comportamiento de impar descrito anteriormente no ocurre y el medidor de VU funciona perfectamente. Pero a este voltaje las luces son demasiado tenues y apenas visibles :(
Llevo mucho tiempo atascado en esto y no tengo ni idea de por qué ocurre esto.
Se agradece cualquier idea o ayuda.