搜索
bottom↓
回复: 67

只有4个IO,怎样做到4个按键且每个按键对应一个LED灯

[复制链接]

出0入0汤圆

发表于 2017-8-2 13:50:00 | 显示全部楼层 |阅读模式
具体:
        1.只有4个IO,要求设计4个按键,且每个按键对应一个LED指示灯
        2.每个按键按下时相对的LED灯亮起,按键弹起对应的LED灯灭,
          每次只有一个按键按下,对应LED灯亮时,其他的LED灯状态保持灭不受影响
        3.硬件只要4根线,没有地线,4个线直接链接到单片IO口

        电工们谁有好的电路参考和建议,谢谢了

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2017-8-2 13:50:29 | 显示全部楼层
希望大家给一点参考电路和好的思路,谢谢

出0入57汤圆

发表于 2017-8-2 14:09:36 | 显示全部楼层
串上就行了,还有啥好问的。

出0入0汤圆

发表于 2017-8-2 14:09:54 | 显示全部楼层
        2.每个按键按下时相对的LED灯亮起,按键弹起对应的LED灯灭,
          每次只有一个按键按下,对应LED灯亮时,其他的LED灯状态保持灭不受影响

这个不冲突?

出0入0汤圆

 楼主| 发表于 2017-8-2 14:20:20 | 显示全部楼层
leafstamen 发表于 2017-8-2 14:09
串上就行了,还有啥好问的。

串上不行吧,没有地线哦,串上估计还多一根地线吧

出0入0汤圆

发表于 2017-8-2 14:21:07 | 显示全部楼层
90999 发表于 2017-8-2 14:09
2.每个按键按下时相对的LED灯亮起,按键弹起对应的LED灯灭,
          每次只有一个按键按下,对 ...

多看二楼,没有问题,
VCC->LED->Rx----->IO
                    |___KEY->GND

出0入0汤圆

 楼主| 发表于 2017-8-2 14:21:37 | 显示全部楼层
90999 发表于 2017-8-2 14:09
2.每个按键按下时相对的LED灯亮起,按键弹起对应的LED灯灭,
          每次只有一个按键按下,对 ...

不会冲突的

出0入0汤圆

发表于 2017-8-2 14:23:32 | 显示全部楼层
xurenhui 发表于 2017-8-2 14:20
串上不行吧,没有地线哦,串上估计还多一根地线吧

2*2矩阵      

出0入0汤圆

 楼主| 发表于 2017-8-2 14:26:29 | 显示全部楼层

那对应LED灯指示,怎么弄啊,能给个图纸看看不

出0入0汤圆

发表于 2017-8-2 14:33:02 | 显示全部楼层
想要相互独立 一个IO看能不能做AD按键(按键好像无法组合起来,单个的按可以有反应)

剩下的三个IO可以控制6个LED IO有三种状态
1 推挽输出高
2 推挽输出低
3 上拉输入

出0入0汤圆

发表于 2017-8-2 14:36:29 | 显示全部楼层
xurenhui 发表于 2017-8-2 14:26
那对应LED灯指示,怎么弄啊,能给个图纸看看不

矩阵都不懂?按键跟指示灯串联,单片机除了不停扫描外,就你这点需求可以不用做其他事情,

出0入0汤圆

 楼主| 发表于 2017-8-2 14:36:37 | 显示全部楼层
mcu5i51 发表于 2017-8-2 14:21
多看二楼,没有问题,
VCC->LED->Rx----->IO
                    |___KEY->GND

你这里多了一根地线,总共5根线了,不行

出0入0汤圆

发表于 2017-8-2 14:41:06 | 显示全部楼层
xurenhui 发表于 2017-8-2 14:26
那对应LED灯指示,怎么弄啊,能给个图纸看看不

三个IO 做LED, 剩下一个做AD。

没错了。

出0入0汤圆

发表于 2017-8-2 14:45:20 | 显示全部楼层
xurenhui 发表于 2017-8-2 14:26
那对应LED灯指示,怎么弄啊,能给个图纸看看不

你说说为什么不能拉地线,我说说怎么不拉地线实现功能,,
很不喜欢说话说一半的。

出0入0汤圆

 楼主| 发表于 2017-8-2 14:49:00 | 显示全部楼层
teddeng 发表于 2017-8-2 14:45
你说说为什么不能拉地线,我说说怎么不拉地线实现功能,,
很不喜欢说话说一半的。 ...

因为没有留地线的接口和端子

出0入0汤圆

 楼主| 发表于 2017-8-2 15:01:28 | 显示全部楼层
90999 发表于 2017-8-2 14:41
三个IO 做LED, 剩下一个做AD。

没错了。

谢谢你的建议

出0入0汤圆

发表于 2017-8-2 15:04:43 | 显示全部楼层
xurenhui 发表于 2017-8-2 14:49
因为没有留地线的接口和端子

这么简单?我脑补一下,原来只打算接2*2的键盘,只留了4根线,后来客户要求键盘上加指示灯?

简单,LED串电阻和按键并联,按键也串个电阻,搞定。剩下你脑补吧,我还是比你多说几个字吧,呵呵。

出0入0汤圆

 楼主| 发表于 2017-8-2 15:35:57 | 显示全部楼层
teddeng 发表于 2017-8-2 15:04
这么简单?我脑补一下,原来只打算接2*2的键盘,只留了4根线,后来客户要求键盘上加指示灯?

简单,LED ...

厉害,说得非常到位

出0入0汤圆

发表于 2017-8-2 15:55:55 | 显示全部楼层
另外一种不靠谱的方法。
用一个I2C扩展GPIO的芯片,两根线当作GND和VCC,另外两根线模拟I2C。
这样就可以检测按键和驱动少量LED

出0入0汤圆

 楼主| 发表于 2017-8-2 16:16:48 | 显示全部楼层
xingkong911 发表于 2017-8-2 15:55
另外一种不靠谱的方法。
用一个I2C扩展GPIO的芯片,两根线当作GND和VCC,另外两根线模拟I2C。
这样就可以检 ...

听起来有点复杂哦,不过还是谢谢

出0入0汤圆

发表于 2017-8-2 16:17:00 | 显示全部楼层
本帖最后由 90999 于 2017-8-2 16:23 编辑

楼主悬赏吧。

出0入8汤圆

发表于 2017-8-2 16:22:52 来自手机 | 显示全部楼层
4个io足够了
以前sony的walkman线控也不过4根线
除了控制还要显示歌词

出0入0汤圆

 楼主| 发表于 2017-8-2 16:37:55 | 显示全部楼层

,悬赏的事情就交给你去做了

出0入4汤圆

发表于 2017-8-2 17:17:46 | 显示全部楼层
如果可以加三极管的话,按键连接3906,3906连接LED,搞定,还是一对一的,连程序都不用改。

出0入0汤圆

发表于 2017-8-2 17:41:06 来自手机 | 显示全部楼层
灯和按键都做成2*2的矩阵就解决了。

出0入93汤圆

发表于 2017-8-2 17:53:14 | 显示全部楼层
就是简单地按键和LED串联,哪有那么复杂。
示意图:两个IO控制两个LED+两个按键,3个IO控制4个LED+4个按键,还多出一个IO留着下崽,万一你要控制8个LED+8个按键,4个IO大概是可以搞定的。

IO1、IO2、IO3由单片机交替输出方波就好了,反正万能的程序员都能搞定的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-2 17:59:41 | 显示全部楼层
takashiki 发表于 2017-8-2 17:53
就是简单地按键和LED串联,哪有那么复杂。
示意图:两个IO控制两个LED+两个按键,3个IO控制4个LED+4个按键 ...

led 不是普通二极管,串联压降大了读不到低电平的。

出0入104汤圆

发表于 2017-8-2 18:05:14 | 显示全部楼层
takashiki 发表于 2017-8-2 17:53
就是简单地按键和LED串联,哪有那么复杂。
示意图:两个IO控制两个LED+两个按键,3个IO控制4个LED+4个按键 ...


证明你没有熟读兵书(楼据手册)

(led 不是普通二极管,串联压降大了读不到低电平的。) 这位仁兄就有熟读兵书(楼据手册)

出0入91汤圆

发表于 2017-8-2 18:05:25 来自手机 | 显示全部楼层
3根线负责595 一根线负责按键检测

出0入93汤圆

发表于 2017-8-2 18:23:40 | 显示全部楼层
teddeng 发表于 2017-8-2 17:59
led 不是普通二极管,串联压降大了读不到低电平的。

题目没有要求需要读取按键,只要求按键控制LED。

出0入0汤圆

发表于 2017-8-2 18:24:06 | 显示全部楼层
并在按键上不行吗?

出0入0汤圆

 楼主| 发表于 2017-8-2 19:03:47 | 显示全部楼层
takashiki 发表于 2017-8-2 18:23
题目没有要求需要读取按键,只要求按键控制LED。

需要读取按键的值

出0入0汤圆

 楼主| 发表于 2017-8-2 19:05:09 | 显示全部楼层
aleyn 发表于 2017-8-2 17:17
如果可以加三极管的话,按键连接3906,3906连接LED,搞定,还是一对一的,连程序都不用改。 ...

兄台,能提供图纸看看不

出0入0汤圆

 楼主| 发表于 2017-8-2 19:07:08 | 显示全部楼层
takashiki 发表于 2017-8-2 17:53
就是简单地按键和LED串联,哪有那么复杂。
示意图:两个IO控制两个LED+两个按键,3个IO控制4个LED+4个按键 ...

你好,你这个方法能读到键值吗,看起来很实用

出0入0汤圆

 楼主| 发表于 2017-8-2 19:09:53 | 显示全部楼层
ackyee 发表于 2017-8-2 18:05
3根线负责595 一根线负责按键检测

你这个方法不错,但是得另外把地和电源的线用上,就多了两根线了

出0入0汤圆

发表于 2017-8-2 19:33:41 | 显示全部楼层
4个按键控制4个灯还要什么单片机?

出0入0汤圆

发表于 2017-8-2 19:38:05 | 显示全部楼层
不要单片机行吗                                   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-2 19:59:39 | 显示全部楼层
TM1605    bingo

出0入0汤圆

 楼主| 发表于 2017-8-2 20:49:36 | 显示全部楼层
jzb8736 发表于 2017-8-2 19:38
不要单片机行吗

呵呵,不错,我还要读取键值

出0入0汤圆

发表于 2017-8-2 23:45:42 来自手机 | 显示全部楼层
xurenhui 发表于 2017-8-2 20:49
呵呵,不错,我还要读取键值

37楼图片,IO接到开关右边不就得了?

出0入93汤圆

发表于 2017-8-3 06:25:16 | 显示全部楼层
xurenhui 发表于 2017-8-2 19:07
你好,你这个方法能读到键值吗,看起来很实用


请自己亲自做试验,不同的单片机处理方式不同,不要人云亦云,尤其不要听28楼的。
如果你每次只有1个按键按下,那么这个电路基本上是够你用的。多按键时情况更加复杂。

IO1内部上拉输出,IO2高阻输入,单片机IO去读IO2,按键导通时会读到什么,按键不导通时会读到什么?
我曾经测试过的,按键导通时事实上LED也导通了只是不发光,IO2会读到高电平。
理论上按键不导通的情况下IO2会是不确定电平,但是我用的单片机读出来却是低电平。反正狂读消抖动,很简单就能识别出来按键不导通的情况。

出0入0汤圆

 楼主| 发表于 2017-8-3 08:21:10 | 显示全部楼层
takashiki 发表于 2017-8-3 06:25
请自己亲自做试验,不同的单片机处理方式不同,不要人云亦云,尤其不要听28楼的。
如果你每次只有1个按键 ...

谢谢,兄台的仔细说明

出0入0汤圆

 楼主| 发表于 2017-8-3 08:32:41 | 显示全部楼层
teddeng 发表于 2017-8-2 15:04
这么简单?我脑补一下,原来只打算接2*2的键盘,只留了4根线,后来客户要求键盘上加指示灯?

简单,LED ...

按照你方法测试了,但是在扫描的时候LED灯会闪烁,能说说怎么样避免闪烁啊

出0入0汤圆

发表于 2017-8-3 08:52:10 | 显示全部楼层
试试这样行不行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-8-3 09:26:13 | 显示全部楼层
lyl2022 发表于 2017-8-3 08:52
试试这样行不行

你这个电路有地线哦,我要求只有4个IO口线

出0入0汤圆

发表于 2017-8-3 09:30:54 来自手机 | 显示全部楼层
xurenhui 发表于 2017-8-3 08:32
按照你方法测试了,但是在扫描的时候LED灯会闪烁,能说说怎么样避免闪烁啊 ...

减小扫描时间,

出0入0汤圆

发表于 2017-8-3 09:39:14 | 显示全部楼层
不要地线    按键下去  LED 还不能闪           还要读 4个键    这个会有解吗?    关注   

出0入0汤圆

发表于 2017-8-3 11:16:27 | 显示全部楼层
xurenhui 发表于 2017-8-3 09:26
你这个电路有地线哦,我要求只有4个IO口线

闪烁频率高点不就不闪了吗。。

出0入0汤圆

发表于 2017-8-3 12:07:45 | 显示全部楼层


如图。。IO3 IO4高阻态。
IO1上拉输入,IO2输出低电平。  按键被按下的时候IO1能读到低电平。
IO1推挽输出低,IO2推挽输出高电平,LED灯亮。

依次扫描下去。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-3 12:09:28 | 显示全部楼层
ayumi8 发表于 2017-8-3 09:39
不要地线    按键下去  LED 还不能闪           还要读 4个键    这个会有解吗?    关注    ...

19楼已经说出解了。
用两个IO当VCC和GND,另外的用作I2C

出0入0汤圆

 楼主| 发表于 2017-8-3 13:32:34 | 显示全部楼层
wx85105157 发表于 2017-8-3 12:07
如图。。IO3 IO4高阻态。
IO1上拉输入,IO2输出低电平。  按键被按下的时候IO1能读到低电平。
IO1推挽输 ...

谢谢,电路很给力

出0入0汤圆

 楼主| 发表于 2017-8-3 15:43:00 | 显示全部楼层
lianglee 发表于 2017-8-3 14:09
50楼好像不行吧。

这个方法先试试看看,谢谢

出0入96汤圆

发表于 2017-8-3 20:47:07 | 显示全部楼层
成本和空间够的话上一个数码管驱动芯片,带键扫的就解决了,不用费心搭电路板,只考虑时序即可了

出0入96汤圆

发表于 2017-8-3 20:47:53 | 显示全部楼层
便宜的单片机上一片,14脚的,16脚的也可以啊

出0入0汤圆

发表于 2017-8-4 08:53:45 | 显示全部楼层
53楼方案可行

出0入0汤圆

发表于 2017-8-4 10:36:22 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2017-8-4 17:29:34 | 显示全部楼层
本帖最后由 xurenhui 于 2017-8-4 17:32 编辑


非常谢谢你的参考图纸,很用心,

出0入0汤圆

发表于 2017-8-4 17:56:13 | 显示全部楼层
还是26楼的好。就是软件处理起来 要弄好。最多可以弄8个按键8个灯

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-8-4 18:13:48 | 显示全部楼层
XUEPENGBIN 发表于 2017-8-4 17:56
还是26楼的好。就是软件处理起来 要弄好。最多可以弄8个按键8个灯

K1写成了K2

出0入0汤圆

发表于 2017-8-4 18:16:57 | 显示全部楼层
xurenhui 发表于 2017-8-3 08:32
按照你方法测试了,但是在扫描的时候LED灯会闪烁,能说说怎么样避免闪烁啊 ...

假设每隔10MS扫描一次按键,扫描费时0.1MS(你就是古董单片机也不能慢到0.1MS都干不完这活吧),剩下9.9MS都用来显示,占空比是99%,频率是100HZ,还能看出闪烁么?

出200入2554汤圆

发表于 2017-8-4 18:32:21 | 显示全部楼层
PCF8574 你值得拥有。

如果只是临时性用一用,很多二极管方案都可以,例如 #50 楼

如果做产品,建议拿IIC来转,例如 PCF8574,避免隐患与潜在的升级需求。
#50 楼的隐患在于:同时按下三个开关(就当用户不懂,开关都是拿来舔的),正向LED扫描存在电平冲突。

出0入46汤圆

发表于 2017-8-4 22:47:15 | 显示全部楼层
楼主可以考虑用春风电源的按键指示灯方案,一个595搞定

出0入0汤圆

 楼主| 发表于 2017-8-5 14:45:38 | 显示全部楼层
工程师030 发表于 2017-8-4 22:47
楼主可以考虑用春风电源的按键指示灯方案,一个595搞定

595确实是可以实现该功能,谢谢你的建议

出0入0汤圆

 楼主| 发表于 2017-8-5 14:46:45 | 显示全部楼层
正解的在58楼,非常不错

出0入0汤圆

发表于 2017-8-8 09:02:24 | 显示全部楼层
58楼真是好注意

出0入0汤圆

发表于 2017-8-8 09:47:08 | 显示全部楼层
这个问题讨论出深度学习了。

出0入0汤圆

 楼主| 发表于 2017-8-9 09:39:59 | 显示全部楼层
hq881128 发表于 2017-8-8 09:47
这个问题讨论出深度学习了。

amoBBS高手很多,非常值得学习
头像被屏蔽

出0入0汤圆

发表于 2017-8-10 17:18:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-15 21:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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