打印

双D触发器的按键消抖问题

[复制链接]
10679|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一个简单的开关,因为本来就没有用单片机,所以不想增加成本,考虑用硬件消抖。用了个搜到的电路(图片附件)。  

原理就是用前端做个单稳态电路、后端做个双稳态电路,按下并松开一次按键实现输出状态翻转一次。

现在有个问题:按下去马上松开按键,很正常;但假如按下去的时间比较长,超过单稳态电路中,电容积分复位第一个D触发器的时间,在松开时又会翻转一次,而且很稳定的每次都出现,不像抖动引起的。


示波器测了下看不出什么毛刺(也有可能示波器比较渣没测出来。。),multisim简单仿真下,也不会在按键松开的那一下导致输出翻转。

有谁用过或者遇到过类似的情况么?~~~

问题的简单示意,Q1和R1指第一个D触发器的输出和复位。
短按很正常,Q1输出一个脉冲,让第二个触发器翻转一次;长按的话在松开的时候Q1又会出来一个脉冲,让第二个触发器翻转两次。

问题示意.jpg (56.71 KB )

问题示意.jpg

相关帖子

沙发
huayuliang| | 2014-9-25 21:00 | 只看该作者
元件值选取不合理。

使用特权

评论回复
板凳
jingpang|  楼主 | 2014-9-25 21:03 | 只看该作者
huayuliang 发表于 2014-9-25 21:00
元件值选取不合理。

具体呢?
C1和R1试过更大的值,比如100K+0.1uF,貌似也一样。
R2似乎只影响单稳态脉冲时长,就没考虑。

使用特权

评论回复
地板
黄一春| | 2014-9-25 21:17 | 只看该作者
C1小一点试试

使用特权

评论回复
5
jingpang|  楼主 | 2014-9-25 21:20 | 只看该作者
huayuliang 发表于 2014-9-25 21:00
元件值选取不合理。

刚换了1uF+2k,时间常数还是基本不变,还是不行。

意思是R1和C1都要更大点,时间常数大点,滤掉更长的抖动?

使用特权

评论回复
6
jingpang|  楼主 | 2014-9-25 21:21 | 只看该作者
黄一春 发表于 2014-9-25 21:17
C1小一点试试

小点?从理论来说是为什么?这样不是能滤掉的抖动更短么

使用特权

评论回复
7
jingpang|  楼主 | 2014-9-25 21:27 | 只看该作者
黄一春 发表于 2014-9-25 21:17
C1小一点试试

选C1=0.1uF,R1=2ko,作用应该和R1不变C1减小一个量级差不多吧。
结果一样。

使用特权

评论回复
8
黄一春| | 2014-9-25 21:33 | 只看该作者
试试,理论不行的  ,实体可行。

使用特权

评论回复
9
jingpang|  楼主 | 2014-9-25 21:53 | 只看该作者
黄一春 发表于 2014-9-25 21:33
试试,理论不行的  ,实体可行。

如上面的回复。试过类似的,没用呀。

前面加个施密特触发器能有用么。。。

想不通啊想不通。

使用特权

评论回复
10
jingpang|  楼主 | 2014-9-26 15:35 | 只看该作者
今天买的施密特触发器CD40106到了,在CK1前面加了两级施密特反相器,问题已解决。

网上确实也有说用施密特触发器+D触发器来搭的,这也算验证了,能用。

使用特权

评论回复
11
huayuliang| | 2014-9-26 19:57 | 只看该作者
你这个不是解决问题的根本。
IC1A 以及 R2、C2起的是什么作用?

使用特权

评论回复
12
jingpang|  楼主 | 2014-9-26 20:34 | 只看该作者
huayuliang 发表于 2014-9-26 19:57
你这个不是解决问题的根本。
IC1A 以及 R2、C2起的是什么作用?

首先说明,这个是用的网上的图片。

IC1A和R2、C2组成一个单稳态触发器,CK出现一个上升沿时,Q输出为高电平并通过R2给C2充电,充到阈值时复位D触发器使Q输出变低,也就是只保持一段时间的高电平。

从结果来看,CK上升沿->Q输出脉冲,脉冲高电平持续时间由R2/C2确定。

使用特权

评论回复
13
jingpang|  楼主 | 2014-9-26 20:37 | 只看该作者
jingpang 发表于 2014-9-26 20:34
首先说明,这个是用的网上的图片。

IC1A和R2、C2组成一个单稳态触发器,CK出现一个上升沿时,Q输出为高 ...

现在感觉只用施密特触发器和后面的那个就行,貌似可以不用IC1A了。因为看起来施密特触发器已经实现消抖了。

使用特权

评论回复
14
huayuliang| | 2014-9-27 15:53 | 只看该作者
仔细想了下,迷糊了。。。
4013,上升沿触发,IC1B只有上升沿到来才会翻转。
IC1A是触发后延迟一段时间,由高电平变为低电平,也就是产生一个下降沿,这不会使IC1B翻转。
而IC1A只有时钟输入端送入一上升沿才会使D=Q,产生一个上升沿。
电路上电后,C1会通过R1充满电荷,按键按下瞬间,C1放电。R1与C1节点电压顺变到电源电压。这是个上升沿。使IC1A触发。
按住按键,IC1A的时钟输入端会一直处于高电平···
哪里出错了???

使用特权

评论回复
15
jingpang|  楼主 | 2014-9-27 18:38 | 只看该作者
本帖最后由 jingpang 于 2014-9-27 20:43 编辑
huayuliang 发表于 2014-9-27 15:53
仔细想了下,迷糊了。。。
4013,上升沿触发,IC1B只有上升沿到来才会翻转。
IC1A是触发后延迟一段时间,由 ...

你说的都没错,就是这个电路的原理。
IC1A组成单稳态触发器,CK的上升沿使Q输出一个高电平脉冲;
这个脉冲作为IC1B的输入,使其输出翻转。

原来的问题就是按键松开的时候,本来应该是个下降沿输入,但是从结果来看,CK也有一个上升沿输入导致输出翻转。加了两级施密特触发器之后问题没了,猜测应该是IC1A-CK端输入的下降沿不光滑,有上升沿毛刺,而且每次松开按键都会有。

使用特权

评论回复
16
huayuliang| | 2014-9-27 19:15 | 只看该作者
按键松开的时候,本来应该是个下降沿输出

不对吧?

使用特权

评论回复
17
jingpang|  楼主 | 2014-9-27 20:42 | 只看该作者
huayuliang 发表于 2014-9-27 19:15
不对吧?

表达错了。应该是 按键松开时,是个下降沿“输入”。

使用特权

评论回复
18
3AG1A| | 2014-9-29 10:22 | 只看该作者
1楼电路设计的就有缺陷,短暂按下开关没问题,按下开关时间超过单稳时间,松开按钮会有抖动,单稳电路对此却无能为力。
IC1B上电初始状态不确定,应该有上电清零电路。

使用特权

评论回复
19
3AG1A| | 2014-9-29 10:26 | 只看该作者
用两只普通的小功率三极管做一个单键电子开关多简单,比用CD4013成本低,还不用消抖,直接控制固体继电器即可。

使用特权

评论回复
20
3AG1A| | 2014-9-29 10:32 | 只看该作者
jingpang 发表于 2014-9-26 15:35
今天买的施密特触发器CD40106到了,在CK1前面加了两级施密特反相器,问题已解决。

网上确实也有说用施密特 ...

CD40106可以直接用其中两个门做电子开关,后面再接CD4013纯属多余。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

19

帖子

0

粉丝