十天玩转Arduino_15_声控灯
伯约2233
2025年10月10日 23:27
收录于文集
共44篇

声音传感器介绍

声音传感器是一种将声音信号(机械波)转化为电信号的电子元件,其核心是通过 “声 - 电转换” 实现对声音的检测(如有无声音、声音大小、频率等)。

声音传感器先通过驻极体麦克风、压电片等声敏元件,将声音振动(机械波)转为微弱电信号;再经放大、滤波优化,部分还会转成数字信号;最后输出模拟或数字信号,实现声音有无或强度检测,用于声控灯、噪音检测等场景。

本次实验我们借助声音传感器来实现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