常用传感器讲解五--声音传感器-(KY-037)

简介: 常用传感器讲解五

具体讲解

截屏2023-12-27 下午7.24.13.png

该模块由一个用于检测声音的灵敏电容麦克风和一个放大电路组成。该模块的输出既是模拟的又是数字的。数字输出用作键,并且它当声音强度达到某个阈值时激活。灵敏度阈值可以通过传感器上的电位计进行调整。模拟输出电压随麦克风接收的声音强度而变化。您可以将此输出连接到Arduino模拟引脚并处理输出电压。

电路连接

电路实验次材料截屏2023-12-27 下午7.24.29.png要将此模块与Arduino一起使用,只需连接模块的电源,然后根据需要将其模拟或数字引脚连接到Arduino。截屏2023-12-27 下午7.25.25.png

在这里,我们使用了模拟输出。
如下图所示将传感器连接到Arduino
截屏2023-12-27 下午7.25.01.png

代码部分

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

将传感器的模拟输出连接到Arduino A0引脚,然后将以下代码上传到Arduino板上。然后从“工具”菜单中选择“串行绘图仪”。
截屏2023-12-27 下午7.25.52.png

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);
}
}
}
相关文章
|
6月前
|
网络协议
ABB 测量和分析仪 AO2000-LS25 激光分析仪
ABB 测量和分析仪 AO2000-LS25 激光分析仪
|
6月前
|
传感器 机器人
|
6月前
|
传感器
|
6月前
|
传感器