esp32小智,inmp441麦克风问题

小智屏幕显示聆听但是不能输入,可能是麦克风问题,如下图。

 

inmp441麦克风很容易有问题,sck引脚很容易焊接到外面的圆环上,以下是问题引脚,用刀片分开就好了。

如果还是有问题,就爱莫能助了。

 

 

接下来给出一个arduino的测试代码,测试麦克风问题。

接线参考下面引脚,会用arduino,应该知道怎么接,麦克风6个引脚,下面代码给出三个引脚连接方式,vdd还有gnd不要忘了,还有一个l/r引脚,接gnd和vcc,或者不接,选择左声道还有右声道的,应该都可以。

 

#include <driver/i2s.h>这个库可能没有,需要自己安装,这个上网搜怎么安装库

#include <driver/i2s.h>

// INMP441 引脚定义
#define I2S_SCK  16   // BCK
#define I2S_WS   15   // WS/LRCLK
#define I2S_SD   13   // SD

void setup() {
  Serial.begin(115200);
  delay(1000);

  // I2S配置(完全标准的结构体初始化)
  i2s_config_t i2s_config;
  i2s_config.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX);
  i2s_config.sample_rate = 44100;
  i2s_config.bits_per_sample = I2S_BITS_PER_SAMPLE_24BIT;
  i2s_config.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
  i2s_config.communication_format = I2S_COMM_FORMAT_STAND_I2S;
  i2s_config.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
  i2s_config.dma_buf_count = 8;
  i2s_config.dma_buf_len = 1024;
  i2s_config.use_apll = false;
  i2s_config.tx_desc_auto_clear = false;
  i2s_config.fixed_mclk = 0;

  // I2S引脚配置(完全标准的结构体初始化)
  i2s_pin_config_t pin_config = {};
   pin_config.bck_io_num = I2S_SCK;
   pin_config.ws_io_num = I2S_WS;
   pin_config.data_out_num = -1;
   pin_config.data_in_num = I2S_SD;
   
   pin_config.mck_io_num = -1;

  // 安装驱动
  esp_err_t err = i2s_driver_install(I2S_NUM_0, &i2s_config, 0, NULL);
  if (err != ESP_OK) {
    Serial.printf("I2S驱动安装失败: 0x%X\n", err);
    while(1);
  }

  err = i2s_set_pin(I2S_NUM_0, &pin_config);
  if (err != ESP_OK) {
    Serial.printf("I2S引脚设置失败: 0x%X\n", err);
    while(1);
  }

  Serial.println("I2S初始化成功,开始采集音频...");
}

void loop() {
  int32_t raw_sample;
  size_t bytes_read;
  
  if (i2s_read(I2S_NUM_0, &raw_sample, sizeof(raw_sample), &bytes_read, 0) == ESP_OK) {
    if (bytes_read > 0) {
      int32_t sample = raw_sample >> 8; // 24位有效数据
      Serial.println(abs(sample));
      
      // 麦克风检测逻辑
      static uint32_t zero_count = 0;
      if (sample == 0) {
        if (++zero_count > 1000) {
          Serial.println("警告:麦克风可能未正常工作!");
          zero_count = 0;
        }
      } else {
        zero_count = 0;
      }
    }
  }
  delay(200);
}

1.复制代码到arduino,编译并且上传到esp32s3

2.打开arduino的串口监视器

3.左图串口数据表示麦克风有问题,右图表示麦克风没有问题

           

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值