Op werkdagen vóór 14:00 uur besteld = dezelfde dag verzonden en in 98% van de gevallen de volgende dag in huis. Gratis retourneren 30 dagen bedenktijd 1 jaar garantie
← Tillbaka till översikten

Kopplingsschema och kodexempel

Så här kopplar du Omnidirektionell Mikrofon INMP441 MEMS 3.3V till en Arduino UNO eller ESP32, med ett exempel­sketch som du kan ladda upp direkt.

INMP441 I2S Microphone with Arduino Uno

This project connects an INMP441 digital I2S omnidirectional microphone to an Arduino Uno. The Uno generates the I2S bit clock (SCK) and word select (WS) signals in software to read 24-bit audio samples from the SD line. Open the Serial Monitor or Serial Plotter at 115200 baud to see sound levels fluctuate in real time.

Kopplingsschema: Omnidirektionell Mikrofon INMP441 MEMS 3.3V på en Arduino UNO
Kopplingsschema · Klicka för att förstora
Kopplingstabell: Omnidirektionell Mikrofon INMP441 MEMS 3.3V på en Arduino UNO
Kopplingstabell · Klicka för att förstora
INMP441_I2S_Microphone_with_Arduino_Uno.ino · kompilerad och testad
/*
 * ==================================================================
 *  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

INMP441 I2S Sound Level Meter

Reads digital audio from the INMP441 omnidirectional I2S microphone and computes real-time volume levels. Open the Serial Monitor or Serial Plotter at 115200 baud to visualize ambient sound and voice amplitude.

Kopplingsschema: Omnidirektionell Mikrofon INMP441 MEMS 3.3V på en ESP32 DevKit V1
Kopplingsschema · Klicka för att förstora
Kopplingstabell: Omnidirektionell Mikrofon INMP441 MEMS 3.3V på en ESP32 DevKit V1
Kopplingstabell · Klicka för att förstora
INMP441_I2S_Sound_Level_Meter.ino · kompilerad och testad
/*
 * ==================================================================
 *  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

Tidigare visade

Vit tråd med massiv kärna 22AWG för breadboards per meter

Vit tråd med massiv kärna 22AWG för breadboards per meter

€ 1,50
Tryckknapp | på-av self lock | 14x20 runt hål 12mm | Gul

Tryckknapp | på-av self lock | 14x20 runt hål 12mm | Gul

€ 1,00
Blå tråd med massiv kärna 22AWG för breadboards per meter

Blå tråd med massiv kärna 22AWG för breadboards per meter

€ 1,50
Tryckknapp | på-av self lock | 14x20 runt hål 12mm | Röd

Tryckknapp | på-av self lock | 14x20 runt hål 12mm | Röd

€ 1,00
Tryckknapp | moment - puls | 14x20 runt hål 12mm | Röd

Tryckknapp | moment - puls | 14x20 runt hål 12mm | Röd

€ 1,00
M3 30x6mm Hex Nylon Spacer / Standoff / Avståndsbuske

M3 30x6mm Hex Nylon Spacer / Standoff / Avståndsbuske

€ 0,60
Metaldetektor - DIY lödkit för nybörjare - STEM-utbildning

Metaldetektor - DIY lödkit för nybörjare - STEM-utbildning

€ 2,35
5mm Super Flux Piranha 4pin LED - Blå

5mm Super Flux Piranha 4pin LED - Blå

€ 0,60
WeMos D1 R32 ESP32 4Mb Development Board WiFi Bluetooth Dual Core Arduino Uno R3 format

WeMos D1 R32 ESP32 4Mb Development Board WiFi Bluetooth Dual Core Arduino Uno R3 format

€ 8,85
Visa
Voltmeter 3,5V-30V -  Grön, 0.56 inch, Inbyggnad

Voltmeter 3,5V-30V - Grön, 0.56 inch, Inbyggnad

€ 4,55