请问循环中有delay如何迅速检测按钮动作
本人新手编程不会,只能简单参考修改别人的。一直想制作一个动态的点阵尾灯,这个也是我学习arduino的动力。主要功能包括行车时播放动态的表情,转向按钮触发转向动画提示,刹车开关触发刹车提示都在同一个点阵屏上完成。设想起来似乎都是理所当然的,自己弄起来就不是这么简单的了。动手搭了一个pro mini 和两个MAX7219 8*8点阵连起来,找了一个库 自己做了几个动态的箭头提示。调试程序的时候出了问题,因为动态的表情什么的 都是用delay()参数来完成的(至少我找的几个库的例程都是这样完成的),让它自动一段一段播放演示没有问题,要是播放中突然要插入比如刹车动作 转向动作,按钮就不听使唤了,需要反复按才能逮到一下,这对于要高速反应的行驶状态下是肯定不行的。试过用静态的画面提示就可以迅速切换 但又不甘心,不然要点阵来干嘛的 不如自己搭一个LED的图形了。中断也试过但是好像属于大杀器,中断一用没几下MAX7219就挂了不能显示画面了,试了两个库都不行,中断口也太少不够三个按钮 请问点阵屏在播放动态画面的时候怎么插入按钮动作呢? 本帖最后由 Ansifa 于 2013-4-12 12:49 编辑1、必须在按钮上面加一个上拉/下拉电阻,10k左右,必须。
2、在开关并联一个0.1uF的电容。随意类型,最便宜的小瓷片就行。电容不够大就继续加大,一般建议不要超过10uF。
然后问题就解决了 不是抖动问题,我已经加了消抖,是loop 中的delay引起的,进入delay按键就不听使唤了 点阵动态效果不用delay很难实现至少我用的库不行 没研究过,帮顶! 使用中断~检测到电平变化就能执行操作 使用中断, 精华区里有范例
http://www.geek-workshop.com/thread-595-1-1.html
页:
[1]