0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino将Adafruit驻极体麦克风放大器连接到测量声级

454398 来源:网络整理 作者:网络整理 2019-12-03 09:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

如何使用Arduino将Adafruit驻极体麦克风放大器连接到测量声级

本指南介绍了如何使用ArduinoAdafruit驻极体麦克风放大器连接到测量声级。

麦克风放大器将驻极体胶囊麦克风与aMAX4466运算放大器配对,该放大器经过优化,可用于麦克风前置放大器应用。灵活的电源电压和可调节的增益使该模块适用于各种音频应用。

规格:

电源电压:2.4v-5v

输出:轨到轨-最高5vp-p

频率响应:20Hz-20 KHz

可调增益25x-125x

可用范围:当然是Adafruit!

组装和接线

装配:该板附带所有表面贴装的组件-焊接。可以将附带的标题条焊接起来,以方便在带有0.1英寸连接器的面包板上使用。

准备标题条: 如有必要,将标题条切成一定长度。如果将其插入面包板,则焊接起来会更容易-长针向下。

添加分支板: 将分支板放置在插针上。

(您可以用一些额外的插针支撑板的自由边缘,以便更好地对齐以进行焊接。)

和焊接! 确保焊接所有引脚以确保可靠的电接触。

(有关焊接的技巧,请务必查看我们的 优良焊接指南 )。

接线:该放大器只有3个连接,因此接线很简单:

GND-》 GND

VCC-》 3.3V

OUT-》 AIN0

VCC的电压范围可以是2.4-5VDC。为了获得最佳性能,我们使用3.3v引脚,因为它是Arduino上的“最安静”电源。

输出将具有VCC/2的DC偏置,因此当其完全安静时,电压为稳定的VCC/2(1.65v)。

测量声音水平

来自放大器输出的音频信号是变化的电压。为了测量声级,我们需要进行多次测量以找到信号的最小和最大范围或“峰到峰幅度”。

在下面的示例中,我们选择50毫秒的示例窗口。这足以测量低至20 Hz(人类听觉的下限)频率的声音水平。

找到最小和最大样本后,我们计算差值并将其转换为伏特,然后将输出打印到串行监视器。

下载:文件

复制代码

/****************************************

Example Sound Level Sketch for the

Adafruit Microphone Amplifier

****************************************/

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 * 5.0) / 1024; // convert to volts

Serial.println(volts);

} /****************************************

Example Sound Level Sketch for the

Adafruit Microphone Amplifier

****************************************/

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 * 5.0) / 1024; // convert to volts

Serial.println(volts);

}

确定,所以这不是很令人兴奋。您还能做什么?

滚动声级计因此,现在我们将进行峰峰值测量,并使用它来驱动BicolorLED矩阵以显示声级。为了使它更有趣,我们将滚动显示屏幕,以便实时绘制最近的8个测量结果。

为此,您需要下载Adafruit GFX库和LED背包库。 Wire Library包含在Arduino IDE安装中。

组装矩阵,请按照以下教程进行操作:

连接Matrix Matrix背包有4个插针,其连接方式如下:

‘+’-》 5v

‘-’-》 GND

D-》 SDA(模拟引脚4)

C-》 SCL(模拟引脚5)

上传代码,将以下代码粘贴到Arduino IDE中并上传。以正常的声音说话,距离麦克风大约6-8英寸,并且声级计矩阵显示应该开始滚动。

调整增益尽管放大器能够产生轨到轨信号(在这种情况下为3.3v),但是代码映射了一个1v峰峰值信号可满幅显示。

这可以在代码中更改。或者,您可以使用小号直刃螺丝刀调节放大器的增益微调电位器。放大器增益可在25倍至125倍之间调节。

轻轻进行所有增益调整。如果您感到阻力,请停止。小巧的装饰锅很精致,很容易通过挡块损坏。

下载:文件

复制代码

/****************************************

Scrolling Sound Meter Sketch for the

Adafruit Microphone Amplifier

****************************************/

#include

#include “Adafruit_LEDBackpack.h”

#include “Adafruit_GFX.h”

// Include the Matrix code for display

Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();

const int maxScale = 8;

const int redZone = 5;

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)

unsigned int sample;

void setup()

{

Serial.begin(9600);

matrix.begin(0x70); // pass in the address

}

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;

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;

// map 1v p-p level to the max scale of the display

int displayPeak = map(peakToPeak, 0, 1023, 0, maxScale);

// Update the display:

for (int i = 0; i 《 7; i++) // shift the display left

{

matrix.displaybuffer[i] = matrix.displaybuffer[i+1];

}

// draw the new sample

for (int i = 0; i 《= maxScale; i++)

{

if (i 》= displayPeak) // blank these pixels

{

matrix.drawPixel(i, 7, 0);

}

else if (i 《 redZone) // draw in green

{

matrix.drawPixel(i, 7, LED_GREEN);

}

else // Red Alert! Red Alert!

{

matrix.drawPixel(i, 7, LED_RED);

}

}

matrix.writeDisplay(); // write the changes we just made to the display

} /****************************************

Scrolling Sound Meter Sketch for the

Adafruit Microphone Amplifier

****************************************/

#include

#include “Adafruit_LEDBackpack.h”

#include “Adafruit_GFX.h”

// Include the Matrix code for display

Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();

const int maxScale = 8;

const int redZone = 5;

const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz)

unsigned int sample;

void setup()

{

Serial.begin(9600);

matrix.begin(0x70); // pass in the address

}

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;

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;

// map 1v p-p level to the max scale of the display

int displayPeak = map(peakToPeak, 0, 1023, 0, maxScale);

// Update the display:

for (int i = 0; i 《 7; i++) // shift the display left

{

matrix.displaybuffer[i] = matrix.displaybuffer[i+1];

}

// draw the new sample

for (int i = 0; i 《= maxScale; i++)

{

if (i 》= displayPeak) // blank these pixels

{

matrix.drawPixel(i, 7, 0);

}

else if (i 《 redZone) // draw in green

{

matrix.drawPixel(i, 7, LED_GREEN);

}

else // Red Alert! Red Alert!

{

matrix.drawPixel(i, 7, LED_RED);

}

}

matrix.writeDisplay(); // write the changes we just made to the display

}

更多酷项目!

要使用Adafruit麦克风放大器获得更多乐趣,请查看出色的Wave ShieldVoice Changer项目:

Tiny Arduino Music Visualizer!

下载

数据表

链接到MAX4466数据表(主放大器芯片)

使用的驻极体麦克风

下载EAGLE文件

示意图:

单击以进行签名

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 放大器
    +关注

    关注

    146

    文章

    14302

    浏览量

    221045
  • 麦克风
    +关注

    关注

    16

    文章

    687

    浏览量

    57293
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195991
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ‌基于STEVAL-STWINMA2麦克风阵列扩展板的工业音频传感技术解析

    STMicroelectronics STEVAL-STWINMA2麦克风阵列扩展板可为STEVAL-STWINKT1B(和STEVAL-STWINKT1)SensorTile无线工业节点
    的头像 发表于 10-24 10:54 378次阅读
    ‌基于STEVAL-STWINMA2<b class='flag-5'>麦克风</b>阵列扩展板的工业音频传感技术解析

    MEMS麦克风设计注意事项和应用指南

    MEMS麦克风以其极致的小巧、卓越的性能、强大的稳定性和极具竞争力的成本,席卷了从消费电子到工业物联网的各个角落。无论是打造清晰通话的TWS耳机,赋予智能设备“听”的能力,还是在嘈杂环境中精准拾音,MEMS麦克风都扮演着至关重要的角色。
    的头像 发表于 08-29 13:48 7523次阅读
    MEMS<b class='flag-5'>麦克风</b>设计注意事项和应用指南

    请问NUC505 支持数字麦克风吗?

    NUC505 支持数字麦克风吗?
    发表于 08-28 07:03

    麦克风CE认证要求

    一、麦克风属于CE强制认证产品麦克风作为电子音频设备,出口欧盟必须完成CE认证,并加贴CE标志。CE认证是强制性的,用于确保产品符合欧盟关于安全、电磁兼容和环保的法规。二、适用的CE指令有
    的头像 发表于 07-28 17:25 574次阅读
    <b class='flag-5'>麦克风</b>CE认证要求

    数字麦克风的0dBFS对应的信号电平峰值是多少?

    数字麦克风的0dBFS对应的信号电平峰值是多少?所有麦克风都是一样的,还是不同厂家的会有差异?
    发表于 07-14 08:26

    CYW920820M2EVB-01有麦克风吗?

    我想制作一个可以连接到我的手机的设备,然后我就可以用它接听和拨打电话。 现在我可以通过该设备拨打和接听电话,但声音仍通过手机传输。 我希望我可以完全独立于设备进行通话。 怎么做。 我想要使用麦克风
    发表于 06-30 06:03

    制作一个优雅的麦克风放大器

    “  如何用麦克风捕捉远距离的声音信号,同时保持设计的简洁 。 ” 原文转载自:https://lcamtuf.substack.com/p
    的头像 发表于 02-06 17:28 1267次阅读
    制作一个优雅的<b class='flag-5'>麦克风</b><b class='flag-5'>放大器</b>

    运算放大器有着哪些作用

    倍数(增益)主要由外部反馈电阻决定。这种放大功能在许多应用中至关重要,如音频放大系统。在麦克风前置放大电路中,麦克风输出的微弱音频信号(通常
    的头像 发表于 02-05 17:43 2222次阅读

    开源项目!制作一个优雅的麦克风放大器

    、抛物面反射器和复杂的数字处理等熟悉的技术可能有助于解决一些信号问题,但一个好的麦克风和一个精心设计的放大器通常是最好的起点。 了解麦克风的灵敏度 让我们从一个看似简单的问题开始:如何测量
    发表于 01-13 10:56

    EE-350:MEMS麦克风与Blackfin处理器无缝连接

    电子发烧友网站提供《EE-350:MEMS麦克风与Blackfin处理器无缝连接.pdf》资料免费下载
    发表于 01-06 15:10 0次下载
    EE-350:MEMS<b class='flag-5'>麦克风</b>与Blackfin处理器无缝<b class='flag-5'>连接</b>

    AN-1140: 麦克风阵列波束成形

    电子发烧友网站提供《AN-1140: 麦克风阵列波束成形.pdf》资料免费下载
    发表于 01-05 09:32 0次下载
    AN-1140: <b class='flag-5'>麦克风</b>阵列波束成形

    四、麦克风阵列主要技术参数之精准解读

    麦克风阵列宛如一个精密的声学仪器,其性能由多个关键技术参数决定,下面就对这些主要技术参数进行精准解读,揭开麦克风阵列高效运作的神秘面纱。(一)灵敏度与动态范围:声音信号的“感知标尺”在麦克风阵列
    的头像 发表于 12-31 00:00 1817次阅读
    四、<b class='flag-5'>麦克风</b>阵列主要技术参数之精准解读

    三、麦克风阵列类型及分类之细致梳理

    麦克风阵列,作为声学领域的关键技术,拥有多种类型,每种类型都以独特的排列方式和卓越的性能,在不同的应用场景中发挥着重要作用,下面将为您细致梳理其类型与分类,展现麦克风阵列的奇妙世界。
    的头像 发表于 12-29 00:00 1562次阅读
    三、<b class='flag-5'>麦克风</b>阵列类型及分类之细致梳理

    Aigtek:电压放大器的实验技巧与使用方法介绍

    使用的电压放大器符合实验要求,检查连接线、电源以及测量设备的状态。 2.电路连接 电源连接
    的头像 发表于 12-27 11:35 818次阅读
    Aigtek:电压<b class='flag-5'>放大器</b>的实验技巧与使用方法介绍

    一、麦克风阵列之基础概念探幽

    麦克风阵列技术,犹如一位隐匿于幕后的神奇工匠,悄无声息却又深刻地渗透进了我们生活的每一处缝隙。无论是日常沟通所用的通信系统,还是专业音频录制领域,亦或是精准的声源定位任务,麦克风阵列都似一颗璀璨
    的头像 发表于 12-21 14:43 1436次阅读
    一、<b class='flag-5'>麦克风</b>阵列之基础概念探幽