
声音传感器介绍
声音传感器是一种将声音信号(机械波)转化为电信号的电子元件,其核心是通过 “声 - 电转换” 实现对声音的检测(如有无声音、声音大小、频率等)。
声音传感器先通过驻极体麦克风、压电片等声敏元件,将声音振动(机械波)转为微弱电信号;再经放大、滤波优化,部分还会转成数字信号;最后输出模拟或数字信号,实现声音有无或强度检测,用于声控灯、噪音检测等场景。
本次实验我们借助声音传感器来实现LED小灯的控制。
1.实验用到的电子器件
Arduino UNO板 1个、USB下载数据线1根、面包板1个、杜邦线若干

声音传感器1个(此传感器只能识别声音的有无,不能识别声音的大小或者特定频率的声音,传感器灵敏度可通过蓝色数字电位器调节,工作电压 3.3V ~ 5V,输出形式为数字开关量输出,即高低电平)

led 小灯1个、1k电阻1个

2. 实验步骤
按如下方式进行接线,led 正极接1k电阻的一端,电阻另一端接板子数字2口

声音传感器的接线方式如下:

VCC接板子5V电压
GND接板子GND
OUT接板子数字3口用于接收信号
3. 程序代码
```
int led = 2; // 定义数字2口控制led
int flag = 0; // 定义led点亮状态 0熄灭 1点亮 int shengyin = 3; // 定义声音传感器控制口 void setup() { pinMode(led, OUTPUT); // 定义小灯为输出模式 pinMode(shengyin, INPUT); // 定义声音控制口为输入模式 Serial.begin(9600); } void loop() { if (digitalRead(shengyin) == HIGH) { // 判断是否接收到了声音信号 Serial.println(digitalRead(shengyin)); if (flag == 0) { // 判断小灯是否亮起 flag = 1; // 标志小灯亮起 digitalWrite(led, HIGH); // 控制小灯点亮 } else { flag = 0; // 标志小灯熄灭 digitalWrite(led, LOW); // 控制小灯熄灭 } delay(1000); // 延迟1s } }
```
4. 实验结果
当声音传感器接收到声音信号的时候,就会执行 if (digitalRead(shengyin) == HIGH) 里面的语句,进行小灯的打开和关闭。digitalWrite(led, HIGH) 语句是小灯打开,digitalWrite(led, LOW) 语句是小灯熄灭。声音传感器的OUT口是当接收到声音信号就会输出高电平,反之输出低电平。在代码的最后用到了 delay(1000) 这个延迟函数,可以滤除一些杂音干扰信号。
实物接线图

实验视频

本次实验代码已上传至 gitee,详见链接:https://gitee.com/webxiaohua/arduino-learn/blob/master/15_sheng_kong_deng