¿Cómo conecto un micrófono electret a un microcontrolador para que el LED conectado a la salida del microcontrolador se ilumine cuando se proporciona una entrada de voz al micrófono?

MIC o Microphone es un transductor sensor de sonido , que básicamente convierte la energía del sonido en energía eléctrica, por lo que con este sensor tenemos el sonido como voltaje cambiante. Por lo general, grabamos o detectamos sonido a través de este dispositivo. Este transductor se utiliza en todos los teléfonos móviles y computadoras portátiles. Los materiales necesarios son:

  • ARDUINO UNO
  • Fuente de alimentación (5v)
  • Un micrófono de condensador
  • Transistor 2N3904 NPN,
  • Condensadores de 100 nF (2 piezas), un condensador de 100 uF.
  • 1K Ω, 1MΩ, 15KΩ Resistencia (2 piezas),
  • un LED
  • Tablero de circuitos

Hemos dividido el trabajo en cuatro partes , es decir: filtración, amplificación, conversión analógica-digital y programación para alternar el LED.

Cada vez que hay sonido, el MIC lo recoge y lo convierte en voltaje, lineal a la magnitud del sonido. Entonces, para un sonido más alto tenemos un valor más alto y para un sonido más bajo tenemos un valor más bajo. Este valor se alimenta primero al filtro de paso alto para la filtración . Luego, este valor filtrado se alimenta al transistor para amplificación y el transistor proporciona la salida amplificada en el colector. Esta señal de colector se alimenta al canal ADC0 de UNO, para la conversión de analógico a digital . Y, por último, Arduino está programado para alternar el LED , conectado al PIN 7 de PORTD, cada vez que el canal ADC A0 va más allá de un nivel particular.

1. Filtración:

En primer lugar, hablaremos brevemente sobre RC High Pass Filter, que se ha utilizado para filtrar los ruidos . Es fácil de diseñar y consta de una sola resistencia y un solo condensador. Para este circuito no necesitamos muchos detalles, por lo que lo mantendremos simple. Un filtro de paso alto permite señales de paso de alta frecuencia de entrada a salida, en otras palabras, la señal de entrada aparece en la salida si la frecuencia de la señal es mayor que la frecuencia prescrita por el filtro. Por ahora, no debemos preocuparnos por estos valores porque aquí no estamos diseñando un amplificador de audio. Se muestra un filtro de paso alto en el circuito.

Después de este filtro, la señal de voltaje se alimenta al transistor para su amplificación.

2. Amplificación:

El voltaje de MIC es muy bajo y no se puede alimentar a UNO para ADC (conversión analógica a digital), por lo que para esto diseñamos un amplificador simple usando un transistor . Aquí hemos diseñado un único amplificador de transistores para amplificar los voltajes MIC. Esta señal de voltaje amplificada se alimenta al canal ADC0 de Arduino.

3. Conversión analógica a digital:

ARDUINO tiene 6 canales ADC . Entre ellos, uno o todos ellos pueden usarse como entradas para voltaje analógico. El UNO ADC tiene una resolución de 10 bits (por lo que los valores enteros de (0- (2 ^ 10) 1023)). Esto significa que asignará los voltajes de entrada entre 0 y 5 voltios en valores enteros entre 0 y 1023. Entonces, para cada (5/1024 = 4.9mV) por unidad.

Ahora, para que UNO convierta la señal analógica en señal digital, necesitamos usar ADC de Arduino, con la ayuda de las siguientes funciones:

  1. analogRead (pin);
 2. analogReference ();

Los canales UNO ADC tienen un valor de referencia predeterminado de 5V . Esto significa que podemos dar un voltaje de entrada máximo de 5V para la conversión de ADC en cualquier canal de entrada. Dado que algunos sensores proporcionan voltajes de 0-2.5V, entonces con una referencia de 5V, obtenemos una menor precisión, por lo que tenemos una instrucción que nos permite cambiar este valor de referencia. Entonces, para cambiar el valor de referencia tenemos “analogReference ();”

En nuestro circuito , hemos dejado este voltaje de referencia por defecto, para que podamos leer el valor del canal 0 del ADC, llamando directamente a la función “analogRead (pin);”, aquí “pin” representa el pin donde conectamos la señal analógica, en en este caso sería “A0”. El valor de ADC puede tomarse en un entero como “int sensorValue = analogRead (A0); “, Mediante esta instrucción, el valor del ADC se almacena en el entero” sensorValue “. Ahora, tenemos el valor del transistor en forma digital, en la memoria de UNO.

4. Programe Arduino para alternar el LED en cada aplauso:

En casos normales, el MIC proporciona señales normales y, por lo tanto, tenemos valores digitales normales en la UNO, pero al aplaudir allí un pico proporcionado por el MIC, con esto tenemos un valor digital pico en la UNO, podemos programar la UNO para alternar un LED encendido y apagado siempre que haya un pico. Entonces, en el primer aplauso, el LED se enciende y permanece encendido. En el segundo aplauso, el LED se apaga y permanece apagado hasta el siguiente aplauso. Con esto tenemos el circuito de badajo. Verifique el código del programa a continuación.

  // ------------------------------------------------ ---------------------
 // Programa: interruptor de aplauso
 //
 // Descripción: enciende un LED cuando se aplauden las manos.
 // Micrófono Electret conectado a A2, LED y serie
 // resistencia conectada al pin digital
 // ------------------------------------------------ ---------------------
 configuración nula () {
   Serial.begin (9600);  // usando el puerto serie para verificar el valor analógico
   pinMode (2, SALIDA);  // LED en pin digital 2
 }

 bucle vacío () {
   int analog_val;  // valor analógico leído de A2
   static bool led_state = false;  // estado actual del LED
  
   analog_val = analogRead (A2);

   if (analog_val> 10) {// umbral de activación
     // alternar LED
     if (led_state) {
       led_state = false;  // LED encendido, ahora apagado
       digitalWrite (2, BAJO);
       Serial.println (analog_val);  // imprime valor analógico para propósitos de depuración
     }
     más {
       led_state = true;
       digitalWrite (2, ALTO);  // LED apagado, ahora encendido
       Serial.println (analog_val);
     }
     retraso (50);  // espera a que disminuya el ruido de aplausos
   }
 }

Un micrófono electret tiene una impedancia de salida increíblemente alta. ¿Su microcontrolador tiene una entrada analógica con una impedancia igualmente alta? Si es así, puede conectarlos directamente y luego, en el microcódigo, leer el voltaje A / D. Serán varios milivoltios. Si desea activar sonidos muy suaves, necesita una etapa de amplificador de alta impedancia. El más simple es una unión FET y tres resistencias. Aquí hay uno típico:

Preamplificador de guitarra FET discreto

Probablemente podría pasar con un Darlington en una configuración de colector abierto a una entrada programada para tener la resistencia pull-up en su lugar. Al menos con una entrada analógica. Si eso falla, un amplificador operacional con el pin conectado a un divisor de voltaje a un voltaje suficientemente bajo debería ser suficiente. Por supuesto, la entrada solo estará activada la mitad del tiempo, por lo que necesitaría algún tipo de rebote al sondear con demoras en el software.

La forma más fácil es usar un amplificador basado en amplificador operacional. Es mucho más fácil que construir uno con un circuito discreto basado en transistores.

More Interesting

¿Debería la mayoría de los sistemas embebidos del consumidor tener un botón de reinicio completo?

¿Cuál es la ventaja de usar Linux para sistemas integrados como un controlador ARM sobre la programación básica?

¿Qué tipo de conocimiento necesito para crear este dispositivo integrado?

¿Existe una plataforma en línea para sistemas integrados, donde puedo acceder a las placas de desarrollo de forma remota?

Cuál es una mejor opción: el trabajo actual en el que estoy trabajando con un marco .Net que me paga bastante bien o un trabajo de programación integrado donde podría trabajar con C que me pagaría menos que mi trabajo actual.

¿Cómo se puede identificar el microcontrolador original vendido por un distribuidor?

¿Cuál es el mejor instituto de formación para empotrados y IOT en Jaipur?

En el 8051 microcontrolador, 2 ciclos de máquina significa ¿cuántos pulsos de reloj?

¿Qué tipos de microcontroladores se utilizan en todo el mundo y por qué?

¿Cuál es una buena declaración de problema para un proyecto en el dominio de sistemas integrados?

¿Debería conocer a Arduino y Raspberry Pi para hacer carrera en un sistema embebido?

¿Cuál es la diferencia entre una imagen de arranque, un núcleo y firmware?

¿Cuál es la diferencia entre la placa de desarrollo 8051 y el programador ISP USB 8051?

Soy lento en el pensamiento lógico, ¿es conveniente para mí considerar los sistemas integrados y la programación en sistemas integrados como una opción profesional?

¿Son útiles los proyectos de código abierto para los estudiantes de ECE, especialmente para VLSI o sistemas integrados?