作者berice152233 (WASHI)
看板Electronics
标题[问题] 请问有办法共用输入又不互相影响吗
时间Mon Nov 2 10:00:18 2020
小弟正在自学arduino
想先找个目标来学习
就选了家人在夜市摆摊的机台来当范例
机台的概念其实满简单的
当碰触到微动开关时增加分数
还有步进马达和灯光的启闭
按下归零钮分数归零
这些都已经完成
现在只剩下一个功能想不到怎麽做
机台上有20个微动开关
当触发一次时会加分
A持续ON时B也能正常触发并加分
一般来说只要用20个输入点就能解决
但我在想是否有办法共用一个输入点呢?
一开始的构想是在ON时触发继电器
将该点讯号断开,但20个继电器感觉有点笨
我不如再接一个ARDUINO或I/O拓展
我就想说是否有IC
在A脚即使持续ON着
在B脚也只会输出一个短暂的讯号?
请各位前辈不吝赐教,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.216.86.244 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1604282420.A.78E.html
※ 编辑: berice152233 (211.22.240.28 台湾), 11/02/2020 10:09:56
1F:→ samm3320: 欸我没玩过离散电路,不过想像上按键按下去时触发pulse11/02 10:21
2F:→ samm3320: 应该可以实现11/02 10:21
目前正在找有没有能达成这个功能的硬体
3F:→ ureikaze: MUX11/02 10:41
感谢,我有查到CD4051这颗
透过二进制来读取8个输入
只是目前的范例好像都是输出
仍在研究怎麽读取输入
4F:推 Schottky: 看不太懂你的需求,什麽是A脚ON B脚触发11/02 11:33
不好意思,初学者可能用语不太精确
是想问说是否有IC,能在某一脚输入时
对应的另一脚会输出一个短暂的讯号
※ 编辑: berice152233 (49.216.86.244 台湾), 11/02/2020 12:01:54
5F:→ mmonkeyboyy: 编码啊 然後速度要够快11/02 12:05
6F:→ samm3320: xor 跟 delay应该就可以做到吧,只是看你成本11/02 12:09
因为只是个人练习,成本其实还好
我可以只做三个极限开关来模拟动作就好
也会尝试各种做法当练习
※ 编辑: berice152233 (49.216.86.244 台湾), 11/02/2020 12:12:11
7F:→ samm3320: xor一端接input一端接delay input就可以实现edge trigge 11/02 12:18
8F:→ samm3320: r pulse generator,後面看你要怎麽把output or成一条线11/02 12:18
9F:→ samm3320: 送去给counter吧11/02 12:18
感谢,我再研究看看
10F:推 warfjragon: 用 arduino的 analog input port。利用开关并联不同11/02 14:44
11F:→ warfjragon: 数目的电阻改变送入arduino的电压值。11/02 14:44
看起来也是个很不错的方法
当输入的值有一定程度变动
就是有一个开关被触发
刚好可以用手边有的东西可以先试试看
12F:→ warfjragon: 不确定这样准不准11/02 14:45
我有点担心杂讯的问题
(或者有其他没有考虑到的问题)
不过我先尝试一下
※ 编辑: berice152233 (49.216.86.244 台湾), 11/02/2020 14:50:20
13F:推 hsucheng: 20只脚中只要有正缘(或负缘)就输出一个pulse11/02 16:20
14F:→ hsucheng: 或者是 侦测20只脚的状态 做编码11/02 16:22
不好意思
不太了解做编码这个动作
是否有可以参考的关键字呢
我查都只能找到编码旋转器
※ 编辑: berice152233 (49.216.86.244 台湾), 11/02/2020 16:24:18
15F:推 HiJimmy: 用ADC读会有按键优先权的问题 I/O够的话 4X5扫描 11/02 16:42
16F:推 HiJimmy: 用数组存值,100ms中断扫描,三次数值比较,这样反应速度 11/02 16:45
17F:→ HiJimmy: 差不多再0.5秒,因为有I/O的延迟时间 11/02 16:45
19F:推 HiJimmy: 然後再用DAC送资料出去 这样主控就能只用一只脚 11/02 16:50
20F:→ hsucheng: 要侦测20只脚 要用到5个bits,写程式判断每次扫过去哪个 11/02 17:20
21F:→ hsucheng: bits变了 11/02 17:20
22F:推 DRQX: 你要的硬体功能叫做"单击器".但是你的这种方法讯号会漏 11/04 09:12
23F:→ DRQX: 20个输入用韧体去解算是最稳定作法. 11/04 09:14
24F:→ DRQX: 另个类似"单击器"的就是"微分器"了 11/04 09:15
25F:推 kdjf: 这个问题应该是会有同时的按键,扫描的就很难解决 11/04 23:28
26F:→ kdjf: 其中一列分时的话,就是速度慢一些,程式要把脚改成High Z 11/04 23:35
27F:→ berice152233: 好的,感谢各位 11/05 09:45