STM32之蜂鸣器和按键

一、蜂鸣器的原理与应用

  • 基本概念

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

  • 工作原理

蜂鸣器一般分为两类:有源蜂鸣器 or 无源蜂鸣器,有源或者无源指的是蜂鸣器内部是否具有振荡电路,无源蜂鸣器内部没有振荡器,所以通电之后是不会鸣叫,必须提供一个驱动信号。

三极管在电路中一般有截止、放大、饱和三种工作状态,不同状态下作用不同,如下所示:

截止状态 :此时三极管的发射结反偏,集电结也反偏(以 NPN 型三极管为例,即基极电压低于发射极电压 ,且集电极电压高于基极电压),基极电压低于一定阈值,集电极和发射极之间几乎没有电流流动,各电极电流几乎为 0 ,相当于电路中的断路,主要用于电路的关断控制,如在开关电路中,截止状态下三极管可切断电路通路,使相关电路不工作。

放大状态 :发射结正偏,集电结反偏(NPN 型三极管基极电压高于发射极电压,且集电极电压高于基极电压),基极电流的微小变化能引起集电极电流较大的变化,常用于信号放大电路,如在音频放大器中,可将微弱的音频电信号进行放大,以便驱动扬声器等负载设备。

饱和状态 :发射结和集电结均处于正偏(NPN 型三极管基极电压高于发射极电压,且集电极电压低于基极电压),当基极电流增大到一定程度后,集电极电流不再随基极电流的增加而增大,三极管相当于一个闭合的开关,此时集电极和发射极之间的电压降很小,可用于实现电路的导通,如在数字电路中,作为开关使用来控制电路的通断,实现逻辑功能。

  • 程序设计

注意:如果用户不想计算寄存器的物理地址,则可以选择使用ST公司提供的寄存器地址,这些地址都定义在stm32f4xx.h头文件中

提示:如果想要提高程序的开发效率,则可以选择使用库函数实现对硬件寄存器的配置,但是不同的外设会提供不同的函数接口,如果想要知道外设的具体的库函数的使用流程,则可以阅读每个外设源文件(stm32f4xx_xxx.c)的开头注释

  1. 输出高电平
  1. 输出低电平

二、按键检测的原理与应用

  • 基本概念

在单片机系统中,按键是最基础的人机交互元件,它通过简单的机械或电容触控方式,将用户的操作指令转化为电信号,为单片机提供精准的输入控制。按键的种类是比较丰富的,包含机械按键(实体按压)、薄膜按键(轻触式)、电容式按键(非接触感应)等,适配不同场景需求。

轻触按键由于微动开关的特性以及体积小、质量轻的优势在家用电器方面得到了广泛的应用,比如电视机按键、电脑按键、光驱按键、键盘按键、显示器按键、照明按键等,按键属于最常用的人机交互方式。

  • 工作原理

轻触按键只要轻轻的按下按键就可以开关接通,松开时就断开连接,实现原理主要是通过轻触按键内部的金属弹片受力弹动来实现接通和断开的。

按键通过内部金属弹片实现通断,按下时触点闭合,松开后断开。机械触点动作会伴随5ms-20ms的抖动,单片机可以通过扫描或中断方式检测按键状态,实现"按下→检测→响应"的闭环逻辑。

  • 电路分析
  • 程序设计
  • 消抖处理

按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

消抖处理的方案可以分为硬件消抖和软件消抖,硬件消抖可以使用RS触发器或者RC积分电路,如果采用方案,则会导致硬件电路的设计变得复杂。

软件消抖指的是利用程序进行消抖处理,最常用的一种方案就是延时消抖,当用户按下按键时,先让CPU进行延时,当延时时间到达后,机械弹片已经稳定,此时再让CPU读取IO口的电平状态,可以提高程序的可靠性。

一般软件的延时时间选择在5ms~10ms左右时比较合理的,如果延时太长时间,会导致程序的实时性下降。

  1. 软件模拟

软件延时的一种方案是利用循环实现,比如在循环中让变量的值不断递减,达到一个时间差,这种方案有一个弊端:很难把握时间,所以利用逻辑分析仪可以进行程序调试。

  1. 用定时器

利用MCU的定时器资源实现,但是该方案也有弊端:写代码较为复杂,并且需要使用MCU的定时器外设。

相关推荐
hongmai6668883 分钟前
ESP32-C61-WROOM-1-N8R2:Wi-Fi 6与RISC-V融合的中坚力量
人工智能·单片机·嵌入式硬件·物联网·智能家居·risc-v
炸膛坦客9 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
华清远见IT开放实验室14 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
AI的探索之旅16 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao16 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch16 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my17 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯18 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学19 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
CedarQR20 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json