¿Cómo obtengo +5v para ruido fuerte, 0v para silencio de Electret Microphone (u otros componentes)?

He estado haciendo algunas preguntas aquí para llegar a una adecuada, las preguntas iniciales que hice están vinculadas al final. Usé Fritzing para hacer algunos esquemas de mis pensamientos iniciales, pero al menos necesito ayuda con los valores de los componentes, que solo entiendo vagamente y seleccioné lo que parecen ser valores razonables o comunes.

Básicamente, tengo un Arduino que tiene 6 entradas analógicas. Utiliza un ADC de 10 bits para leer el voltaje en cualquiera de los pines analógicos, por lo que 0 = 0v, 511 = 2.5v y 1023 = 5v, y todos los valores intermedios. Hace una lectura de CC LINEAL, por lo que no estoy buscando la lógica 1-0 aquí.

Tengo esto conectado a las luces LED y quiero que respondan a la música. Lo que quiero es una resolución máxima con componentes mínimos, y creo que estoy usando DEMASIADOS componentes y haciendo que esto sea DEMASIADO complejo. Quizás los micrófonos Electret no son lo que quiero aquí, estoy abierto a otra cosa. Preferiría no usar amplificadores operacionales para conservar espacio en mi PCB.

Lo que quiero es un sensor de nivel de ruido simple. No busco reproducir el audio, ni tener claridad ni nada, pero me gustaría, lo más cerca que pueda:

  • Silencio perfecto = lo más cerca posible de 0 V CC (estable, no CA)
  • Ruido medio = alrededor de 2,5 V CC (estable, no CA)
  • Ruido fuerte = lo más cercano posible a 5 V CC (estable, no CA)

Entiendo que con un BJT lo mejor que puedo obtener será de 0.6v a 4.4v, pero esto es lo suficientemente aceptable. Lo que no es, sin embargo, es la mitad de la onda, 0,6v a 2,5v. Esto parece estar desperdiciando la mitad de mi resolución disponible sin motivo alguno. Sin embargo, si hay otras configuraciones además de un BJT que me pueden acercar a 0v-5v, estaría interesado en darles una oportunidad; siempre y cuando sean simples.

Aquí hay uno más simple, que espero que sea posible, pero requiere que la señal del electreto tenga suficiente amplitud para impulsar el circuito detector de envolvente (diodo, resistencia y capacitor) para obtener solo la mitad positiva. No creo que pueda debido a la caída hacia adelante del diodo, pero ¿quizás esto se pueda reorganizar o hacer antes del límite de salida? ¿Cuáles deberían ser los valores de las resistencias del detector de envolvente y del amplificador? ¿Se debe colocar un potenciómetro de sensibilidad en la señal, o RE, o RL, y cuál debe ser su valor? ¿Lineal o Logarítmico?

Simple

Sin embargo, tal vez la salida de electreto no pueda sobrevivir al detector de envolvente, la derivación de sensibilidad y aún así conducir un transistor NPN. Si no, aquí hay una versión más compleja. ¿Necesito ir por esta ruta? ¿Obtener la salida deseada del circuito realmente requiere todos estos componentes?

Complejo

Estas son algunas de las preguntas anteriores que hice antes de comprender mejor lo que estaba tratando de articular, para obtener más detalles. Esto es lo que 'se supone' que debe hacer el detector de envolvente, y no estoy seguro de cómo ajustarlo para la salida de electret:

Detector de sobres Diagrama de circuito

Creo que esto todavía es bastante amplio. La pregunta que deberías hacerte es "¿qué significa que un sonido sea fuerte?" La percepción humana del volumen es compleja y puede depender de la frecuencia, la duración del sonido, el estado de ánimo, el consumo de café, etc. La percepción humana del "silencio" también depende en gran medida del entorno y del ruido ambiental. Tendrá que traducir estas percepciones subjetivas en definiciones más objetivas antes de poder realizar un circuito eléctrico para medirlas.
Aquí hay algunos términos de búsqueda que ayudarán: "detector de picos" "circuito RC" "constante de tiempo" "frecuencia de esquina" "filtro de paso bajo" "dB SPL"
Tengo ese potenciómetro de sensibilidad en el diseño para dar cuenta de eso (debe ser lo suficientemente amplio para que pueda ser 'efectivamente todo silencioso' o 'siempre fuerte', y puedo sintonizar desde allí). Sin embargo, no sé si debería estar en lugar de RL, RE (controlando la ganancia o algo así), o desviando la señal. No sé de qué otra manera puedo ser más específico, ¿podría ayudar a aclarar qué más se necesita?
Aunque necesito ayuda con los valores, en este momento estoy colocando los componentes en PCB y realmente necesito saber qué poner allí (se prefiere un diseño mínimo) y puedo ajustar los valores específicos más adelante. Entonces, Parte 1 = ¿Qué componentes mínimos se requieren y Parte 2 = Cuáles son los valores de cada uno?
Creo que obtendrá una respuesta a eso si hace una pregunta bien enfocada. Esta pregunta es todavía demasiado amplia.
¿Puedes decirme en qué debo concentrarme? 1. ¿Qué componentes mínimos necesito para hacer esta tarea específica? 2. ¿Cuáles son los valores de cada componente? ¿Que mas puedo decir?
Creo que estás en el camino correcto con el detector de sobres. Si no se siente lo suficientemente cómodo con la forma en que funciona ese circuito para calcular los valores usted mismo, trataría de reducir lo que no entiende al respecto y hacer esa pregunta. Diría que limite su circuito en cuestión a unos cinco componentes y trate de concentrarse en cómo funcionan, no en los valores que necesita para lograr su objetivo. Con una buena investigación y buenas preguntas, no le llevará mucho tiempo desarrollar la base para responder estas preguntas usted mismo.
Claro, pero aquí está el truco 22: PRIMERO necesito saber cuáles son los componentes mínimos. Esa es la parte esencial de esta pregunta: ¿cuál es el conjunto mínimo de componentes posibles para realizar la tarea indicada? Una vez que sé eso, sí, eventualmente puedo obtener los valores individuales, pero no puedo llegar allí hasta que sepa si estoy complicando demasiado el diseño. Tal vez haya un IC, para esto o de una manera mejor/más simple. Ese es el enfoque de esta pregunta, y no puedo reducirlo más. (Estoy pidiendo un análisis general, no detalles).
Si cambia el voltaje de referencia del ADC del controlador a la banda prohibida de 2V56, no necesita el voltaje de salida de 0-5V. Alcanzará la resolución completa de 0 a 2,56 V. Dependiendo del controlador exacto, tiene varios voltajes de banda prohibida para usar como referencia.
Busque "rectificador activo de señal pequeña" y encuentre un circuito como techonlineindia.com/Libraries/tol/Signal3.sflb.ashx que elimina el voltaje de umbral del diodo de la ecuación.

Respuestas (3)

Aunque podrías hacer todo esto con solo un amplificador y un microcontrolador (Arduino), por lo que puedo ver, quieres la opción analógica. He intentado crear un circuito que emita el nivel de voz en el micrófono. El rango es de 0V a 4V. Sin embargo, puede actualizarlo fácilmente de 0 V a 5 V simplemente cambiando el OP-AMP. Ahora, entremos en ello;

En primer lugar, he reemplazado el amplificador de transistores con el OP-AMP. Esto es lo que se me ocurrió;

ingrese la descripción de la imagen aquí

Este es un amplificador inversor simple con una ganancia de 100. Aquí está la fórmula para calcular la ganancia;

V o tu t = R F R i norte V i norte = 100 k R i norte V i norte = 100 V i norte

Como puedes ver, U1 toma la señal de entrada, la invierte y luego la multiplica por 100. Puedes cambiar R2 o R3 y verás que la ganancia de U1 cambia. Aquí no importa la inversión de la señal de entrada, como comprenderá más adelante. Miremos la salida de este amplificador y verás que hay un gran crecimiento en la señal de entrada.

ingrese la descripción de la imagen aquí

En el gráfico anterior, verá que la salida tiene un voltaje de compensación de CC de 2,5 voltios. Eso se debe al terreno virtual que hemos utilizado. Si creamos una tierra virtual, eso significa que llevamos la tierra a otro nivel de voltaje. En este caso, lo hemos movido a 2,5 V. Con la nueva configuración, hemos creado algo que parece -2,5 V, 0 V y 2,5 V en el circuito. Para lograr esto, tuve que crear un nuevo riel de voltaje de 2.5 voltios. Dado que ese riel de voltaje no suministrará mucha energía (menos de 1 mA), es fácil de crear;

ingrese la descripción de la imagen aquí

Observe la retroalimentación negativa en el circuito anterior. Eso le dará al OP-AMP la orden de hacer V + = V . OP-AMP hará todo lo posible para lograr esta ecuación. Así, la salida será de 2,5 V, es decir, la mitad de la tensión de alimentación. Y ese es nuestro nuevo punto de partida.

Después de la amplificación, debemos poner la señal en un "detector de envolvente" o, en otras palabras, "seguidor de envolvente". Esto obtendrá el nivel de la señal, como lo desea y como se muestra en la imagen de su pregunta. Así es como se ve un seguidor de sobre básico:

ingrese la descripción de la imagen aquí

Se ve muy bien, sin embargo, observe que aquí, D3 es un diodo y cae alrededor de 0,6 V sobre sí mismo. Entonces, pierdes el voltaje. Para superar esto, vamos a utilizar lo que se llama el "super-diodo". ¡Es genial, ya que la caída de voltaje es de casi 0V! Para lograr eso, incluimos un OP-AMP con un diodo, ¡y eso es todo! El OP-AMP compensará la caída de voltaje del diodo y tendrás un diodo casi ideal;

ingrese la descripción de la imagen aquí

Dado que hay comentarios negativos en esta configuración, U5 hará todo lo posible para hacer V + = V . Por lo tanto, siempre que la entrada sea de 3 V, hará que su salida sea de 3,6 V para compensar con la caída de voltaje de 0,6 V en D3. Entonces, la salida de este superdiodo, por lo tanto, el V la entrada será igual a su voltaje de entrada V . Sin embargo, cuando el V + la entrada es negativa, D3 no permitirá que U5 haga que la salida sea negativa. También tenga en cuenta que el riel negativo para U5 es GND, que es 0 V. En cualquier caso, ya no podrá ir por debajo de 0 V. ¡Funciona como un diodo ideal!

Ahora, cambie D3 en el circuito seguidor de envolvente anterior con un superdiodo, ¡y tendrá un mejor seguidor de envolvente! Veamos nuestro resultado;

ingrese la descripción de la imagen aquí

Nos estamos acercando. Como puede ver, la salida del seguidor de envolvente, que es la línea roja, puede ir de 2,5 V a 4 V. 2,5 V es sin sonido, 4 V es de sonido fuerte y 3,25 V de sonido medio. Para escalar eso a lo que ha querido, podemos restar un voltaje de compensación de 2.5 V y escalarlo. Entonces, cuando restas 2.5 V, se convierte en; 0 V para sin sonido, 1,5 V para sonido alto y 0,75 V para sonido medio y así sucesivamente. Después de eso, si multiplicas esto por aproximadamente 3, obtendrás exactamente lo que quieres. 0 V para ningún sonido, 2,5 V para sonido medio y 5 V para sonido alto. En resumen, lo que queremos es esto;

V o tu t = ( V i norte 2.5 V ) 3

Para conseguirlo utilizaremos un amplificador diferencial o dicho de otro modo un " sustractor ".

ingrese la descripción de la imagen aquí

Cuando las resistencias, R1 = R2 y R3 = R4, la función de transferencia para el amplificador diferencial se puede simplificar a la siguiente expresión:

V o tu t = R 3 R 1 ( V 2 V 1 )

Si hace que V1 = 2,5 V y la relación R3/R1 sea 3, obtendrá la salida que desea.

Aquí está el esquema completo que hará lo que quieras:

ingrese la descripción de la imagen aquí

He usado LM324 OP-AMP aquí para fines de simulación. Eso limitará el voltaje de salida máximo a 4V. Para tener una salida de rango completo, debe usar un OP-AMP de salida de riel a riel. Yo sugeriría MCP6004 . Cambie R1 y R2 hasta que tenga el resultado deseado. Esto es lo que obtuve con la simulación:

ingrese la descripción de la imagen aquí

Ahora, al medir estos valores en ADC, no obtendrás un sentido lineal , sino que el sonido se entiende mejor logarítmico, ya que nuestros oídos escuchan de esa manera. Entonces, debes usar decibelios . Si no está familiarizado con los decibelios, aquí hay un excelente video tutorial al respecto.

Una habitación tranquila, por ejemplo, se mide en alrededor de 40 dB. Una fiesta en una habitación hará que el nivel de la habitación suba a 100 dB, o tal vez a 110 dB. En este sitio web , puede encontrar excelente información al respecto, desde donde también incrusté la imagen a continuación. Piense en los niveles de decibelios y experimente con la salida de voltaje del circuito. Luego, calcule la resolución ADC que necesitará. Probablemente, estará bien con un ADC de 12 bits.

ingrese la descripción de la imagen aquí

Esta es una respuesta fenomenal; si SE tuviera un salón de la fama, nominaría esto. ¡Gracias por ser muy preciso y explicativo! ¿Cómo está generando esas imágenes, una captura de un osciloscopio, un software de osciloscopio para PC o un algoritmo de resolución?
@Ehryk Gracias, pero estás exagerando :). Es LTSpice que uso.
@Ehryk Actualicé mi respuesta y agregué más información sobre la medición del sonido.
¡Use circuitlab para poder compartir y hacer que las personas ejecuten simulaciones de inmediato! Te daré 50 repeticiones por ello.
@Kortuk No pude simularlo correctamente ... CircuitLab Link

Parece que estás en el camino correcto. Se necesitan muchos componentes discretos para hacer este tipo de cosas. Puede que no me creas, pero el uso de amplificadores operacionales puede hacer que todo esto sea más simple y más pequeño. Estoy seguro de que puede encontrar circuitos integrados aún más específicos que hacen más de lo que necesita en un paquete más pequeño. Apuesto a que hay un IC por ahí que hace exactamente lo que necesitas. Sin embargo, aprenderá más si continúa sin ellos, aunque solo sea por valor académico.

También puede simplificar algo de esto moviendo la lógica al microprocesador. La detección de envolvente es fácil en el software y, dependiendo de la precisión que deba ser y de la sensibilidad de su micrófono, es posible que incluso se salga con la suya omitiendo el amplificador después del micrófono y colocando su salida directamente en el ADC. Esto no te dará 0V-5V, pero ¿eso importa? Puede multiplicarlo por una constante en el software. Lo que pierde es la precisión de tener disponible el rango completo de ADC, pero tal vez eso no sea tan importante como la simplicidad. Tú decides.

No dejo de creer que los amplificadores operacionales pueden hacerlo de manera más simple, estaba tratando de minimizar el espacio de PCB. Sin embargo, se está volviendo dolorosamente obvio que un dip de 8 pines LM358 será DRÁSTICAMENTE más simple. También me pregunto si un micrófono electret también es una mala elección; parece ridículo que un deseo tan simple (sensor de volumen, 0V-5V) sea absurdamente complejo.
Un electreto por sí solo da ~ 20 mV pico a pico. Con el ADC de Arduino, se trata de una diferencia de dos, desde perfectamente silencioso hasta lo más alto posible (resolución de 4,9 mV, si 511 en silencio, 513 a 509 a todo volumen). Quiero buenos rangos de sensibilidad, no "Silencio/Medio/Alto" como los únicos gradientes, y eso suponiendo que la línea sea perfectamente estable.
@Ehryk, si solo quiere mantener las cosas pequeñas, estoy seguro de que puede encontrar el LM358 (o cualquier otro amplificador operacional común) en un paquete de montaje en superficie grande como SOIC . Muy fácil de soldar a mano con buenas herramientas, y no es necesario perforar agujeros. Aparte de comprar un sensor que ya hace exactamente lo que necesita, dudo que lo haga más simple que un micrófono electret y mueva todo menos la polarización y la amplificación al microcontrolador.

En primer lugar, no necesita el arduino a menos que necesite hacer más procesamiento; todo lo que realmente quiere es un amplificador (un amplificador operacional serviría, muchos circuitos básicos en todas las gafas) para aumentar la salida del micrófono en el rango 0-5v. Si no está demasiado preocupado por la precisión (ya que esto es por diversión en lugar de una medición científica), puede usar un circuito de recorte bastante básico, canalizar la salida a un disparador schmitt o usar un LM3914 para generar una pantalla.

Se podría tener un poco más de delicadeza haciendo un circuito AGC para aumentar y disminuir automáticamente la ganancia con el nivel promedio.

Lo que sea, obtienes un gran karma positivo al deshacerte del arduino y hacerlo de forma análoga a la naturaleza;)

Editar: Es probable que también haya un montón de circuitos de "preamplificador de micrófono" en la web, probablemente un chip SOT23 de $ 0.10 para hacerlo por usted en estos días ...

El arduino está controlando una matriz de LED con 5 de sus pines PWM, y haré que parpadee diferentes letras/patrones con brillos de varias fracciones de la entrada de ruido. Entonces, se requiere el arduino, y de alguna manera necesito decirle, con buena resolución, qué tan alto es para que pueda PWM el patrón en diversos grados de brillo con la música. Realmente no sé de qué estás hablando sin un diagrama de circuito.
No se obsesione con los diagramas de circuitos, estoy describiendo circuitos que son bloques de construcción básicos, presentados en todos los libros de texto, una búsqueda rápida en Google debería mostrar circuitos básicos para varias funciones (preamplificador, AGC, clipper, etc.) así como las cosas más disco (circuitos de ecualización gráfica, controladores de pantalla, órganos de luz, etc.) que han sido el tema de la electrónica de pasatiempo desde que se inventó Disco.
El problema es que hay demasiados ejemplos, con diferentes componentes y 'características', vagamente descritos o no descritos en absoluto. Los diagramas específicos con alguna explicación sobre por qué se seleccionaron ciertos componentes y se alcanzaron los valores es lo que encuentro más útil y lo que suelo pedir en mis preguntas. Esta respuesta fue fenomenal y extremadamente útil, por ejemplo.
Estás pidiendo lego, te ofrezco un trozo de plástico y un bisturí, es solo un enfoque diferente.
... y estoy respondiendo con el hecho de que ya tengo 10 trozos de plástico y mi propio bisturí, y puedo obtener cientos más buscando. Además, pedí específicamente un lego en la pregunta, y estás diciendo 'no esperes legos'.
Su publicación original decía que quería simplificar, no especificaba los requisitos computacionales que requerirían un micro en lugar de solo un poco de acondicionamiento de señal. He señalado que es posible lograr el objetivo (vagamente) declarado de convertir el sonido en luz (interesante/entretenida) usando circuitos y técnicas analógicas, y que hacerlo probablemente resulte en una mayor apreciación de EE que resolver el problema. muerte con Arduinos.