¿Puedes publicar la hoja de especificaciones de ese micrófono? No hay ninguna razón para necesitar una ganancia de 5000 con un micrófono electret a menos que tengas una unidad desnuda sin FET interno. Si ese es el caso, el preamplificador tiene que ser muy diferente.
Además, el circuito que has utilizado no es muy adecuado para ser utilizado como preamplificador de un micrófono electret.
Yo recomendaría:
R5/R4 ajusta la ganancia y puede ser ajustada sin joder la impedancia de entrada del circuito. R3 puede ser de 2k -> 10k ish. 10k tenderá a mejorar el rendimiento de la distorsión, si lo ajustas demasiado bajo deberías repensar los valores de R1 y R2 para fijar la impedancia de entrada.
También es muy importante que la fuente de alimentación esté adecuadamente desacoplada, ya que cualquier ruido llegará al micrófono.
Como mencionaron las otras respuestas tu punto "cero" será ~512 cuando leas el ADC y fluctuará un poco sin importar lo que hagas.
Si tu objetivo es que las luces parpadeen en respuesta al nivel, no deberías tomar lecturas instantáneas con un arduino de todos modos, ya que dudo que vayas a ser capaz de muestrear lo suficientemente rápido para que responda bien. En lugar de eso, haz una detección de pico o de nivel medio en el dominio analógico y establece el período de promedio proporcionalmente a la velocidad de muestreo.
EDIT: Más sobre cómo hacer esto con un detector de picos
El problema que tendrás aquí es que el arduino tiene una velocidad de muestreo relativamente limitada, creo que tu máximo va a ser de unos 10khz lo que significa que sólo puedes resolver una señal de audio de 5khz como máximo. Eso es con el arduino haciendo muy poco, excepto el funcionamiento del ADC, si usted necesita hacer cualquier trabajo real (y usted hace algunos para obtener el nivel) la velocidad de muestreo será menor.
Recuerde que su toma muestras discretas de la señal sin procesar, sólo porque tengas una onda sinusoidal de rango completo alimentando el ADC no significa que no obtendrás lecturas de 0 del ADC, obtendrás muestras en varios puntos de la onda. Con la música real, la señal resultante será bastante compleja y tendrás muestras por todas partes.
Ahora bien, si lo único que quieres medir es el nivel de la señal de entrada, y no te importa obtener una representación digital de la señal, entonces puedes utilizar un simple detector de picos después de este preamplificador para hacerlo.
Lo que hace esto es convertir la señal de audio en un voltaje que representa su nivel máximo. Cuando midas este voltaje con el ADC tendrás un valor inmediato que representa el nivel de la señal en el momento en que se tomó la lectura. Todavía tendrás un poco de bamboleo ya que el sonido es una forma de onda compleja y siempre variable, pero esto debería ser fácil de tratar en el software.
Un detector de picos sin retención es en realidad un rectificador con un filtro en la salida. En este caso tenemos que tratar con señales de bajo nivel y mantener la precisión, por lo que tenemos que hacer un poco más de lo que se haría para su circuito rectificador promedio. Esta familia de circuitos se llama "rectificadores de precisión".
Hay un billón de maneras diferentes de hacer esto, pero yo iría con este circuito, parece que funciona mejor cuando se utiliza una sola fuente. Esto iría después del circuito de preamplificación ya discutido y la entrada podría estar acoplada a la CA o no, a pesar de que se ejecuta a partir de una sola fuente de alimentación que en realidad va a funcionar muy bien con voltajes de entrada negativos, siempre y cuando no se exceda el voltaje disponible de pico a pico de los amplificadores operacionales.
OP1 actúa como un diodo (casi) ideal que evita el problema habitual de la caída de tensión a través del diodo cuando se rectifica. Casi cualquier diodo de pequeña señal funcionará para D1, algo con una menor caída de voltaje hacia adelante aumentaría la precisión, pero dudo que sea importante para su uso.
C1 y R4 actúan como un filtro de paso bajo para suavizar la salida, puedes jugar con sus valores para adecuar el rendimiento a lo que intentas hacer (y a tu frecuencia de muestreo).
Probablemente puedes usar el mismo modelo de amplificador operacional que usas en el preamplificador, pero el Rail-to-Rail y la alta velocidad de giro son ideales para este circuito. Si tienes un problema de estabilidad, aumenta R1, R2 y R3 a 100k ohm.
0 votos
¿Está seguro de que tiene el C2 en su sitio? ¿Cuál es la tensión continua silenciosa después de C2?
0 votos
Sí, tengo el C2 en su lugar. Es de unos 2 voltios. No sé si esto tiene sentido: ¿podría ser que haya alguna corriente atrapada(?) en el bucle entre el pin 2 y el 6, la salida y la entrada inversora?
0 votos
¿Qué tal la tensión continua silenciosa después de C2 con ella desconectada del pin de entrada del Arduino?
0 votos
La presencia de C2 significa que la salida del preamplificador oscilará en torno a los 0V, y no a los 2,5V con los que funciona internamente.
0 votos
Una cosa más - es posible que desee deslizar un pequeño diodo shottky entre el preamplificador C2 y la entrada de Arduino - tirar esos voltajes negativos que realmente no te importa. Una cosa más que hice fue añadir otro condensador entre la entrada analógica y la tierra para suavizar la señal un poco. Hace que el medidor VU sea un poco menos parpadeante.
0 votos
Ah, y al tratar el valor de entrada, toma la raíz cuadrada del mismo - representa más lo que estás escuchando (logarítmico) que lo que se está muestreando (lineal). En lugar de hacer cálculos pesados, sólo he utilizado una pequeña tabla de búsqueda,
0 votos
Sólo una nota sobre el esquema dibujado en la primera imagen. Usted está utilizando 27k resistencias para hacer el desplazamiento de 1/2 VDC y luego poner C3 en la salida. Esto es bueno para el preamplificador del micrófono, pero no es bueno para la conexión a ADC becouse usted necesita la compensación que creó. Así que si alguien trata de conectar este circuito a ADC quitar C3 si desea cero fluctúan ~ 512 o su cero será fluctuando alrededor de GND.
0 votos
@Majenko no vas a tener voltajes negativos; ese op-amp funciona con una alimentación unipolar.