【STC32G12K128开发板】第3-7讲:声音探测传感器

news2024/9/22 1:20:51

第3-7讲:声音探测传感器

    1. 学习目的
  1. 了解声音探测传感器模块的作用。
  2. 掌握单片机编程读取声音探测传感器模块引脚输出状态,从而判断周围环境声音强度有没有达到设置的阈值。
    1. 声音探测传感器简介

声音探测传感器模块对环境声音强度敏感,常用来检测周围环境的声音强度,当环境声音强度达不到设定阈值时,OUT引脚输出高电平,当外界环境声音强度超过设定阈值时,模块OUT引脚输出低电平。声音探测传感器在生活中比较常见的应用是楼道的声控照明。声音探测传感器如下图所示。

图1:声音探测传感器

  1. 声音探测传感器模块特性
  1. 可以检测周围环境的声音强度,需要注意的是:该传感器只能识别声音的有无(根据震动原理)不能识别声音的大小或者特定频率的声音。
  2. 灵敏度可调(图中蓝色数字电位器调节)。
  3. 工作电压范围:直流电压(3.3~5)V。
  4. 输出形式:数字开关量输出(0和1高低电平)。
  5. 设有固定螺栓孔,方便安装。
  6. 小板PCB尺寸:3.2cm * 1.7cm。
  1. 引脚说明

声音探测传感器模块的引脚如下图所示。

表1:声音探测传感器引脚描述

序号

针脚名称

功能描述

1

VCC

模块3.3V/5V供电正。

2

GND

模块供电负。

3

OUT

数字开关量输出(高低电平)。

    1. 软件设计
      1. 声音探测实验
  • 注:本节的实验是在“实验2-6-1:串口1数据收发实验”的基础上修改,本节对应的实验源码是:“实验3-7-1:声音探测传感器实验”。
        1. 实验内容

单片机实时读取声音探测传感器模块输出引脚的状态,以此判断环境声音强度有没有达到设定阈值。

  1. 高电平:环境声音强度达不到设定阈值,指示灯D1熄灭。
  2. 低电平:环境声音强度达到设定阈值,指示灯D1点亮,串口输出提示信息。
        1. 代码编写

本节的代码比较简单,我们直接在“main.c”文件中编写相关的代码。

  1. 定义引脚

首先,定义连接声音探测传感器模块输出的引脚,本例中,我们用P5.1连接模块的输出引脚,定义如下。

代码清单:引用头文件

  1. sbit sensor_in = P5^1;     //用于读取声音探测传感器模块输出引脚的状态
  1. 读取引脚状态

程序初始化时将P5.1引脚配置为准双向,主循环中不断读取该引脚状态,如为高电平,则认为有人经过,代码清单如下。

代码清单:主函数

  1. /************************************************************************** 
  2. 功能描述:主函数 
  3. 参    数:无 
  4. 返 回 值:int类型 
  5. **************************************************************************/  
  6. int main(void)  
  7. {  
  8.     P2M1 &= 0xBF;   P2M0 &= 0xBF;     //设置P2.6为准双向口(LED1)  
  9.     P3M1 &= 0xFE;   P3M0 &= 0xFE;     //设置P3.0为准双向口(串口1的RxD)  
  10.     P3M1 &= 0xFD;   P3M0 |= 0x02;     //设置P3.1为推挽输出(串口1的TxD)  
  11.     P5M1 &= 0xFD;   P5M0 &= 0xFD;     //设置P5.1为准双向口 (声音探测传感器模块输出)  
  12.     uart1_init();                     //串口1初始化  
  13.     while(1)  
  14.     {  
  15.         if(sensor_in == 0)                 //声音超过设置的阈值,传感器模块OUT引脚输出低电平  
  16.         {  
  17.             led_on(LED_1);                 //点亮用户指示灯D1  
  18.             printf("sound detected!\r\n"); //串口输出提示信息  
  19.             delay_ms(100);                 //延时100ms,方便在串口调试助手中观察实验数据  
  20.         }  
  21.         else                       
  22.         {  
  23.             led_off(LED_1);                //熄灭用户指示灯D1  
  24.         }  
  25.     }  
  26. }  
        1. 硬件连接

如下图所示,将声音探测传感器安装到开发板的J22端子上。

图2:硬件连接

        1. 实验步骤
  1. 解压“…\第3部分:配套例程源码”目录下的压缩文件“实验3-7-1:声音探测传感器实验”,将解压后得到的文件夹拷贝到合适的目录,如“D\STC8”(这样做的目的是为了防止中文路径或者工程存放的路径过深导致打开工程出现问题)。
  2. 双击“…\sound_detection\project”目录下的工程文件“sound_detection.uvproj”。
  3. 点击编译按钮编译工程,编译成功后生成的HEX文件“sound_detection.hex”位于工程的“…\sound_detection\Project\Object”目录下。
  4. 打开STC-ISP软件下载程序,下载使用内部IRC时钟,IRC频率选择:24MHz。
  5. 电脑上打开串口调试助手,选择开发板对应的串口号,将波特率设置为9600bps。
  6. 程序运行后,在没有较强声音信号的情况下,可观察到开发板用户指示灯D1熄灭,串口无输出。对着声音传感器咳嗽、拍巴掌或大声说话时可以观察到指示灯D1点亮,并通过串口输出提示信息。

图3:串口调试助手中观察结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1948053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Linux桌面初始化问题

问题 启动vnc桌面,提示问题 定位 从[t]csh手册 可以看到,其初始化流程 经定位,是.cshrc的这段代码存在,导致桌面初始化异常。 [wanlin.wangicinfra-cn-172-16-0-115 ~]$ cat .cshrc ...部分省略... # Environment for anac…

模拟电子技术-实验五 单管放大电路仿真实验

实验五 单管放大电路仿真实验 一.实验类型 二.实验目的 1、熟悉multisim的仿真实验法,熟悉multisim中双踪示波器和信号发生器的设置和使用方法。学习电压表的使用方法。 2、熟悉放大电路的基本测量方法,了解使放大电路不失真地…

Spring中@PostConstruct注解的使用

1.描述 1.1 背景 最近在做一个系统交互日志模块,要监控一个http请求,并记录请求与响应日志。项目中使用RestTemplate来发送http请求,所以打算给RestTemplate设置拦截器,来进行自定义操作。但是,只对当前类生效&#x…

《昇思25天学习打卡营第23天|RNN实现情感分类》

使用RNN进行情感分类:基于IMDB数据集的LSTM应用 引言 情感分析是自然语言处理(NLP)中的一个重要应用,广泛用于电影评论、社交媒体等文本数据的情感分类任务。本文将介绍如何使用递归神经网络(RNN)实现情感…

InternLM学习笔记

入门岛 1. Linux基础知识 2. Python 基础知识 from collections import Countertext """ Got this panda plush toy for my daughters birthday, who loves it and takes it everywhere. Its soft and super cute, and its face has a friendly look. Its a …

[linux] seqeval安装报错

新建一个新的环境 然后安装: # 不能拷贝别人的环境再安mebert_wash的环境。有冲突。我需要重新安一个空的conda环境,再安装。 # conda create -n wash python3.10 ipykernel python -m pip install --upgrade setuptools python -m pip install --upgr…

函数-递归调用

目录 一、基本介绍 二、递归能解决什么问题? 三、递归案例 1、打印问题 2、阶乘问题 四、递归重要规则 五、课堂练习 1、斐波那契数 2、猴子吃桃问题 3、汉诺塔 一、基本介绍 1、简单地说:递归就是函数自己调用自己,每次调用时传入…

利用python自动化运维i脚本实现远程连接服务器并实现相应命令

目录 前言: 一.调用的python库介绍 二.在主机上安装好相应的库 2.1激活虚拟环境 三.代码实现以及解析 四.效果的实现 五.致谢 前言: 在当今快速发展的技术环境中,自动化运维已成为 IT 基础设施管理的关键组成部分。它不仅可以显著提…

SPSS个人版是什么软件

SPSS是一款数据统计、分析软件,它由IBM公司出品,这款软件平台提供了文本分析、大量的机器学习算法、数据分析模型、高级统计分析功能等,软件易学且功能非常强大,可以使用SPSS制作图表,例如柱状、饼状、折线等图表&…

CasaOS设备使用Docker安装SyncThing文件同步神器并实现远程管理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于 HTML+ECharts 实现智慧景区数据可视化大屏(含源码)

构建智慧景区数据可视化大屏:基于 HTML 和 ECharts 的实现 随着旅游业的蓬勃发展,智慧景区的概念逐渐深入人心。通过数据可视化,景区管理者可以实时监控游客流量、设施使用情况以及环境状况,从而提升游客体验和管理效率。本文将详…

昇思学习打卡-22-生成式/DCGAN生成漫画头像

文章目录 DCGAN网络数据处理构造网络生成器判别器损失函数优化器 结果展示 我们将学习DCGAN网络如何数据处理、设置网络,包括生成器、判别器、损失函数、优化器等。 DCGAN网络 DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Ad…

数据结构之《队列》

在数据结构之《栈》章节中学习了线性表中除了顺序表和链表外的另一种结构——栈,在本篇中我们将继续学习另一种线性表的结构——队列,在通过本篇的学习后,你将会对栈的结构有充足的了解,在了解完结构后我们还将进行栈的实现。一起…

JavaScript——变量与运算符、输入输出、判断、循环

文章目录 前言概述使用 js从文件引入 js 代码importjs 的作用变量计算输入格式化输出保留小数向上取整,向下取整条件判断循环总结 前言 为了监督自己的进度,把学习任务一点点都写出来,写多少就算多少,不求完美,只求完…

计算的是如何工作的

文章目录 一. 冯诺依曼体系结构二. CPU三. 指令*四. CPU是如何执行指令的 一. 冯诺依曼体系结构 冯诺依曼是计算机领域的祖师爷, 被评为"二十一世纪最伟大的"全才"" 冯诺依曼提出了冯诺依曼体系结构, 定义了一台计算机, 由这几部分构成: 输入设备: 包括…

STM32---HAL库外设配置--串口外设配置及使用

一:首先按照本人的时钟配置博客配置,配置好基础时钟 二:选择对应串口进行选中,然后配置 配置如下:首先配置成异步收发模式,如图中的序号1 参数设置界面选择默认即可如下图 下图中的1不用设置,默认即可。2…

增长新引擎,构建基于 CDP 的用户运营竞争力

本文将围绕“企业如何通过构建基于 CDP 的用户运营体系提升业务增长”这一核心,详细介绍企业数据化运营现状,拆解用户运营目标,展示神策 CDP 的关键能力以及用户运营策略落地的完整路径。 一、洞察:企业数据化运营面临的挑战 当前…

系统编程--Linux下文件的“其他操作”函数

这里写目录标题 文件存储理论补充dentry、inode 文件其他操作stat函数作用函数原型代码(以获取文件大小为例)补充(获取文件类型) lstat函数作用函数原型代码补充(获取文件权限)总结 tipslink函数作用简介函…

看板项目之vue代码分析

目录: Q1、vue项目怎么实现的输入localhost:8080就能自动跳到index页面Q2、组合饼状图如何实现Q3、vue项目如何实现环境的切换Q4、vue怎么实现vue里面去调用js文件里面的函数 Q1、vue项目怎么实现的输入localhost:8080就能自动跳到index页面 …

OZON家庭洗剂产品,OZON热卖家庭洗剂用品有哪些

OZON平台上家庭洗剂产品的热销情况主要反映了俄罗斯家庭对于环保、高效、多功能的清洁用品的需求。根据最新数据和市场趋势,以下是一些OZON平台上热卖的家庭洗剂用品:OZON热卖家庭洗剂用品:D。DDqbt。COm/74rD Top1 洗碗液 ЭКО. Гел…