SKU: OT6767 Numer artykułu: AH131 EAN: 8720828223857
Wzbogac swoje projekty technologiczne dzięki naszemu zaawansowanemu wszechkierunkowemu modułowi mikrofonu MEMS, wyposażonemu w układ INMP441. Moduł ten został zaprojektowany, aby zapewniać wysokiej jakości parametry audio, kompatybilne z szeroką gamą mikrokontrolerów i płytek deweloperskich działających na 3.3V, takich jak ESP8266, ESP32, a nawet Raspberry Pi. To czyni go wszechstronnym wyborem do zastosowań od inteligentnych urządzeń i analizy dźwięku po interaktywne projekty artystyczne.
Specyfikacja techniczna:
Pinout:
Zawartość opakowania:
Ten moduł mikrofonu jest odpowiedni nie tylko dla hobbystów i twórców, ale także dla profesjonalistów poszukujących niezawodnego rozwiązania do zaawansowanych projektów audio. Obsługuje szeroką gamę zastosowań i jest kompatybilny z popularnymi platformami deweloperskimi, takimi jak ESP8266, ESP32 i Raspberry Pi, co czyni go doskonałym wyborem dla każdego, kto chce wzbogacić swoje projekty o wysokiej jakości dźwięk.
Ten wszechkierunkowy moduł mikrofonu MEMS z układem INMP441 nadaje się do szerokiego zakresu zastosowań, w tym:
Tak podłączysz Wszechkierunkowy mikrofon INMP441 MEMS 3.3V do Arduino UNO lub ESP32, z przykładowym szkicem, który możesz od razu wgrać.
Ten projekt łączy cyfrowy, dookólny mikrofon I2S INMP441 z Arduino Uno. Uno generuje programowo sygnały I2S bit clock (SCK) i word select (WS), aby odczytywać 24-bitowe próbki audio z linii SD. Otwórz Serial Monitor lub Serial Plotter z prędkością 115200 baud, aby obserwować zmiany poziomu dźwięku w czasie rzeczywistym.
/*
* ==================================================================
* 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
Odczytuje cyfrowy dźwięk z dookólnego mikrofonu I2S INMP441 i oblicza poziomy głośności w czasie rzeczywistym. Otwórz Serial Monitor lub Serial Plotter z prędkością 115200 baud, aby wizualizować dźwięki otoczenia i amplitudę głosu.
/*
* ==================================================================
* 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