如何在Arduino中使用KY-037声音检测传感器

发布时间:2023-06-06  

  这个项目将教你如何在 Arduino 中使用 KY-037 声音检测传感器,并且测量环境中声音强度的变化。


  能够学到什么

  KY-037声音检测传感器介绍

  KY-037声音检测模块如何配合Arduino使用

poYBAGLo1MuAVFRLAASyRV0C1gY871.png

  KY-037声音检测传感器

pYYBAGLo1MSAHhIAAAKpjJ-o5Dk024.png

  该模块由一个用于检测声音的灵敏电容麦克风和一个放大电路组成。该模块的输出是模拟和数字的。数字输出作为一个键,当声音强度达到一定阈值时激活。灵敏度阈值可以通过传感器上的电位器进行调整。

  模拟输出电压随麦克风接收到的声音强度而变化。您可以将此输出连接到 Arduino 模拟引脚并处理输出电压。

  将 KY-037 声音检测模块与 Arduino 连接

poYBAGLo1L-ARcfEAAFWUhkyF0s939.png

  要将此模块与 Arduino 一起使用,只需连接模块的电源电压,然后根据需要将其模拟或数字引脚连接到 Arduino。

  这里我们使用模拟输出。

  电路

  如下图将传感器连接到 Arduino

pYYBAGLo1LuAZ0G9AATDi5r2BGc160.png

  代码

  连接电路后,请执行以下步骤:

  第 1 步:在您的 Arduino 板上上传以下代码:

  void setup() {

Serial.begin(9600); // setup serial
}
void loop() {
Serial.println(analogRead(A0));
delay(100);

  第 2 步:打开串行监视器窗口

  现在转动电位器以关闭数字输出上的 LED。在 LED 熄灭后立即记下串行监视器中显示的数字。

poYBAGLo1LaANmSfAADZOYuE5IE991.png

  在图表上显示传感器的模拟输出

  将传感器的模拟输出连接到 Arduino A0 引脚并在您的 Arduino 板上上传以下代码。然后从工具菜单中选择串行绘图仪。

pYYBAGLo1LGAMxyaAAB8y-IGdbw450.png

  第 3 步:在以下代码中写下您之前记下的数字(作为阈值变量)并将代码上传到您的板上。

  /*

KY-037 Sound Detection Sensor + Arduino
modified on 16 Apr 2019
by Mohammadreza Akbari @ Electropeak
https://electropeak.com/learn/
*/
int sensor_value = 0;
int threshold = 540; //Enter Your threshold value here
int abs_value = 0;
int ledCount = 10; //number of Bargraph LEDs
int bargraph[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // Bargraph pins
void setup() {
Serial.begin(9600); // setup serial
for (int i = 0; i <= ledCount; i++) // Define bargraph pins OUTPUT
{
pinMode(bargraph[i], OUTPUT);
}
for (int i = 0; i <= 9; i++)
{
digitalWrite(i, LOW);
}
}
void loop() {
sensor_value = analogRead(A0);
abs_value = abs(sensor_value - threshold);
int ledLevel = map(abs_value, 0, (1024 - threshold), 0, ledCount);
for (int i = 0; i < ledCount; i++) {
// if the array element's index is less than ledLevel,
// turn the pin for this element on:
if (i < ledLevel) {
digitalWrite(bargraph[i], HIGH);
Serial.println(i);
}
// turn off all pins higher than the ledLevel:
else {
digitalWrite(bargraph[i], LOW);
}
}
}

  未来可能的拓展

  当声音达到特定阈值时,设备开始自动存储声音。(可以使用VS1053等模块来存储音频。)

  传感器部分:

  /*

KY-037 Sound Detection Sensor + Arduino

modified on 16 Apr 2019

by Mohammadreza Akbari @ Electropeak

https://electropeak.com/learn/

*/

int sensor_value = 0;

int threshold = 540; //Enter Your threshold value here

int abs_value = 0;

int ledCount = 10; //number of Bargraph LEDs

int bargraph[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // Bargraph pins

void setup() {

Serial.begin(9600); // setup serial

for (int i = 0; i <= ledCount; i++) // Define bargraph pins OUTPUT

{

pinMode(bargraph[i], OUTPUT);

}

for (int i = 0; i <= 9; i++)

{

digitalWrite(i, LOW);

}

}

void loop() {

sensor_value = analogRead(A0);

abs_value = abs(sensor_value - threshold);

int ledLevel = map(abs_value, 0, (1024 - threshold), 0, ledCount);

for (int i = 0; i < ledCount; i++) {

// if the array element's index is less than ledLevel,

// turn the pin for this element on:

if (i < ledLevel) {

digitalWrite(bargraph[i], HIGH);

Serial.println(i);

}

// turn off all pins higher than the ledLevel:

else {

digitalWrite(bargraph[i], LOW);

}

}

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>