具体讲解
该模块由一个用于检测声音的灵敏电容麦克风和一个放大电路组成。该模块的输出既是模拟的又是数字的。数字输出用作键,并且它当声音强度达到某个阈值时激活。灵敏度阈值可以通过传感器上的电位计进行调整。模拟输出电压随麦克风接收的声音强度而变化。您可以将此输出连接到Arduino模拟引脚并处理输出电压。
电路连接
电路实验次材料要将此模块与Arduino一起使用,只需连接模块的电源,然后根据需要将其模拟或数字引脚连接到Arduino。
在这里,我们使用了模拟输出。
如下图所示将传感器连接到Arduino
代码部分
在图表上显示传感器的模拟输出
将传感器的模拟输出连接到Arduino A0引脚,然后将以下代码上传到Arduino板上。然后从“工具”菜单中选择“串行绘图仪”。
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);
}
}
}