合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)

简介: 合肥中科深谷嵌入式项目实战——人工智能与机械臂(五)

⭐️定时器和按键消抖

我们前面介绍了实现stm32通过GPIO控制蜂鸣器响。本文会介绍定时器原理和按键消抖的相关知识。

🌟定时器

✨什么是定时器

STM32定时器是一种存在于STM32单片机中的外设,用于实现定时功能。STM32总共有8个定时器,包括2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5)和2个基本定时器(TIM5、TIM6)。不同种类的定时器具有不同的功能和特点。

✨定时器的作用

STM32定时器具有多种功能,包括:

  1. 计时:STM32定时器可以用于生成精确的定时时间,通过预分频器设置定时器的计数频率,以及通过重装载值(arr)设置定时器的计数量,从而控制定时器的计时时间。
  2. 中断:定时器可以产生中断,当定时器计数到设定值时,会产生一个中断信号,可以用于触发其他操作或中断处理程序。
  3. PWM产生:定时器可以配置为产生脉冲宽度调制(PWM)信号,用于控制电机速度、LED亮度调节、风扇风速调节等应用。
  4. 输入捕获:定时器可以监测外部信号的边沿并记录时间戳,用于测量脉冲宽度、频率或捕获外部事件的时间点,以及捕获高低电平长度。
  5. 编码器接口功能:一些定时器还具有编码器接口功能,可以处理旋转编码器的输入信号,并提供方向和计数功能,在电机上使用较多。

总的来说,STM32定时器通过多种功能实现了精确的定时操作,适用于各种不同的应用场景。

🌟按键消抖

✨什么是按键消抖

按键消抖是为了避免在按键按下或是抬起时电平剧烈抖动带来的影响。由于机械触点的弹性作用,按键开关在闭合时不会立刻稳定的接通,在断开时也不会一下子断开,按键在闭合和断开的瞬间会有一连串的抖动。按键消抖的关键是提取稳定的低电平(或高电平)状态,滤除按键稳定前后的抖动脉冲。

✨按键抖动

      通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。

      抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这是一个很重要的时间参数,在很多场合都要用到。按键稳定闭合时间的长短则是由操作人员的按键动作决定的,一般为零点几秒至数秒。为确保CPU对键的一次闭合仅作一次处理,必须去除键抖动。在键闭合稳定时读取键的状态,并且必须判别到键释放稳定后再作处理。

✨按键消抖方法

硬件消抖

适用于按键较少时

  • (1)RS触发器

      图中两个“与非”门构成一个RS触发器。当按键未按下时,输出为0;当键按下时,输出为1。此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),只要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。这一点通过分析RS触发器的工作过程很容易得到验证。

  • (2)电容器

      利用电容的放电延时,采用并联电容法,也可以实现硬件消抖。如图所示,由于电容两端电压不能突变,使得按键两端的电压平缓变化,直至电容充放电到达一定电压阈值时,单片机才读取到电平变化。

软件消抖

如果按键较多,常用软件方法消抖

  • (1)延时函数按键消抖

      检测出键闭合后执行一个延时程序,5ms~10ms(取决于机械特性)的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。

优点:简单方便

缺点:程序在空跑浪费CPU资源、不够精准

  • (2)定时器按键消抖

      原理:按键采用中断驱动方式,当按键按下以后触发按键中断,在按键中断中开启一个定时器,定时周期为 10ms,当定时时间到了以后就会触发定时器中断,最后在定时器中断处理函数中读取按键的值,如果按键值还是按下状态那就表示这是一次有效的按键。

⭐️总结

我们学习了定时器的相关知识,以及在实际编程中遇到了按键消抖要怎么处理。

相关文章
|
4月前
|
传感器 数据采集 人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)
|
4月前
|
人工智能 机器人
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(二)
|
4月前
|
传感器 数据采集 人工智能
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(四)
|
4月前
|
人工智能 编解码
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
合肥中科深谷嵌入式项目实战——人工智能与机械臂(六)
|
7天前
|
机器学习/深度学习 人工智能 算法
探究人工智能在现代医疗诊断中的应用与挑战
本文旨在深入探讨人工智能技术在现代医疗诊断领域中的应用及其所面临的挑战。随着科技的飞速发展,人工智能已逐渐渗透到医疗行业的多个方面,特别是在医疗诊断领域,AI的应用不仅提高了诊断的准确性和效率,还极大地减轻了医生的工作负担。然而,尽管人工智能在医疗诊断中展现出巨大的潜力,其发展过程中也遇到了一系列挑战,如数据隐私保护、算法的透明度和公平性等问题。本文通过对现有文献的综合分析,阐述了人工智能在医疗诊断中的具体应用案例,分析了这些技术的优势与不足,并对其未来的发展趋势进行了预测和建议。
24 5
|
7天前
|
机器学习/深度学习 人工智能 搜索推荐
探索人工智能在医疗诊断中的应用及其挑战
人工智能技术在医疗领域的应用正迅速改变着我们理解健康和疾病的方式。本文将探讨AI在医疗诊断中的具体应用,包括影像诊断、病理分析及个性化治疗方案的制定,并分析其带来的革命性变化。然而,技术的局限性、数据隐私和伦理问题也不容忽视。尽管面临诸多挑战,但随着技术的不断进步,AI在医疗诊断中的潜力巨大,未来将更好地服务于人类健康事业。
|
7天前
|
数据采集 人工智能 安全
软件测试中的人工智能应用与挑战
在这篇文章中,我们将深入探讨人工智能(AI)在软件测试中的应用及其所面临的挑战。通过分析当前的技术趋势和具体案例,揭示AI如何提高测试效率和准确性,并指出在实施过程中遇到的主要问题及可能的解决途径。
19 1
|
13天前
|
机器学习/深度学习 传感器 人工智能
AI与未来医疗:重塑健康管理新格局随着人工智能(AI)技术的飞速发展,医疗行业正迎来一场前所未有的变革。AI不仅在数据分析、诊断支持方面展现出巨大潜力,还在个性化治疗、远程医疗等多个领域实现了突破性进展。本文将探讨AI技术在医疗领域的具体应用及其对未来健康管理的影响。
人工智能(AI)正在彻底改变医疗行业的面貌。通过深度学习算法和大数据分析,AI能够迅速分析海量的医疗数据,提供精准的诊断和治疗建议。此外,AI在远程医疗、药物研发以及患者管理等方面也展现出了巨大的潜力。本文将详细探讨这些技术的应用实例,并展望其对健康管理的深远影响。
|
3天前
|
数据采集 人工智能 自然语言处理
软件测试中的人工智能应用与挑战
本文探讨了人工智能在软件测试中的应用及其所面临的挑战。通过分析AI技术如何优化测试流程、提高测试效率以及目前存在的局限性,文章提供了对软件测试未来发展趋势的深入思考。
|
3天前
|
机器学习/深度学习 人工智能 搜索推荐
探究人工智能在医疗健康中的应用与挑战
本文深入探讨了人工智能(AI)在医疗健康领域中的应用及其所面临的挑战。随着科技的不断进步,AI技术在医疗领域的应用日益广泛,从疾病诊断、治疗方案制定到患者护理等方面都展现出巨大的潜力。然而,尽管AI在医疗健康领域取得了显著成果,但也面临着数据隐私、算法偏见和伦理道德等方面的挑战。本文将详细介绍这些应用和挑战,并探讨可能的解决方案,以期为读者提供对AI在医疗健康领域发展的全面理解。

热门文章

最新文章