Arduino Uno 实验14——声音传感器

声音传感器模块通过电容式驻极体话筒捕捉声波,将其转换为电压信号,进而转化为0-5V的电压。当环境声音超过设定阈值时,DO口输出低电平,可用于声控开关。通过电位器可以调节灵敏度,输出形式为数字开关量(0或1)。实验表明,无声音时输出高电平,有声音时输出低电平。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声音传感器简介

  声音传感器的作用相当于一个话筒(麦克风)。它用来接收声波,显示声音的振动图像,但不能对噪声的强度进行测量。
  该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压。这一电压随后被转化成0-5V的电压,经过A/D转换被数据采集器接受,并传送给主板。
 &emsp由麦克风,电压比较器IC(LM393),电位器,晶体管,LED和一些其他无源元件(电阻器和电容器)组成。
在这里插入图片描述

在这里插入图片描述

使用说明:

  1.声音模块对环境声音强度最敏感,一般用来检测周围环境的声音强度
  2.在环境声音强度达不到设定阈值时,模块DO口输出高电平
   当外界环境声音强度超过设定阈值时,模块DO输出低电平
  3.输出DO可与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的声音,可直接制动继电器模块,组成声控开关。
  4.可通过电位器调节灵敏度。
  5.有电源指示灯,比较器输出有指示灯。
  6.只能识别声音的有无(根据震动原理)不能识别声音的大小或者特定频率的声音。
  输出形式 数字开关量输出(0和1高低电平)

声音传感器模块的使用

实验一:声音模块的读取

项目要求:

  观察说话和没说话,声音模块的高低电平的输入(数字引脚)

电路搭建

在这里插入图片描述

参考程序
int  syPin = 3;
void setup(){
      pinMode(syPin,INPUT); 
      Serial.begin(9600);
}
void loop() {
  int syValue =digitalRead(syPin);
  Serial.print("syValue =");
  Serial.println(syValue);
  delay(200);
}
实验现象

  当没有声音时,输入的是高电平(数字1)。
  当有声音时,输入的是低电平(数字0)。
注意 :要调节好模块的灵敏度,不说话时候,信号指示灯灭,说话时候,信号指示灯亮。

原理图

在这里插入图片描述
在这里插入图片描述

### Arduino Uno 和 HC-SR04 超声波传感器项目开发 #### 连接方法 HC-SR04超声波传感器通过四个引脚与ArduinoUno相连,分别是GND, VCC, Trig(触发),以及Echo(回响)。具体的连接方式如下: - **GND**——接地线,连接至Arduino的GND引脚; - **VCC**——电源线,通常为5V供电,连接至Arduino的5V引脚; - **Trig**——触发信号输入端子,用于发送启动测距命令,建议连接到数字I/O 2号引脚; - **Echo**——回响信号输出端子,用来接收返回的时间数据,推荐连接到数字I/O 3号引脚[^4]。 #### 示例代码 下面是一个简单的Arduino程序示例,展示了如何配置和使用HC-SR04超声波传感器来检测前方障碍物的距离,并将结果打印到串行监控器中。此代码还利用了`NewPing`库简化操作流程[^1]。 ```cpp #include <NewPing.h> #define TRIGGER_PIN 2 // 定义TRIG针脚编号 #define ECHO_PIN 3 // 定义ECHO针脚编号 #define MAX_DISTANCE 200 // 设置最大测量范围(cm) // 创建一个名为 sonar 的 NewPing 类实例对象 NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); void setup() { Serial.begin(9600); // 初始化串口通信波特率为9600bps } void loop() { delay(50); // 延迟等待至少50ms以确保每次测量间隔足够大 int distance = sonar.ping_cm(); // 获取当前距离值 if (distance == 0 || distance >= MAX_DISTANCE){ Serial.println("Out of range"); }else{ Serial.print(distance); Serial.println(" cm"); } } ``` 这段代码实现了基本的功能需求,即每隔一段时间向指定方向发射一次超声波脉冲,并计算从发出到收到反射所需时间从而得出目标物体间的直线距离。最终的结果会被实时显示在电脑上的串行监视窗口内[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值