关闭

电子产品的按键“消抖”处理和Arduino中的Bounce2头文件

标签: arduino消抖处理Bounce库文件
1611人阅读 评论(0) 收藏 举报
分类:

在电子产品的设计中,考虑到产品的性能与质量,常常需要对按键进行一系列的处理,最常见的就是“消抖”,网络上这方面资料很多,我这里对消抖方法进行一定的总结归纳,另外针对Arduino,介绍其Bounce2库,调用该库既可以制作出“完美”的按键。

 先介绍为什么需要“消抖”:对于一个机械开关,当你按下按键的时候并不会有一个完全的信号,而是会有几毫秒的抖动,采用信号波形表示如下:

  常用的消抖方式可分为两种,一种为硬件消抖,另外一种是软件消抖。硬件消抖需要额外使用器件,增加了成本,并不常用,这里做简要的介绍。

 硬件消抖是采用了R-S触发器,其基本原理是按下开关响应之后,利用R-S触发器对输入端进行封锁,确保输入不会抖动。


 上述电路是常见的一种方式,按下开关前:S'=0,R'=1,输出为A=1,A'=0;按下开关之后:S'=1,R'=0,输出为A=0,A'=1,由于存在着抖动,即R'会在0和1之间跳变,但是此时输出不会变动,因为A=0将与非门封锁,输出A’恒为1,这就是硬件消抖的基本原理,但因为额外增加了成本并不常用。

 最为常用的消抖方式就是通过软件消抖,该方法广泛应用于单片机硬件电路设计中,其基本的原理就是延时消抖,当按键的一刹那,并不让CPU立即处理指令,而是等待一个时间间隔,让按键信号稳定下来。这里我不对具体程序进行介绍,而是给出Arduino中专门处理按键的一个库文件实现按键的“消抖”。该库文件为Bounce2.h,之前的版本是Bounce1,Bounce2是其改进版,二者在使用上有所不同,这里我介绍如何在Arduino在中通过调用Bounce2.h库文件制作一个完美的按键,相关的语句如下:

#include<Bounce2.h> //调用库文件

const unsigned int USE_PIN=13; //定义USE_PIN为Arduino主板上的第13引脚

Bounce use_button=Bounce(); //创建一个Bounce对象

void setup()

{

pinMode(USE_PIN,OUTPUT);

use_button.attach(USE_PIN); //调用Bounce类下的attach()函数,定义按键

use_button.interval(20); //调用interval()函数实现延时20ms的操作

}

上述就是关于处理消抖的相关语句,当然Bounce类下还有一些其他函数,可以帮助我们进行按键的操作,有了这个库文件我们在进行Arduino设计时更加方便。

需要说明的是这个库文件并不是Arduino自带的,需要去网站上进行下载,然后将其解压到Arduino安装文件夹下的libraries文件夹下即可

下载网址为:www.arduino.cc/playground/Code/Bounce

网站上还有一些其他介绍,可以增加对这个库文件的了解。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:11037次
    • 积分:229
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档
    最新评论