STM32学习记录——声音传感器的使用

这篇具有很好参考价值的文章主要介绍了STM32学习记录——声音传感器的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录

  • 前言
  • 一、学习目的
  • 二、模块介绍
  • 三、代码记录

前言

今天记录的是声音传感器模块的学习


一、学习目的

       我的学习目的是学会使用声音传感器模块,并通过检测声音的有无控制LED的亮灭。我使用的是STM32F103C8T6核心板上的自带LED,引脚是PC13。

二、模块介绍

stm32声音传感器,嵌入式硬件,c语言,stm32,单片机,学习

       我用的是上图所示的声音传感器,它只能通过震动判断声音的有无,而不能判断声音的大小和内容等。它和一般的传感器一样拥有四个引脚(AO,DO,GND,VCC)。

        AO:模拟量输出,实时输出麦克风的电压信号。DO:当声音强度到达某个阈值时,输出高低电平信号[阈值灵敏度可以通过电位器调节]。
        我们不需要太高精度的声音检测,只需要检测声音强度够大就可以实现声控灯的效果,所以我们只需要一个DO口就可以。

接线方面:GND--GND,VCC--5V,DO--PA11(可以自己更改引脚)

三、代码记录

voice.h  (声音传感器的初始化)

#ifndef __VOICE_H
#define __VOICE_H


void 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_H

void 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口的电平,判断是否有声音(有声音时为高电平)。文章来源地址https://www.toymoban.com/news/detail-578599.html

#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学习记录——声音传感器的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HX711压力传感器学习(STM32)

    目录 原理图:​ 引脚介绍: HX711介绍工作原理: 程序讲解: 整套工程: VCC和GND引脚分别为HX711芯片的电源输入端口。 VCC引脚是连接到5V或3.3V的正电源,GND引脚是连接到地的负电源。 DOUT是HX711芯片的数据输出端口,它输出经过A/D转换处理后的24位数据。 SCK是HX711芯片的时钟输

    2024年02月05日
    浏览(56)
  • HX711压力传感器学习一(STM32)

    目录 原理图:​ 引脚介绍: HX711介绍工作原理: 程序讲解: 整套工程: VCC和GND引脚分别为HX711芯片的电源输入端口。 VCC引脚是连接到5V或3.3V的正电源,GND引脚是连接到地的负电源。 DOUT是HX711芯片的数据输出端口,它输出经过A/D转换处理后的24位数据。 SCK是HX711芯片的时钟输

    2024年02月16日
    浏览(48)
  • STM32 手势识别传感器模块(PAJ7620)学习

    目录 模块介绍: 基本部分: 引脚配置: 工作原理: 展示部分: 代码部分展示(在正点的基础上加了一个读手势去控制舵机): 视频展示: 基本部分: 手势模块搭载的芯片是PAJ7620,无论是正点原子的还是别的手势模块的底层是一致的,甚至代码也是通用的。 芯片内部集成了

    2024年02月07日
    浏览(47)
  • STM32学习笔记———几种简单传感器的数据读取

    传感器正如计算机的眼睛。从广义上讲,传感器就是一种能感知外界信息,并将这些信息按照一定规律转换成可用的电信号或其他形式的输出信号的装置,达到对信息的存储,传输,控制的目的。本文着重分析如何通过单片机分析电信号时序图实现对传感器的控制与传感器采

    2023年04月23日
    浏览(44)
  • 基于STM32的土壤湿度传感器使用

    最近在学习中用到了ADC数据采集这里使用的硬件模块为土壤湿度传感器,下面为土壤传感器相关的使用方法和代码介绍。 1、土壤湿度传感器实物图 土壤湿度传感器一共有4个引脚分别为: GND VCC DO AO,在本次实验中使用的为A0模拟引脚,因此在单片机资源上需要使用到ADC,模

    2024年02月12日
    浏览(38)
  • STM32案例学习 GY-39环境监测传感器模块

    野火STM32F1系列开发板 正点STM32F1系列开发板 STM32F103ZET6核心板 GY-39环境监测传感器模块 GY-39 是一款低成本,气压,温湿度,光强度传感器模块。工作电压 3-5v,功耗小,安装方便。 其工作原理是,MCU 收集各种传感器数据,统一处理,直接输出计算后的结果。此模块,有两种方

    2024年02月12日
    浏览(53)
  • 【STM32Cube】学习笔记(五):红外避障传感器

    本篇文章用STM32CubeMX和STM32CubeIDE软件编程,主控芯片为STM32F103C8T6驱动红外避障传感器, 通过红外避障传感器输出的电平来改变LED灯的状态,并且通过串口打印出红外避障传感器的状态信息 。由于本次设计采用已设计好的红外避障模块,所以相对来说编程比较容易,只要知道

    2023年04月15日
    浏览(32)
  • 【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

    相关头文件: misc.h 1.1 NVIC_PriorityGroupConfig函数 1.2 NVIC_PriorityGroup类型 1.3 NVIC_Init函数 1.4 NVIC_InitTypeDef类型 NVIC_IRQChannel取值 成员NVIC_IRQChannelPreemptionPriority可赋的值:最大取值15,具体有上面设置的优先级组中规定的位数决定 成员NVIC_IRQChannelSubPriority可赋的值:最大取值15,具体有

    2024年01月15日
    浏览(46)
  • 【STM32】STM32学习笔记-按键控制LED 光敏传感器控制蜂鸣器(08)

    led.h led.c key.h key.c main.c 电路图: 实物图: buzzer.h buzzere.c lightsensor.h lightsensor.cpp main.c 04-Key控制LED.rar 05-光敏传感器控制蜂鸣器.rar 参考: 【STM32】江科大STM32学习笔记汇总

    2024年04月23日
    浏览(54)
  • 基于STM32的双轴XY摇杆传感器模块使用

    本文主要介绍的是如何通过STM32核心板 控制 双轴XY摇杆传感器模块 以及将传感信息打印到串口调试助手 提示:以下是本篇文章正文内容,下面案例可供参考 外形如图所示,共五个引脚 分别是VCC GND X轴传感模拟量输出 以及 Y轴传感模拟量输出 以及一个SW按键数字量输出 摇杆

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包