STM32学习记录——声音传感器的使用
文章目录
- 前言
- 一、学习目的
- 二、模块介绍
- 三、代码记录
前言
今天记录的是声音传感器模块的学习
一、学习目的
我的学习目的是学会使用声音传感器模块,并通过检测声音的有无控制LED的亮灭。我使用的是STM32F103C8T6核心板上的自带LED,引脚是PC13。
二、模块介绍
我用的是上图所示的声音传感器,它只能通过震动判断声音的有无,而不能判断声音的大小和内容等。它和一般的传感器一样拥有四个引脚(AO,DO,GND,VCC)。
AO:模拟量输出,实时输出麦克风的电压信号。DO:当声音强度到达某个阈值时,输出高低电平信号[阈值灵敏度可以通过电位器调节]。
我们不需要太高精度的声音检测,只需要检测声音强度够大就可以实现声控灯的效果,所以我们只需要一个DO口就可以。
接线方面:GND--GND,VCC--5V,DO--PA11(可以自己更改引脚)
三、代码记录
voice.h (声音传感器的初始化)
#ifndef __VOICE_H
#define __VOICE_Hvoid VoiceSensor_Init(void);uint8_t VoiceSensor_Get(void);#endif
voice,c
当声音达到某个阈值,DO口输出高电平,对应的PA11口将呈现高电平状态,通过GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11) 这个函数读取PA11的电平状态,从而控制LED。
#include "stm32f10x.h" void VoiceSensor_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);
}
//使能PA11口uint8_t VoiceSensor_Get(void) //读取PA11口的电平
{return GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11);
}
bled.h (由DO口的高低电平检测控制LED的亮灭)
#ifndef __BLED_H
#define __BLED_Hvoid BLED_Init(void);
void BLED1_ON(void);
void BLED1_OFF(void);void BLED1_Turn(void);#endif
bled.c
#include "stm32f10x.h"
#include "Delay.h"void BLED_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_13);
}void BLED1_ON(void){ GPIO_ResetBits(GPIOC,GPIO_Pin_13);
}void BLED1_OFF(void){GPIO_SetBits(GPIOC,GPIO_Pin_13);
}void BLED1_Turn(void){if(GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_13)==0){GPIO_SetBits(GPIOC,GPIO_Pin_13);}else{GPIO_ResetBits(GPIOC,GPIO_Pin_13);}
}
main.c
通过读取PA11口的电平,判断是否有声音(有声音时为高电平)。
#include "stm32f10x.h"
#include "Delay.h"
#include "bled.h"
#include "voice.h"int main(void)
{BLED_Init();VoiceSensor_Init();while (1){if (VoiceSensor_Get() == 1) //如果PA11口为高电平,即有声音,灯亮{BLED1_ON();}else{BLED1_OFF();}}
}
STM32学习记录——声音传感器的使用相关推荐
- STM32学习记录——光敏传感器的使用
文章目录 前言 一.学习目的 二.模块介绍 三.代码记录 总结 前言 只做学习记录,记录自己如何从零学会使用一个模块,仅仅只是会用,缺乏专业知识.如果需要了解更多原理,可以从我推荐的技术大佬的文章中获 ...
- STM32学习记录——烟雾传感器的使用
文章目录 前言 一.学习目的 二.模块介绍 三.代码记录 总结 前言 这次记录一下烟雾传感器的学习,由于烟雾传感器的资料比较杂,算法比较多,对我来说也比较难,所以我的代码中算法部分是不太具有参考价值, ...
- STM32学习——MPU6050姿态传感器
STM32移植(抄)起来特别爽... MPU6050简介 1.MPU6050是一款六轴(三轴加速度+三轴角速度(陀螺仪))传感器 2.MPU6050含有一个第二IIC接口,可用于连接外部磁力传感器 3 ...
- STM32学习记录0002-STM32初探
一.为什么选择STM32 1.1 什么是STM32 是一种新的基于ARM内核的32位MCU系列 1.内核为ARM公司为要求高性能.低成本.低功耗的嵌入式专门设计的Cortex-M内核,是一种标准的AR ...
- STM32学习记录:输入捕获应用
目录 前言 一.输入捕获的应用 1.1.测量脉宽或者频率 1.2.测量频率的步骤方法 1.3.测量脉宽的步骤方法 二. 输入捕获工作过程 2.1.CH1为例,输入捕获工作过程 2.2.输入通道 2.3 ...
- STM32学习记录0011——AD转换
一.STM32 ADC 1.1参考资料 <STM32不完全手册>第20章 <STM32中文参考手册>第11章 芯片数据手册ADC部分+GPIO部分 1.2 什么是ADC ADC ...
- stm32学习记录之0.96寸OLED显示屏配置
目录 0.96寸oled屏概述 工程实现 GPIO初始化 SSD1306 初始化 启动与停止函数 各个功能函数 0.96寸oled屏概述 本次实验所用oled显示屏为黄蓝屏,即屏上1/4 部分为黄光, ...
- STM32学习记录——74HC595四位数码管显示
数模管作为STM32的一个重要外设,由于其成本低.稳定,被用于许多场景中.本篇文章来介绍下四位数码管的使用方法. 数码管显示 一.数码管的分类 二.74HC595芯片(串入并出) 三.原理图 四.代码 ...
- stm32学习记录——继电器
STM32控制继电器 jdq.c #include "jdq.h"void relay_init(void) {GPIO_InitTypeDef GPIO_InitStructur ...
最新文章
- 美团、饿了么,你凭什么让我多等几分钟?
- 在GHOST的WINXPSP2安装SQL SERVER2000个人版时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装之前,必须重新启动计算机。”错误的解决方法...
- 对于Activity的理解
- 2015北京网络赛 G题 Boxes bfs
- 什么是cname a记录
- zabbix安装过程
- PHP key() 函数
- 【DigSci 科学数据挖掘大赛】冠军方案关键技术解析
- 苹果无人车四个最新专利:手势控制变道、车辆导流、路况感知及车辆控制
- servlet的url-pattern匹配规则详细描述
- Java笔记(1):final关键字
- python批量查询(excel)数据
- TypeError: _typeof4 is not a function,解决微信小程序报错
- netty自定义通讯协议校验魔数
- Swift - 描边文字效果
- 童年汇老师教你如何给宝宝选玩具
- 3.17 学习情况总结
- 李宏毅作业七其三 Network Compression (Network Pruning)
- 聊聊C10K问题及解决方案
- android防拆机方案,拆机狂人必备 iFixit Android客户端试用
热门文章
- webots仿真机器人平台
- Mac安装搭建electron教程
- electron调用python_electron教程(一): electron的安装和项目的创建
- matlab求单自由度振动方程为,单自由度振动方程与Matlab/Simulink求解
- FPGA学习altera 系列 第十七篇 自动售货机设计
- c语言中英文翻译 毕业设计,c语言中英文翻译资料 毕业论文(设计).doc
- 谷歌地图找客户——拒绝躺式开发客户
- 从下载 SQL Server 到链接的问题,基本手把手跑
- 家庭账务管理系统html,兴华家庭理财管理系统
- 【中级软考—软件设计师】1计算机组成与体系结构1.1数据的表示【****】:1.1.2码制