37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百九十:MAX4466声音传感器 驻极体话筒放大器 麦克风可调功放模块 microphone
知识点:MAX4466芯片
是微功率运算放大器,经过优化,可用作麦克风前置放大器。它们提供了优化的增益带宽产品与电源电流的理想组合,以及超小型封装中实现低电压工件环境。 MAX4466具有增益稳定特性,仅需24μA的电源电流即可提供200kHz的增益带宽。经过解压缩,可实现+5V/V的最小稳定增益,并提供600KHZ增益带宽。此外这些放大器具有轨到轨输出,高 AVOL ,以及出色的电源抑制和共模抑制比,适合在嘈杂环境中工作。广泛应用于蜂窝电话、数字复读装置、耳机、助听器、麦克风前置放大器、便携计算机和语音识别系统中。
主要特性
1、+2.4V 至 +5.5V 电源电压运行版本,
2、可提供 5nA 完全关断(MAX4467/MAX4468)
3、出色的电源抑制比:112dB
4、出色的共模抑制比:126dB
5、高 AVOL:125dB (RL= 100kΩ)
6、轨到轨输出
7、低 24μA 静态电源
8、电流增益带宽积:
200kHz (MAX4465/MAX4467/MAX4469)
600kHz AV≥5 (MAX4466/MAX4468)
9、采用节省空间的封装
5-Pin SC70 (MAX4465/MAX4466)
8 引脚 SOT23 (MAX4467/MAX4468/MAX4469)
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之六:测量噪音水平(简化版本)
模块接线:
MAX4466 Arduino
VCC 5V
GND GND
OUT A0
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之六:测量噪音水平(简化版本)
模块接线:
MAX4466 Arduino
VCC 5V
GND GND
OUT A0
*/
const int MIC = 0; //麦克风放大器输出连接到引脚 A0
int adc;
int dB, PdB; //将保存每次从麦克风读取的值的变量
void setup() {
Serial.begin(9600);
}
void loop() {
PdB = dB; //在此处存储 dB 的前一个
adc = analogRead(MIC); //从放大器读取 ADC 值
//Serial.println (adc);//打印 ADC 用于初始计算
dB = (adc + 83.2073) / 9.8; //使用回归值将 ADC 值转换为 dB
if (PdB != dB)
Serial.print ("dB=");
Serial.println (dB);
delay(10);
}
实验串口返回情况
实验串口绘图器返回情况(尖峰为咳嗽声)
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之七:高灵敏度的声级波形测试(人声与拍手声)
实验开源代码
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之七:高灵敏度的声级波形测试(人声与拍手声)
模块接线:
MAX4466 Arduino
VCC 5V
GND GND
OUT A0
*/
#define MIC_IN A0
// 以毫秒为单位的采样窗口宽度(50 ms = 20Hz)
int sampleWindow = 50;
void setup(){
Serial.begin(9600);
pinMode( MIC_IN, INPUT );
}
void loop(){
//将模拟传感器读取为声级的数值
double soundSensed = sampleSoundPeak();
// 转换为声级数值
double volts = (soundSensed * 3.3)/1.83; //系数是自定的实验值
// 打印出来
Serial.println(volts);
}
/**
Sense 最大输入差异是从模拟 MIC 传感器输入
在某个“时间窗口”内。
返回值在 0 - 1024 范围内。
**/
double sampleSoundPeak(){
// 记录开始时间
double startMillis = millis();
// 这将是最高峰,所以从很小开始
int signalMax = 0;
// 这将是最低峰,所以从高处开始
int signalMin = 1024;
// 将保持麦克风的当前值
int sample;
// 收集 50 毫秒的数据
while ( (millis() - startMillis) < sampleWindow ){
// 从 mic 读取一个值并将其记录到示例变量中
sample = analogRead( MIC_IN );
// 丢弃虚假读数
if (sample < 1024)
{
// 如果当前样本大于最大值
if (sample > signalMax)
{
// 这是新的最大值——保存它
signalMax = sample;
}
// 否则,如果当前样本小于最小值
else if (sample < signalMin)
{
// 这是新的数值——保存它
signalMin = sample;
}
}
}
// 现在我们已经收集了我们的数据,
// 确定峰峰值幅度为最大值 - 最小值
int peakDifference = signalMax - signalMin;
// 将其返回给此方法的调用者
return peakDifference;
}
实验串口绘图器返回情况之一
半米处低声讲话,幅度变化可有4倍以上
实验串口绘图器返回情况之二
三米处拍手声,幅度变化可达18倍
实验串口绘图器返回情况之三
测试各种情况下声级变化,最高动态幅度变化达到25倍
实验场景图
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之八:打开串行绘图仪窗口以观察平均音频幅度(简化版本)
程序说明:将 3.3V 连接到 AREF 输入以使用 3.3V 进行 ADC 操作
实验开源代码
/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百八十五:MAX4466声音传感器 低功耗驻极体话筒放大器 麦克风可调功放模块 microphone
项目之八:打开串行绘图仪窗口以观察平均音频幅度(简化版本)
程序说明:将 3.3V 连接到 AREF 输入以使用 3.3V 进行 ADC 操作
模块接线:
MAX4466 Arduino
VCC 5V
GND GND
OUT A0
*/
int const SAMPLE_WINDOW = 50; // 以毫秒为单位的采样窗口宽度(50 毫秒 = 20Hz)
int const PREAMP_PIN = A0; // 前置放大器输出引脚连接到A0
unsigned int sample;
void setup() {
analogReference(EXTERNAL); // 将 3.3V 连接到 AREF 以提供参考电压
Serial.begin(9600);
}
void loop() {
unsigned long startMillis = millis(); // 示例窗口的开始
unsigned int amplitude = 0; // 峰峰值
unsigned int soundMax = 0;
unsigned int soundMin = 1024;
// 收集 50 毫秒的数据,然后绘制数据
while (millis() - startMillis < SAMPLE_WINDOW) {
sample = analogRead(PREAMP_PIN);
if (sample > soundMax) {
soundMax = sample; // 保存最大级别
}
else if (sample < soundMin) {
soundMin = sample; // 保存最低级别
}
}
amplitude = soundMax - soundMin; // 最大值 - 最小值 = 峰峰值幅度
Serial.println(amplitude);
}
实验串口绘图器返回情况之一
实测环境噪音波形
实验串口绘图器返回情况之二
断续讲话声波形
实验串口绘图器返回情况之三
播放背景音乐的波形