在本篇文章中,您将学习如何在Arduino中使用KY-037声音检测传感器。您可以使用此模块测量环境中声音强度的变化。
什么是KY-037声音探测传感器?
该模块由用于检测声音的敏感电容式麦克风和放大器电路组成。该模块的输出可以是模拟值和数字值。数字输出充当开关,当声音强度达到某个阈值时激活。可以通过传感器上的电位器调节灵敏度阈值。
<ignore_js_op>
模拟输出电压随麦克风接收的声音强度而变化。您可以将此输出连接到Arduino模拟引脚并处理输出电压。
所需的材料
● Arduino UNO R3开发板
● KY-037声音检测传感器模块
● LED光条
● 330欧电阻
● 公对母跳线
● Arduino IDE
<ignore_js_op>
将KY-037声音检测模块与Arduino连接
要将此模块与Arduino一起使用,只需连接模块的电源电压,然后根据需要将其模拟或数字引脚连接到Arduino。
这里我们使用的是模拟输出。
<ignore_js_op>
电路连接
将传感器连接到Arduino开发板,如下图所示
<ignore_js_op>
代码
连接电路后,请执行以下步骤:
第1步:在Arduino板上上传以下代码:
- void setup() {
- Serial.begin(9600); // setup serial
- }
- void loop() {
- Serial.println(analogRead(A0));
- delay(100);
- }
第2步:打开“Serial Monitor”窗口。 现在转动电位器关闭数字输出上的LED。 在LED熄灭后立即记下Serial Monitor中显示的数字。
<ignore_js_op>
小提示:在图表上显示传感器的模拟输出
将传感器的模拟输出连接到Arduino A0引脚,并在Arduino板上上传以下代码。 然后从“Tools”菜单中选择“Serial plotter”。
<ignore_js_op>
第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);
- }
- }
- }