SKU: OT6767 Número de artículo: AH131 EAN: 8720828223857
Enriquezca sus proyectos tecnológicos con nuestro avanzado módulo de micrófono MEMS omnidireccional, equipado con el chip INMP441. Este módulo ha sido desarrollado para ofrecer un rendimiento de audio de alta calidad, compatible con una amplia gama de microcontroladores y placas de desarrollo que funcionan a 3.3V, como ESP8266, ESP32 e incluso Raspberry Pi. Esto lo convierte en una opción versátil para aplicaciones que van desde dispositivos inteligentes y análisis de sonido hasta proyectos de arte interactivo.
Especificaciones técnicas:
Pinout:
Contenido del paquete:
Este módulo de micrófono no solo es adecuado para aficionados y makers, sino también para profesionales que buscan una solución fiable para proyectos de audio avanzados. Admite una amplia gama de aplicaciones y es compatible con plataformas de desarrollo populares como ESP8266, ESP32 y Raspberry Pi, lo que lo convierte en una excelente opción para cualquiera que desee enriquecer sus proyectos con audio de alta calidad.
Este módulo de micrófono MEMS omnidireccional con chip INMP441 es adecuado para una amplia gama de aplicaciones, entre ellas:
Así conectas el Micrófono omnidireccional INMP441 MEMS 3.3V a un Arduino UNO o ESP32, con un sketch de ejemplo que puedes subir directamente.
Este proyecto conecta un micrófono omnidireccional digital I2S INMP441 a un Arduino Uno. El Uno genera en software las señales I2S de bit clock (SCK) y word select (WS) para leer muestras de audio de 24-bit desde la línea SD. Abre el Monitor Serie o el Serial Plotter a 115200 baud para ver cómo fluctúan los niveles de sonido en tiempo real.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : INMP441 I2S Microphone with Arduino Uno
* Board : Arduino UNO (arduino:avr:uno)
* Parts : INMP441 microphone
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
// INMP441 I2S Microphone demonstration on Arduino Uno
const int PIN_SCK = 2; // Serial Clock (SCK)
const int PIN_WS = 3; // Word Select / LRCLK (WS)
const int PIN_SD = 4; // Serial Data (SD)
void setup() {
Serial.begin(115200);
pinMode(PIN_SCK, OUTPUT);
pinMode(PIN_WS, OUTPUT);
pinMode(PIN_SD, INPUT);
digitalWrite(PIN_SCK, LOW);
digitalWrite(PIN_WS, LOW);
Serial.println(F("INMP441 Microphone Demo Initialized."));
Serial.println(F("Speak or make noise near the microphone."));
}
// Bit-bang 32 clock pulses per channel and sample 24-bit audio
int32_t readI2SSample() {
int32_t sample = 0;
// Select Left Channel
digitalWrite(PIN_WS, LOW);
// I2S standard has 1-bit delay before MSB
for (int bit = 0; bit < 32; bit++) {
digitalWrite(PIN_SCK, HIGH);
digitalWrite(PIN_SCK, LOW);
if (bit > 0 && bit <= 24) {
sample = (sample << 1) | digitalRead(PIN_SD);
}
}
// Select Right Channel to complete stereo frame
digitalWrite(PIN_WS, HIGH);
for (int bit = 0; bit < 32; bit++) {
digitalWrite(PIN_SCK, HIGH);
digitalWrite(PIN_SCK, LOW);
}
// Sign-extend 24-bit to 32-bit signed integer
if (sample & 0x00800000) {
sample |= 0xFF000000;
}
return sample;
}
void loop() {
int32_t rawSample = readI2SSample();
int32_t magnitude = abs(rawSample);
Serial.print(F("Raw: "));
Serial.print(rawSample);
Serial.print(F("\tMagnitude: "));
Serial.println(magnitude);
delay(20);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online
Lee audio digital del micrófono I2S omnidireccional INMP441 y calcula niveles de volumen en tiempo real. Abre el Serial Monitor o Serial Plotter a 115200 baud para visualizar el sonido ambiental y la amplitud de la voz.
/*
* ==================================================================
* Generated by Codey.online — https://www.codey.online
* ==================================================================
* Project : INMP441 I2S Sound Level Meter
* Board : ESP32 DEVKIT V1 (esp32:esp32:esp32doit-devkit-v1)
* Parts : INMP441 microphone
* Libraries : none (built-in)
*
* Codey Online is an AI-powered browser IDE for Arduino and ESP32.
* Describe your project and Codey writes the code, draws the wiring
* diagram and uploads it to your board, straight from the browser.
* This code is free to use, modify and share, without warranty.
* ==================================================================
*/
#include <driver/i2s.h>
#define I2S_WS 15
#define I2S_SD 32
#define I2S_SCK 14
#define I2S_PORT I2S_NUM_0
#define BUFFER_LEN 64
int32_t samples[BUFFER_LEN];
void setup() {
Serial.begin(115200);
const i2s_config_t i2s_config = {
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),
.sample_rate = 16000,
.bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT,
.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,
.communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S),
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,
.dma_buf_count = 4,
.dma_buf_len = BUFFER_LEN,
.use_apll = false
};
const i2s_pin_config_t pin_config = {
.bck_io_num = I2S_SCK,
.ws_io_num = I2S_WS,
.data_out_num = I2S_PIN_NO_CHANGE,
.data_in_num = I2S_SD
};
i2s_driver_install(I2S_PORT, &i2s_config, 0, NULL);
i2s_set_pin(I2S_PORT, &pin_config);
}
void loop() {
size_t bytes_read = 0;
i2s_read(I2S_PORT, &samples, sizeof(samples), &bytes_read, portMAX_DELAY);
int samples_read = bytes_read / sizeof(int32_t);
int64_t sum = 0;
for (int i = 0; i < samples_read; i++) {
int32_t sample = samples[i] >> 14;
sum += abs(sample);
}
if (samples_read > 0) {
int32_t sound_level = sum / samples_read;
Serial.print("SoundLevel:");
Serial.println(sound_level);
}
delay(20);
}
Wiring diagram and example code generated by Codey.online — https://www.codey.online