• 跳至主要导航
  • 跳到主要内容
  • 跳到主要侧边栏
  • 跳到页脚

单片机技巧

微控制器工程资源,微控制器新产品和电子工程新闻

  • 产品展示
    • 8-bit
    • 16-bit
    • 32-bit
    • 64-bit
  • 应用领域
    • 汽车行业
    • 连接性
    • 消费类电子产品
    • 产业
    • 医疗类
    • 安全
  • EE论坛
    • EDABoard.com
    • Electro-Tech-Online.com
  • 影片
    • TI单片机视频
  • EE资源
    • 快速设计
    • 电子书/技术提示
    • 常见问题
    • LEAP奖
    • 播客
    • 网络研讨会
    • 白皮书
  • EE学习中心

消除硬件和软件中的开关

一月19,2017 通过 斯科特·桑顿 2条留言

开关可以连接到微控制器(MCU)上的数字输入,但是开关触点可以在最终闭合之前的几毫秒内机械弹起并分开几次。这在继电器和螺线管上也很常见,这些继电器和螺线管的电流要比安装在PCB上的电子设备大得多,有时也称为“颤振”,因为您可以在例如控制柜进入稳定状态之前迅速听到触点闭合和断开的声音。

当MCU每秒轮询一次数字输入几次时,它可以很容易地记录开关或按钮在几毫秒内几次在0和1之间快速改变状态的次数。这可能会导致开关注册一个开/关状态,对于该状态而言,状态更改的总数将完全不正确。在任何开关之间,甚至在同一开关之间,弹跳动作都不一致,并且一天反弹的开关可能会在另一天反弹一次。另一个问题是,按下按钮的动作可能与按钮应激活的动作不同步。除了机械开关,数字输入还可以读取尖峰作为开关闭合。因此,按顺序去抖按钮或开关。

图1:弹跳开关。 (来源:github / thomasfredricks / Bounce2)

要消除硬件中的机械触点的抖动,您可以做一些事情。您可以制造或购买通常称为去抖电路的闩锁电路,也可以在软件中进行去抖处理。由于去抖动非常普遍,因此机械硬件开关可能具有内置的去抖动逻辑和锁存器。某些MCU还具有负责去抖动的软件库功能。

图2:使用两个NAND门和一些上拉电阻的SR锁存电路可以使开关去抖动。 (来源:作者,使用Fritzing.org免费工具)

另一种选择是购买一个独立的IC,它可以为您进行反跳动,例如 MAX16054,这是一个具有单个开关去抖器和闩锁的开/关控制器。 MAX16054可接受噪声或反弹信号输入,并提供干净的锁存输出。

图3:MAX16054是独立的去抖动

要处理软件中的反跳操作,请先检查您的特定MCU是否没有库。 Arduino具有防弹跳软件的“ Bounce”和“ Bounce2”版本,可作为免费库使用。为一群MCU使用软件延迟可能会不利于您,因为一群幼儿园的人可以轻松地按一下按钮,以至于MCU花费了所有时间来运行延迟循环(因为大多数MCU不运行多个线程)。延迟循环在等待软件中的跳动开关时非常普遍。开关无法永远反弹。但是,等待的时间越长,整个过程的速度就越慢,这在毫秒级的情况下是一个问题。加性延迟不是一个好主意。

图4:RC去抖电路,该电路产生具有RC时间常数的延迟。 (来源:ganssle.com:

代替NAND门锁存器的另一种硬件解决方案是RC去抖电路。尽管有弹跳开关,电容器两端的电压仍会缓慢上升,而增加元件值会使其达到逻辑高电平的速度甚至更慢。可以更改组件值,直到理想的充电和放电速率导致延迟超过反弹时间并经过稳定的间隔为止。根据杰克·甘斯尔(Jack Ganssle,见图5)的另一种选择是通过施密特触发器使开关运行,该触发器旨在消除信号中的噪声。施密特触发器的作用与比较器的作用相当,可以使弹跳平滑。

如果您有一个按钮或某种不能注册按键的开关,或者您的设计中有一个开关而事情却很奇怪,请考虑防抖。

 

提起下: 常问问题, 精选, 微控制器 标签: 阿杜伊诺, 基本, 常问问题, 格言

读者互动

评论

  1. Balasubramanian 说

    九月16,2018在2:54上午

    先生,当继电器输出端连接到交流电压接触器时,我们正在使用886 28针ic的微控制器进行计数,当继电器在计数器上进行测试时,您能建议解决问题吗,谢谢,

    回复

引用

  1. 2017年顶级微控制器故事 说:
    十二月31,2017在1:21下午

    […]消除硬件和软件中的开关的抖动当MCU每秒轮询一次数字输入几次时,它可以很容易地记录开关或按钮在几毫秒内几次在0和1之间迅速改变了状态。这可能会导致开关注册一个开/关状态,对于该状态而言,状态更改的总数将完全不正确。 […]

    回复

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

主侧边栏

快速设计

组件选择变得简单。

今天尝试
设计快速的globle

EE培训中心教室

“ee

“ee

“ee

“ee

订阅我们的新闻

订阅每周行业新闻,新产品创新等等。

立即订阅

的RSS 当前的EDABoard.com讨论

  • 16F628
  • Well Tap细胞的DRC规则
  • 电压检测器问题
  • 我是否遇到了MCP3421故障
  • 如何串联8Bit二进制EEPROM文件以获得32Bit二进制文件。

的RSS 当前Electro-Tech-Online.com讨论

  • PIC24FJ1024GB610 PWM
  • 4岁的McIntosh前置放大器上闪烁的静音照明LED
  • 对自定义esp32开发板进行编程
  • 搞笑图片主题!
  • 矩形信号

在推特上关注我们

MicroContrlTips的推文

页脚

单片机技巧

EE World在线网络

  • 快速设计
  • EE World在线
  • EDA董事会论坛
  • 电子技术在线论坛
  • 连接器提示
  • 模拟IC技巧
  • 电力电子提示
  • 传感器提示
  • 测试和测量技巧
  • 电线电缆技巧
  • 5G技术世界

单片机技巧

  • 订阅我们的新闻
  • 与我们一起做广告
  • 联系我们
  • 关于我们
在推特上关注我们在Facebook上添加我们在YouTube上关注我们 在Instagram上关注我们

版权© 2021 ·WTWH Media LLC及其许可方。版权所有。
未经WTWH Media事先书面许可,不得复制,分发,传播,缓存或以其他方式使用本网站上的资料。

隐私政策




    <address class="w6vipH0"><acronym id="M1RbrG0" class="MxE9PEd"></acronym></address>
    <param class="kprWN5a"><em id="vPMV6Pf"><fieldset id="LogDfjg"><details id="zWEbj6T" class="z0MgNrV"></details></fieldset></em></param>


      <summary id="HsDFeLh" class="HwsQNTL"></summary>
        <dl id="rFZSozH" class="rdaBiDz"></dl>
        1. <caption id="gATsAhL" class="g1SiGNQ"></caption>