HS-S05C-L Omnidirectional Microphone Module

HS-S05C-L  Omnidirectional Microphone Module

1. Introduction

2. Schematic

Module Parameters

Pin Name

description

G

GND (Negative Power Input)

V

VCC (Positive Power Input)

WS

Character Select through Pin

SD

Data pin

SCK

clock pin

  • Supply voltage: 3.3V

  • Connection method: PH2.0 4P terminal wire

  • Installation method: Modular fixed

4, Circuit Board Size

Add Arduino Library File

Reference here if you don't know how to use library files:Install and use library files

Library file download: Click to download

Unzip the downloaded Arduino library files to the desktop and then place them in Arduino's libraries folder.

6, Add MicroPython environment library file

Please click here for reference if you cannot install library files

7. Arduino IDE example program

Example program (ESP32 development board): Click to download

#define SAMPLE_RATE (44100)
#define I2S_MIC_WS (12)
#define I2S_MIC_SD (13)
#define I2S_MIC_BCK (14)
#define I2S_PORT_0 (I2S_NUM_0)
#define bufferLen (1024)
#include "Arduino.h"
#include "driver/i2s.h"

int16_t sBuffer_RX[bufferLen];
size_t bytesIn = 0;

void I2s_Mic_Init()
 {
   i2s_config_t i2s_config_RX{};
   i2s_config_RX.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX);
   i2s_config_RX.sample_rate = SAMPLE_RATE;
   i2s_config_RX.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
   i2s_config_RX.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
   i2s_config_RX.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
   i2s_config_RX.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
   i2s_config_RX.dma_buf_count = 8;
   i2s_config_RX.dma_buf_len = bufferLen;
   i2s_config_RX.use_apll = false;
   i2s_driver_install(I2S_PORT_0, &i2s_config_RX, 0, NULL);
   i2s_pin_config_t pin_config_RX{};
   pin_config_RX.mck_io_num = I2S_PIN_NO_CHANGE;
   pin_config_RX.bck_io_num = I2S_MIC_BCK;
   pin_config_RX.ws_io_num = I2S_MIC_WS;
   pin_config_RX.data_out_num = I2S_PIN_NO_CHANGE;
   pin_config_RX.data_in_num = I2S_MIC_SD;
   i2s_set_pin(I2S_PORT_0, &pin_config_RX);
   i2s_start(I2S_PORT_0);
 }
int16_t* Mic_Value()
 {
   i2s_read(I2S_PORT_0, sBuffer_RX, sizeof(sBuffer_RX), &bytesIn, portMAX_DELAY);
   for (int i = 0; i < bufferLen; i++)
   {
     sBuffer_RX[i] = sBuffer_RX[i]*2;
     if (sBuffer_RX[i] > (32767))
       sBuffer_RX[i] = (32767);
     else if (sBuffer_RX[i] < (-32768))
       sBuffer_RX[i] = (-32768);
   }
   return sBuffer_RX;
 }

void setup(){
  I2s_Mic_Init();
  Serial.begin(115200);
}

void loop(){
  short *data = Mic_Value();
  for (int i = 0; i <= 1023; i = i + (1)) {
    Serial.println(data[i]);
  }

}

Example program (ESP32-S3 development board): Click to download

8, Mixly Example Program (Graphic Language)

Mixly Library (ESP32 Development Board - C Language Version):Click to download

Sample Program (ESP32 Development Board - C Language Version):Click to download

MiXin Mixly library file (ESP32-S3 development board - C language version): Click to download

Example Program (ESP32-S3 Development Board - C Language Version): Click to Download

9. Setting up the Test Environment

Arduino ESP32 Test Environment Setup

Prepare Components:

  • ESP32 Development Board *1

  • ESP32 EXP1 Expansion Board *1

  • USB TYPE-C DATA CABLE *1

  • HS-S05C-L Omnidirectional Microphone Module*1

  • PH2.0 5P PH2.0 connector to DuPont wire *1

Circuit wiring diagram:

ESP32 Python test environment setup

10, video tutorial

Arduino UNO video tutorial: Click to view

ESP32 Python Video Tutorial:

11. Test Conclusion

Arduino UNO Test Conclusion: