Conexión del módulo amplificador de micrófono MAX4466 a Arduino

En este artículo, te mostraremos cómo conectar el módulo amplificador de micrófono MAX4466 a tu Arduino. Este dispositivo te permitirá mejorar la calidad de audio de tus proyectos y aplicaciones con micrófono, amplificando la señal de entrada. Sigue leyendo para descubrir paso a paso cómo realizar esta conexión y sacar el máximo provecho de este útil componente.

Agregue un oído a su proyecto con el módulo amplificador de micrófono MAX4466.

Es un módulo bien diseñado con voltaje de suministro flexible y ganancia ajustable, lo que lo hace adecuado para una amplia gama de aplicaciones de audio. Este módulo es particularmente adecuado para proyectos como cambiadores de voz en tiempo real, grabación/muestreo de audio y proyectos reactivos de audio que utilizan algoritmos de Transformada Rápida de Fourier (FFT).

¿Sabes cómo funcionan los micrófonos electret?

Dentro del micrófono hay una membrana delgada y una placa trasera. Juntos forman un condensador.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Cuando hablas por el micrófono, las ondas sonoras generadas por tu voz golpean el diafragma y lo hacen vibrar.

A medida que la membrana vibra, se acerca o se aleja de la placa posterior. Este movimiento cambia la capacidad entre ellos. Este cambio de capacitancia crea un voltaje entre las placas, que podemos medir para determinar la amplitud del sonido.

Descripción general del hardware

El corazón del módulo es un amplificador operacional de micropotencia, el Maxim MAX4466, que fue diseñado específicamente para su uso como amplificador de micrófono. Debido a su alto rechazo de modo común y su excelente relación de rechazo de fuente de alimentación, el MAX4466 es una excelente opción para entornos ruidosos. Por lo tanto, este amplificador ofrece una calidad de sonido excepcional, libre de silbidos o rayones que son comunes en otros amplificadores de micrófono.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

El módulo también incluye un micrófono electret capaz de detectar ondas sonoras en el rango de 20 Hz a 20 kHz, así como los circuitos auxiliares necesarios para controlar el MAX4466.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Además, el módulo contiene perlas de ferrita SMD conectadas en serie con los rieles de alimentación. Estas perlas desempeñan un papel crucial en la supresión de las emisiones electromagnéticas; bloquean el ruido de baja frecuencia y absorben el ruido de alta frecuencia, mejorando aún más la tasa de rechazo del modo común.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Hay un pequeño potenciómetro de ajuste en la parte posterior del módulo que se puede usar para ajustar la ganancia. La ganancia determina cuánto amplifica el módulo la señal de sonido. Girar el potenciómetro en el sentido contrario a las agujas del reloj (CCW) aumenta la ganancia, mientras que girarlo en el sentido de las agujas del reloj (CW) disminuye la ganancia.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

La ganancia se puede ajustar entre 25x y 125x. La configuración más baja amplifica a alrededor de 200 mVpp (adecuada para un volumen de conversación normal a unos 15 cm de distancia), ideal para conectarse a dispositivos que esperan una entrada de «nivel de línea» sin saturación. En el extremo superior se puede amplificar hasta aproximadamente 1 Vpp, lo que es ideal para leer desde el ADC de un microcontrolador. Vale la pena señalar que la salida es de riel a riel, lo que significa que la salida puede alcanzar hasta 5 Vpp con un volumen suficientemente alto.

Usar el módulo es sencillo: conecte el pin GND a tierra y el pin VCC a 2,4-5 VCC. La forma de onda de audio proviene del pin OUT, que se puede conectar directamente al pin ADC del microcontrolador. Tenga en cuenta que la salida tiene una polarización de CC de VCC/2, por lo que el voltaje permanece constante en un nivel de VCC/2 en reposo absoluto.

Configuración de pines del módulo MAX4466

El módulo tiene tres pines.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

VCC es el pin de fuente de alimentación que acepta voltaje CC de 2,4 V a 5,5 V.

Dimensiones es el pin de tierra.

FUERA DE es el pin de salida analógica que proporciona la señal de audio amplificada. Tenga en cuenta que la salida tiene una polarización de CC de VCC/2, por lo que el voltaje permanece constante en un nivel de VCC/2 en reposo absoluto.

Cableado de un módulo MAX4466 a un Arduino

El cableado es relativamente sencillo. Todo lo que necesitas hacer es conectar tres cables: dos de alimentación y uno de salida.

El VCC del módulo MAX4466 puede estar entre 2,4 y 5 VDC. Para un rendimiento óptimo, se recomienda utilizar el pin de 3,3 V, ya que proporciona el suministro «más silencioso» al Arduino. Por lo tanto, suministre 3,3 V al sensor y conecte tierra a tierra. Luego conecte la salida a un pin de entrada analógica. En este ejemplo utilizamos el pin A0.

La siguiente tabla enumera las asignaciones de pines:

Módulo MAX4466 arduino
VCC 3,3 V
Dimensiones Dimensiones
FUERA DE A0

El cableado se muestra en la siguiente imagen.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Código de ejemplo de Arduino: medición de niveles de sonido

La salida del amplificador MAX4466 es simplemente un voltaje variable. Para medir los niveles de sonido, necesitamos realizar varias mediciones para determinar los valores mínimo y máximo o, en términos técnicos, la “amplitud pico a pico” de la señal.

En el código de ejemplo siguiente, elegimos una ventana de muestreo de 50 milisegundos. Esta duración es suficiente para medir niveles de sonido en frecuencias de hasta 20 Hz, que es la frecuencia más baja que los humanos pueden oír. Después de encontrar las muestras mínima y máxima, calculamos la diferencia (para obtener la amplitud pico a pico del sonido) y la convertimos a voltios. Luego, la salida se imprime en el monitor serie.

const int sampleWindow = 50;  // Sample window width in mS (50 mS = 20Hz)
int const AMP_PIN = A0;       // Preamp output pin connected to A0
unsigned int sample;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  unsigned long startMillis = millis(); // Start of sample window
  unsigned int peakToPeak = 0;   // peak-to-peak level

  unsigned int signalMax = 0;
  unsigned int signalMin = 1024;

  // collect data for 50 mS and then plot data
  while (millis() - startMillis < sampleWindow)
  {
    sample = analogRead(AMP_PIN);
    if (sample < 1024)  // toss out spurious readings
    {
      if (sample > signalMax)
      {
        signalMax = sample;  // save just the max levels
      }
      else if (sample < signalMin)
      {
        signalMin = sample;  // save just the min levels
      }
    }
  }
  peakToPeak = signalMax - signalMin;  // max - min = peak-peak amplitude
  Serial.println(peakToPeak);
  //double volts = (peakToPeak * 5.0) / 1024;  // convert to volts
  //Serial.println(volts);
}

Después de cargar el boceto, abra el monitor serie y establezca la velocidad en baudios en 9600. Ahora intenta chasquear los dedos cerca del sensor. Notarás un cambio en las lecturas.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Los datos seriales pueden ser difíciles de visualizar si solo nos fijamos en los valores. Si está utilizando Arduino IDE v1.6.6+, existe una opción para mostrar los datos en un gráfico Trazador serie Arduino.

En el IDE de Arduino, seleccione Herramientas > Trazador en serieSi chasquea los dedos cerca del sensor, debería observar una forma de onda similar a la imagen a continuación.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Explicación del código:

El código comienza definiendo algunas constantes y variables.

Primero, una constante llamada sampleWindow que establece el ancho de la ventana de muestra en milisegundos. Está ajustado a 50, que corresponde a 20 Hz. La siguiente es otra constante AMP_PIN el cual representa el pin analógico A0 al que está conectada la salida del módulo MAX4466. Una variable entera sin signo llamada sample también está definido para almacenar los valores que provienen del AMP_PIN.

const int sampleWindow = 50;  // Sample window width in mS (50 mS = 20Hz)
int const AMP_PIN = A0;       // Preamp output pin connected to A0
unsigned int sample;

En setup() el monitor serie se inicializa con fines de depuración.

void setup() {
  Serial.begin(9600);
}

Al comienzo de la función loop(), la hora actual (en milisegundos desde que se inició Arduino) se almacena en la variable startMillis.

unsigned long startMillis= millis();

Entonces las variables peakToPeak, signalMaxY signalMin están inicializados. peakToPeak contiene la diferencia entre los valores máximo y mínimo leídos por el micrófono y representa la amplitud del sonido. signalMax Y signalMin se utilizan para almacenar los valores más alto y más bajo leídos desde el micrófono durante la ventana de muestreo.

unsigned int peakToPeak = 0;
unsigned int signalMax = 0;
unsigned int signalMin = 1024;

El while El bucle se ejecuta mientras la diferencia entre la hora actual y startMillis es menos que sampleWindow (en este caso 50 milisegundos). Este bucle se utiliza para leer la salida del micrófono y encontrar los valores más altos y más bajos durante ese período de tiempo. El voltaje aumenta dentro del circuito. AMP_PIN se lee con analogRead() y almacenado en el sample Variable. Si la muestra es válida (y no falsa) y mayor que signalMaxlo actualiza signalMax; si la muestra es menor que signalMinlo actualicé signalMin.

while (millis() - startMillis < sampleWindow)
{
  sample = analogRead(AMP_PIN);
  if (sample < 1024)  // toss out spurious readings
  {
    if (sample > signalMax)
    {
      signalMax = sample;  // save just the max levels
    }
    else if (sample < signalMin)
    {
      signalMin = sample;  // save just the min levels
    }
  }
}

Una vez finalizada la ventana de muestreo, la diferencia entre signalMax Y signalMin se calcula para obtener la amplitud pico a pico del sonido. Este valor se almacena en peakToPeak.

peakToPeak = signalMax - signalMin;

El peakToPeak Luego, el valor se imprime en el monitor serie.

Serial.println(peakToPeak);

Las líneas comentadas al final del código convierten la amplitud pico a pico del sonido a voltios. Esto puede resultar útil si desea ver el gráfico de voltaje de la amplitud.

//double volts = (peakToPeak * 5.0) / 1024;  // convert to volts
//Serial.println(volts);

Proyecto Arduino: medidor de nivel de sonido desplazable

Vale, eso no fue muy emocionante. Ahora tomemos la medición pico a pico y usémosla para controlar una matriz LED basada en MAX7219 para mostrar el nivel de sonido. Para hacerlo más interesante, desplazamos la pantalla para graficar las últimas 8 mediciones en tiempo real.

Si no está familiarizado con la pantalla de matriz de puntos LED MAX7219, puede leer el siguiente tutorial.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino
Conexión de la pantalla de matriz de puntos LED MAX7219 a Arduino
Las pantallas matriciales son algo que todo entusiasta de Arduino encontrará en algún momento. Estas pantallas son tan populares que casi todas las pantallas LED modernas para exteriores…

Conexión del hardware

La siguiente imagen muestra cómo se construye el circuito.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Las siguientes tablas enumeran las asignaciones de pines:

Módulo MAX4466 arduino
VCC 3,3 V
Dimensiones Dimensiones
FUERA DE A0
Módulo MAX7219 arduino
VCC 5V
Dimensiones Dimensiones
RUIDO 11
CS/CARGAR 10
CLK 13

Instalación de la biblioteca LedControl

Para trabajar con el chip MAX7219, necesita utilizar una biblioteca. Biblioteca LedControl de Eberhard Fahle es una biblioteca excelente. Esta biblioteca proporciona un conjunto estándar de funciones para controlar cada LED individualmente, lo que será extremadamente útil para este proyecto.

Para instalar la biblioteca, navegue hasta Bosquejo > Incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Filtra tu búsqueda ingresando 'controles LED'. Buscar controles LED de Eberhard Fahle. Haga clic en esta entrada y luego seleccione Instalar.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Sube el código

Copie y pegue el siguiente código en el IDE de Arduino y cárguelo.

#include "LedControl.h"

int displayCnt = 1;  // # of displays connected (between 1-8)
int intensity = 1;   // Brightness of displays (between 0-15)

LedControl lc = LedControl(11, 13, 10, displayCnt);  // Pins: DIN, CLK, CS, # of Displays

const int maxScale = 8;
const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
unsigned int sample;

byte columnData[8] = {0, 0, 0, 0, 0, 0, 0, 0};  // To store the 8 column data

void setup() {
  for (int idx = 0; idx < displayCnt; idx++) {
    lc.shutdown(idx, false);  // Wake up displays
    lc.setIntensity(idx, intensity);  // Set intensity levels
    lc.clearDisplay(idx);  // Clear Displays
  }
}

void loop() {
  unsigned long startMillis = millis();
  unsigned int peakToPeak = 0;
  unsigned int signalMax = 0;
  unsigned int signalMin = 1024;

  while (millis() - startMillis < sampleWindow) {
    sample = analogRead(0);
    if (sample < 1024) {
      if (sample > signalMax) {
        signalMax = sample;
      } else if (sample < signalMin) {
        signalMin = sample;
      }
    }
  }
  peakToPeak = signalMax - signalMin;
  int displayPeak = map(peakToPeak, 0, 512, 0, maxScale);

  // Shift column data in the array
  for (int i = 0; i < 7; i++) {
    columnData[i] = columnData[i + 1];
  }

  // Create new measurement column
  byte newData = 0;
  for (int i = 0; i < displayPeak; i++) {
    newData |= (1 << i);
  }
  columnData[7] = newData;

  // Update the display
  for (int col = 0; col < 8; col++) {
    lc.setColumn(0, col, columnData[col]);
  }

  delay(100);

demostración

Ahora intenta hablar con voz normal desde una distancia de unos 15 a 20 centímetros del micrófono. Ahora debería ver que la pantalla de matriz del sonómetro comienza a desplazarse.

Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded





Conexión del módulo amplificador de micrófono MAX4466 a Arduino

Añade un oído a tu proyecto con el módulo amplificador de micrófono MAX4466

El módulo MAX4466 es un dispositivo bien diseñado con voltaje de alimentación flexible y ganancia ajustable, lo que lo hace adecuado para una amplia gama de aplicaciones de audio. Este módulo es especialmente adecuado para proyectos como cambiadores de voz en tiempo real, grabación / muestreo de audio y proyectos reactivos al audio que utilizan algoritmos de Transformada Rápida de Fourier (FFT).

¿Cómo funcionan los micrófonos electret?

En el interior de un micrófono, hay un diafragma delgado y una placa posterior. Juntos, forman un condensador. Cuando hablas en el micrófono, las ondas sonoras producidas por tu voz golpean el diafragma, haciéndolo vibrar. A medida que el diafragma vibra, se mueve más cerca o más lejos de la placa posterior. Este movimiento modifica la capacitancia entre ellos. Este cambio en la capacitancia produce un voltaje a través de las placas, que podemos medir para determinar la amplitud del sonido.

Descripción del hardware

En el núcleo del módulo se encuentra un amplificador operacional de micropotencia, el Maxim MAX4466, diseñado específicamente para su uso como amplificador de micrófono. Debido a su alta rechazo de modo común y su excepcional relación de rechazo de la fuente de alimentación, el MAX4466 es una excelente opción para entornos ruidosos. Como resultado, este amplificador ofrece una calidad de sonido excepcional, libre del ruido o chirridos que a menudo se encuentran en otros módulos amplificadores de micrófono.

  1. Suprime las emisiones electromagnéticas
  2. Módulo con micrófono electret
  3. Potenciómetro de ajuste de ganancia

Pinout del módulo MAX4466

El módulo consta de tres pines:

  1. VCC: Pin de alimentación que acepta voltaje de CC de 2,4V a 5,5V
  2. GND: Pin de tierra
  3. OUT: Pin de salida analógica que entrega la señal de sonido amplificada

Conexión de un módulo MAX4466 a un Arduino

La conexión es relativamente sencilla. Solo hay tres cables para conectar: dos para la alimentación y uno para la salida.

  1. VCC del módulo MAX4466 se puede variar entre 2,4-5VDC
  2. Conectar la salida a un pin de entrada analógica

Ejemplo de código Arduino: Medición del nivel de sonido

El código proporcionado en este artículo te permitirá medir el nivel de sonido y visualizarlo en el monitor serie de Arduino. Se muestra cómo realizar esta medición de manera efectiva.

Proyecto de Arduino: Medidor de nivel de sonido

Este proyecto te permite visualizar el nivel de sonido en una matriz LED controlada por un MAX7219. Descubre cómo implementar este proyecto y agregar una función interactiva a tu dispositivo.


5 comentarios en «Conexión del módulo amplificador de micrófono MAX4466 a Arduino»

  1. ¡Genial tutorial para aprender a conectar y usar el módulo amplificador de micrófono MAX4466 con Arduino! Me encanta la claridad y la sencillez de las instrucciones. ¡Excelente trabajo! ¡Gracias por la ayuda!

  2. ¡Vaya! Me parece super útil y práctico este tutorial para conectar el módulo amplificador de micrófono MAX4466 a Arduino. Definitivamente voy a probarlo en mis próximos proyectos. ¡Gracias por la información detallada y fácil de entender! ¡Sigan así!

Deja un comentario