极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9603|回复: 5

请问循环中有delay如何迅速检测按钮动作

[复制链接]
发表于 2013-4-12 11:03:45 | 显示全部楼层 |阅读模式
本人新手编程不会,只能简单参考修改别人的。一直想制作一个动态的点阵尾灯,这个也是我学习arduino的动力。主要功能包括行车时播放动态的表情,转向按钮触发转向动画提示,刹车开关触发刹车提示都在同一个点阵屏上完成。设想起来似乎都是理所当然的,自己弄起来就不是这么简单的了。动手搭了一个pro mini 和两个MAX7219 8*8点阵连起来,找了一个库 自己做了几个动态的箭头提示。调试程序的时候出了问题,因为动态的表情什么的 都是用delay()参数来完成的(至少我找的几个库的例程都是这样完成的),让它自动一段一段播放演示没有问题,要是播放中突然要插入比如刹车动作 转向动作,按钮就不听使唤了,需要反复按才能逮到一下,这对于要高速反应的行驶状态下是肯定不行的。试过用静态的画面提示就可以迅速切换 但又不甘心,不然要点阵来干嘛的 不如自己搭一个LED的图形了。中断也试过但是好像属于大杀器,中断一用没几下MAX7219就挂了不能显示画面了,试了两个库都不行,中断口也太少不够三个按钮 请问点阵屏在播放动态画面的时候怎么插入按钮动作呢?
回复

使用道具 举报

发表于 2013-4-12 12:48:24 | 显示全部楼层
本帖最后由 Ansifa 于 2013-4-12 12:49 编辑

1、必须在按钮上面加一个上拉/下拉电阻,10k左右,必须。
2、在开关并联一个0.1uF的电容。随意类型,最便宜的小瓷片就行。电容不够大就继续加大,一般建议不要超过10uF。

然后问题就解决了
回复 支持 反对

使用道具 举报

发表于 2013-4-12 23:10:51 | 显示全部楼层
不是抖动问题,我已经加了消抖,是loop 中的delay引起的,进入delay按键就不听使唤了 点阵动态效果不用delay很难实现至少我用的库不行
回复 支持 反对

使用道具 举报

发表于 2013-4-13 08:12:38 | 显示全部楼层
没研究过,帮顶!
回复 支持 反对

使用道具 举报

发表于 2013-4-27 22:38:24 | 显示全部楼层
使用中断~检测到电平变化就能执行操作
回复 支持 反对

使用道具 举报

发表于 2013-4-28 08:29:54 | 显示全部楼层
使用中断, 精华区里有范例
http://www.geek-workshop.com/thread-595-1-1.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 15:24 , Processed in 0.051400 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表