12 votos

¿Cómo consigo +5v para el ruido fuerte, 0v para el silencio del Micrófono Electret (u otros componentes)?

He estado haciendo algunas preguntas aquí para llegar a una adecuada, las preguntas iniciales que hice están vinculadas al final. Utilicé a Fritzing para hacer algunos esquemas de mis pensamientos iniciales, pero al menos necesito ayuda con los valores de los componentes, que sólo entiendo vagamente y elegí 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, así que 0 = 0v, 511 = 2.5v, y 1023 = 5v, y todos los valores intermedios. Hace una lectura de C.C. LINEAL, así que no estoy buscando la lógica 1-0 aquí.

Tengo esto enganchado a las luces LED, y quiero que respondan a la música. Lo que quiero es la máxima resolución con el mínimo de componentes, y creo que estoy usando demasiados componentes y haciendo este camino demasiado complejo. Tal vez los micrófonos Electret no son lo que quiero aquí, estoy abierto a otra cosa. Preferiría no usar amplificadores para conservar espacio en mi PCB.

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

  • Silencio perfecto = lo más cercano posible a 0v DC (estable, no AC)
  • Ruido medio = Alrededor de 2.5v DC (estable, no AC)
  • Ruido Fuerte = lo más cercano posible a 5v DC (estable, no AC)

Entiendo con un BJT que lo mejor que puedo conseguir será de 0.6v a 4.4v, pero esto es bastante 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 ninguna razón. Sin embargo, si hay otras configuraciones que no sean un BJT que me puedan acercar a 0v-5v, me interesaría darles una oportunidad; siempre y cuando sean simples.

Aquí hay una más simple, que espero que sea posible, pero requiere que la señal de electreto tenga suficiente amplitud para impulsar el circuito detector de envolvente (diodo, resistencia y condensador) para obtener sólo la mitad positiva. No creo que pueda debido a la caída del diodo hacia adelante, pero tal vez esto puede ser reorganizado o hecho antes de la tapa de salida? ¿Cuáles deberían ser los valores del detector de envolvente y de las resistencias del amplificador? ¿Debería colocarse un potenciómetro de sensibilidad en la señal, o RE, o RL, y cuál debería ser su valor? ¿Lineal o logarítmico?

Simple

Sin embargo, tal vez la salida del electreto no pueda sobrevivir al detector de envoltura, a 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?

Complex

Aquí están algunas de las preguntas que hice antes de entender mejor lo que estaba tratando de articular, para más detalles. Esto es lo que el detector de envoltura "se supone" que debe hacer, y no estoy seguro de cómo ajustarlo para la salida de electreto:

Envelope Detector Circuit Diagram

7voto

Kip Diskin Puntos 11

Parece que estás en el camino correcto. Es hace se necesitan muchos componentes discretos para hacer este tipo de cosas. Puede que no me creas, pero el uso de los amplificadores de operaciones puede hacer todo esto más simple y más pequeño. Estoy seguro de que puedes encontrar ICs más específicos que hacen más de lo que necesitas en un paquete más pequeño. Apuesto a que hay un CI por ahí que hace exactamente lo que necesitas. Sin embargo, aprenderás más si procedes sin ellos, aunque sólo sea por el valor académico.

También puedes hacer algo de esto más simple moviendo la lógica en el microprocesador. La detección de envolventes es fácil en el software, y dependiendo de la precisión que necesites y de la sensibilidad de tu micrófono, podrías incluso omitir el amplificador después del micrófono y poner su salida directamente en el ADC. Esto no te dará 0V-5V, pero ¿eso importa? Puedes multiplicarlo por una constante en el software. Lo que pierdes es la precisión de tener todo el rango del CAD disponible, pero tal vez eso no sea tan importante como la simplicidad. Tú decides.

4voto

Mario Puntos 191

En primer lugar, no necesitas el arduino a menos que necesites hacer más procesamiento - todo lo que realmente quieres es un amplificador (un op-amp lo haría, un montón de circuitos básicos por todos los googles) para aumentar la salida del micrófono en el rango de 0-5v. Si no te preocupa demasiado la precisión (ya que en esto es más bien una diversión que una medición científica) puedes utilizar un circuito de recorte bastante básico, canalizar la salida hacia un disparador schmitt o utilizar un LM3914 para generar una pantalla.

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

Lo que sea, obtienes un gran karma positivo abandonando el arduino y haciéndolo análogo a lo que la naturaleza pretendía ;)

Edición: Lo más probable es que también haya montones de circuitos de "preamplificador de micrófono" en la web, probablemente un chip SOT23 de 0,10 dólares para hacerlo por ti estos días...

3voto

Christian Berg Puntos 7039

Aunque se podría hacer todo esto con sólo un amplificador y un microcontrolador (Arduino), por lo que puedo ver, quieres la opción analógica. He tratado de crear un circuito que da salida al nivel de voz en el micrófono. El rango es de 0V a 4V. Sin embargo, puedes aumentarlo fácilmente de 0V a 5V con sólo cambiar el OP-AMP. Ahora, vamos a entrar en ello;

En primer lugar, he sustituido el amplificador del transistor por el OP-AMP. Esto es lo que se me ocurrió;

enter image description here

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

$$ V_{out}=- \dfrac {R_f}{R_{in}}*V_{in} = - \dfrac {100k}{R_{in}}*V_{in} = -100*Vin $$

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. La inversión de la señal de entrada no importa aquí, como comprenderás más adelante. Veamos la salida de este amplificador, y verás que hay un gran crecimiento en la señal de entrada.

enter image description here

En el gráfico de arriba, verás que la salida tiene un voltaje de compensación de CC de 2,5 voltios. Eso es debido a la tierra 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 que -2,5 V, 0 V, y 2,5 V al circuito. Para lograrlo, tuve que crear un nuevo riel de voltaje de 2,5 voltios. Dado que ese carril de voltaje no suministrará mucha energía, (menos de 1 mA), es fácil de crear;

enter image description here

Fíjese en la retroalimentación negativa en el circuito anterior. Eso le dará a la OP-AMP la orden de hacer \$V+=V-\$ . La OP-AMP hará todo lo posible para lograr esta ecuación. Así, la salida será de 2,5 V, o en otras palabras, la mitad del voltaje de suministro. Y ese es nuestro nuevo punto de tierra.

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

enter image description here

Todo se ve muy bien, sin embargo, noten que aquí, D3 es un diodo y cae cerca de 0,6 V sobre sí mismo. Por lo tanto, se pierde el voltaje. Para superar esto, vamos a utilizar lo que se llama el "super-diodo". Es súper, 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;

enter image description here

Ya que hay una retroalimentación negativa en esta configuración, U5 hará todo lo posible para hacer \$V+=V-\$ . Así que, cuando la entrada sea de 3V, hará que su salida sea de 3,6V para compensar la caída de voltaje de 0,6V en D3. Por lo tanto, 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 la salida negativa. También hay que tener en cuenta que el carril negativo para U5 es GND, que es 0 V. No podrá ir por debajo de 0 V en ningún caso, ya. ¡Funciona como un diodo ideal!

Ahora, cambia el D3 en el circuito de seguimiento de la envolvente anterior con un superdiodo, ¡y tendrás un mejor seguimiento de la envolvente! Veamos nuestro resultado;

enter image description here

Nos estamos acercando. Como pueden ver, la salida del seguidor de la 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 alto y 3,25 V para sonido medio. Para escalar eso a lo que usted ha querido, podemos restar 2,5 V de tensión de compensación y escalarlo. Así, cuando restamos 2,5 V, se convierte en: 0 V para el sonido nulo, 1,5 V para el sonido fuerte y 0,75 V para el sonido medio y así sucesivamente. Después de eso, si lo multiplicas por 3, obtendrás lo que quieres exactamente. 0 V para no sonido, 2,5 V para sonido medio y 5 V para sonido alto. Para recapitular, lo que queremos es esto;

\$V_{out}=(V_{in} - 2.5V) * 3 \$

Para ello utilizaremos un amplificador diferencial o, en otras palabras, un " sustractor ".

enter image description here

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

$$V_{out}= \dfrac {R_3}{R_1}*(V2-V1)$$

Si haces V1= 2.5V y R3/R1 proporción 3, entonces obtendrás la salida que deseas.

Aquí está el esquema completo que hará lo que usted quiera:

enter image description here

He usado el LM324 OP-AMP aquí con fines de simulación. Eso limitará el máximo voltaje de salida a 4V. Para tener una salida de rango completo, debería usar una salida OP-AMP 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:

enter image description here

Ahora, cuando se midan estos valores en el CAD, no se obtendrá un sentido lineal en cambio el sonido se entiende mejor logarítmicamente, ya que nuestros oídos oyen de esa manera. Por lo tanto, deberías usar decibeles . Si no estás familiarizado con los decibelios, aquí es un gran video tutorial sobre ello.

Una habitación silenciosa, por ejemplo, se mide en unos 40 dB. Una fiesta en una habitación hará que el nivel de la habitación suba hasta 100 dB, o quizás 110 dB. En este sitio web e, puedes encontrar gran información sobre ello, de donde también he incrustado la imagen de abajo. Piensa en los niveles de decibelios y experimenta con la salida de voltaje del circuito. Luego, calcula la resolución del CAD que necesitarás. Probablemente, estarás bien con un ADC de 12 bits.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X