108个传感器之-麦克风前置放大器MX4466(42)

108个传感器之-麦克风前置放大器MX4466(42)

介绍

这是一个精心设计的模块,具有灵活的电源电压和可调节的增益,使其适用于广泛的音频应用。该模块特别适用于实时语音更换器,音频录制/采样以及使用快速傅立叶变换(FFT)算法的音频反应性项目。

原理

在麦克风内部,有一个薄的隔膜和背板。它们在一起形成了电容器。

当声音经过麦克风时,声音产生的声波撞到了隔膜,使其振动。

随着隔膜振动的振动,它离背板更近或远。这种运动改变了它们之间的电容。电容的这种变化会在板上产生电压,我们可以测量以确定声音的幅度。

原理图

引脚连接

pin 引脚连接开发板的 gpio 接口即可:

DEV BOARD Sensor
Pin 2 signal
5 V +V
GND GND

代码示例

下面介绍一个简单的驱动示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <Arduino.h>

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
int const AMP_PIN = A2; // Preamp output pin connected to A0
unsigned int sample;

void setup()
{
Serial.begin(9600);
}

void loop()
{
unsigned long startMillis = millis(); // Start of sample window
unsigned int peakToPeak = 0; // peak-to-peak level

unsigned int signalMax = 0;
unsigned int signalMin = 1024;

// collect data for 50 mS and then plot data
while (millis() - startMillis < sampleWindow)
{
sample = analogRead(AMP_PIN);
if (sample < 1024) // toss out spurious readings
{
if (sample > signalMax)
{
signalMax = sample; // save just the max levels
}
else if (sample < signalMin)
{
signalMin = sample; // save just the min levels
}
}
}
peakToPeak = signalMax - signalMin; // max - min = peak-peak amplitude
Serial.println(peakToPeak);
//double volts = (peakToPeak * 5.0) / 1024; // convert to volts
//Serial.println(volts);
}

拓展

这个模块可以通过和 LED 连接做一个类似光随声动的项目。

小结

待完善…

参考

https://arduinogetstarted.com/tutorials/arduino-button-debounce

https://lastminuteengineers.com/max4466-arduino-tutorial/

108个传感器之-麦克风前置放大器MX4466(42)

http://blog.jzxer.cn/20250114/20250114-mx4466/

作者

dev

发布于

2025-01-14

更新于

2025-01-10

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×