用户工具

站点工具


ocrobot:modules:max4466

麦克风模块

介绍

这是一个精心设计过的麦克风模块,配备了一个20-16KHz的驻极体麦克风,使用了专用麦克风放大器,具有很优异的电源噪声抑制,几乎没有什么噪音或者沙沙声。

模块上有一个电位器,它用来调节增益幅度(灵敏度)。

他使用起来也非常简单,GND引脚接地,VCC使用2.4-5V的DC。为了获得最佳的效果,请使用一个单独的LDO为他供电,防止其他设备产生噪声。(在Arduino控制板上,您可以使用3.3V)。音频波形通过OUT引脚输出。输出具有VCC/2的直流偏置,所以当周围环境为完全安静的时候,电压将是一个稳定的VCC/2伏特(DC耦合)。

如果您使用的音频设备是需要交流耦合音频,那么您需要在麦克风输出引脚和设备输入引脚之间加一个100uF的电容。如果是连接到音频放大器,具有差分输入并包含了退偶电容,那么就不需要100uF的电容。

模块的OUT引脚设计的并不是直接连接扬声器或者耳机的,如果您需要连接到扬声器或者耳机,您需要一个音频放大器。如果您连接到单片机的ADC口,那么就不需要放大器,也不需要退偶电容,直接OUT引脚连接到ADC接口即可。

参数

灵敏度:-42DB±2DB
信噪比:60DB
检测频率范围:20Hz-16KHz
接口:2.54间距标准排针
尺寸:1.651cm × 2.032cm

示例代码

1、测量声音强度代码,VCC接到3.3V。(本代码为Arduino代码)

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)
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
   while (millis() - startMillis < sampleWindow)
   {
      sample = analogRead(0);
      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
   double volts = (peakToPeak * 3.3) / 1024;  // convert to volts
 
   Serial.println(volts);
}

图片详情

文档

ocrobot/modules/max4466.txt · 最后更改: 2017/11/17 11:27 由 董凯萍