如何使用模拟声音传感器与Arduino
扫描二维码
随时随地手机看文章
介绍
在本课中,我将向您展示Arduino如何使用简单的声音传感器识别声音。
最后,你会建立一个光控制器系统,让你打开和关闭一个LED与按钮或拍手。
这是我们名为Arduino初学者的24部分系列的第11课。如果你是新来的,欢迎!一定要跟着我,这样你就不会错过即将到来的课程。
它是如何工作的
模拟声音传感器是一个很小但非常方便的模块。在它的核心,它使用一个麦克风来检测声音的强度。
声波击中麦克风内部的隔膜。这个薄板来回振动,产生微小的电压变化。Arduino将这些电压变化作为模拟信号读取。
•声音越大,电压越高。
•声音越小,电压越低。
如果你觉得这很熟悉,那是因为我们在其他组件中看到了类似的行为:
•光传感器根据亮度变化电阻。
•当你转动电位器时,它们的电阻会发生变化。
•麦克风的电压随声音的变化而变化。
当然,这种传感器非常简单。它不能像你的智能手机那样识别单词或声音。但它很适合检测噪音水平、拍手声、敲击声或其他尖锐的声音。
一些声音传感器包括一个小电位器来调节灵敏度。我今天用的这个没有,这实际上使它更容易使用。
项目
我们将建立一个灯光控制系统,让我们可以使用按钮或拍手来打开和关闭LED。这两个控件可以互换工作。
你需要什么(来自MindPlus Arduino编码工具包):
•Arduino UNO。
•I/O扩展屏蔽。
•Red LED。
•按钮。
•模拟声音传感器。
•几根跳线。
组装非常简单:
•将扩展护罩连接到Arduino上。
•将LED连接到2号端口。
•将按钮连接到端口3。
•将声音传感器连接到模拟端口A5。
这是它!
如果您需要额外帮助,请按照下面的接线图进行操作。
代码
现在一切都连接好了,让我们继续编写代码。
您可以在本系列的GitHub存储库中找到完整的草图。
将其复制到Arduino IDE中,但在上传之前,让我们了解一下发生了什么。
我们从定义引脚开始:引脚2上的LED,引脚3上的按钮,以及A5上的声音传感器。我们还设置了一个变量来记住LED当前是打开还是关闭。
该按钮配置了Arduino的内部上拉电阻。这意味着当按钮没有按下时,引脚读数为高,当你按下它时,它会变低。我们使用状态的变化来决定何时切换LED。
对于声音传感器,我们读取0到1023之间的模拟值。当你拍手时,价值急剧上升。我们将其与阈值进行比较。如果它更高,我们把它当作鼓掌。
为了避免误触发,有一种被称为脱光的短暂延迟,这样回声或背景噪音就不会一直快速切换光线。
按钮和拍击检测都调用相同的函数:toggleLED。这个功能只是翻转LED的状态。如果它开着,就把它关掉。如果它关了,就打开它。
这样,无论你使用哪种输入方式,按钮或拍击,系统都保持同步。
去测试一下吧。拍拍你的手来打开和关闭LED。你也可以用按钮来控制灯光。
本文编译自hackster.io





