要做拍手开关灯、声控小车、音频电平指示,或者给机器人加个"耳朵",MAX4466驻极体麦克风放大器模块很好用。它把拾音的驻极体话筒和可调增益的放大器集成在一起,输出一路模拟信号,Arduino用模拟口读声音强弱就能做各种检测。这篇把它的接线、输出特性和增益调节讲清楚。
模块的三个引脚和供电
常见模块引出VCC、GND、OUT三个引脚。VCC供电一般是2.4V到5V,多数模块推荐3.3V,用Arduino的3.3V输出即可,GND接地,OUT是模拟音频输出,接Arduino任意一个模拟输入口(比如A0)。模块上往往有个小电位器,用来调节增益。

输出是偏置在中间的电平,不是纯信号
MAX4466输出的不是围绕0V的交流音频,而是叠加在直流偏置上的。内部把输出偏置到大约VCC/2的位置——也就是供电3.3V时,静音时输出电压约1.65V,声音越大,这个电压波动越大。所以读的时候不要直接当0到5V的范围用,而是围绕中间偏置来处理。

程序里通常在同一时间段内多次采样,取最大值减最小值得到峰峰值,或者取波动幅度来判断"有没有声音""声音有多大",这样比只看单点读数稳定得多,不容易被环境底噪误判。
增益怎么调:电位器旋哪侧
模块上的小电位器调节的是放大器增益,范围通常在25倍到125倍左右。如果读数整体偏小、几乎不动,往一个方向旋转增大增益;如果底噪大、静音时也不稳,往反方向降低增益。环境越吵、离音源越远,越需要调高增益;反之调低避免削顶失真。控制增益让有效声音的动态范围落在采样可分辨区间最合适。
几个容易踩的坑
第一,供电用5V时输出偏置也更高,采样范围和阈值要跟着改。第二,直接读单点数值会乱跳,要做采样波动判断。第三,增益过高会底噪爆表,先静音时把增益压到读数稳定。第四,和电机共电源时纹波会串进音频,尽量给麦克风单独干净供电或加滤波电容。
把三根线接对、围绕中间偏置做波动采样、把增益调到读数干净灵敏,MAX4466就能当好机器人的"耳朵"。卡壳多在单点读数误判和供电噪声上,这几处排掉就好用了。


一定要采样看波动范围,单点读数真的一天到晚乱跳,做拍手检测才稳
增益电位器调到静音时读数干净就对了,我一开始开太大全是底噪
输出是偏置在VCC/2这个最容易忽略,我一开始当纯信号读,数值全不对