MKRZero通过I2S读取SPH0645音频数据

本文详细描述了如何使用ArduinoMKRZero开发板和SPH0645LM4H-B麦克风模块,通过I2S接口获取音频数据,并在串口上显示波形和样本值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

SPH0645LM4H-B 是一款微型、低功耗、并且具有 I2S 数字输出的底部端口麦克风。I2S 接口简化了系统集成,并允许与数字处理器、应用处理器和微控制器直接互连。 SPH0645LM4H-B 无需外部音频编解码器,非常适合尺寸和功耗受限的便携式应用。

在这里插入图片描述

实验准备

Arduino MKRZero开发板1个
SPH0645模块1个
离线语音模块1个
杜邦线若干

接线定义

Arduino MKRZeroSPH0645
VCC3V
GNDGND
D2BCLK
D3LRCL
A6DOUT

示例程序

#include <I2S.h>
 
void setup() {
  // Open serial communications and wait for port to open:
  // A baud rate of 115200 is used instead of 9600 for a faster data rate
  // on non-native USB ports
  SerialUSB.begin(115200);
  while (!SerialUSB) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
 
  // start I2S at 16 kHz with 32-bits per sample
  if (!I2S.begin(I2S_PHILIPS_MODE, 16000, 32)) {
    SerialUSB.println("Failed to initialize I2S!");
    while (1); // do nothing
  }
}
 
void loop() {
  // read a sample
  int sample = I2S.read();
 
  if ((sample == 0) || (sample == -1) ) {
    return;
  }
  // convert to 18 bit signed
  sample >>= 14; 
 
  // if it's non-zero print value to serial
  delay(10); 
  SerialUSB.println(sample);
}

注意这里选的开发板型号选择Arduino MKRZERO,端口选择对应的端口号(我这里是COM43,根据自己的端口号选择),这样编译才能通过。
在这里插入图片描述

实验现象

程序上传后,从“工具”打开“串口绘图器” ,波特率选择115200
在这里插入图片描述

可以看到串口输出的声音波形图。
在这里插入图片描述
打开串口也能看到样本数据。
在这里插入图片描述

总结

本文介绍了利用MKRZero通过I2S读取SPH0645音频数据,并将样本打印到串行控制台。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值