如何让1个GPIO控制2个LED显示出4种状态?

电子说

1.3w人已加入

描述

很多电子产品有状态指示灯,比如电视机:

待机状态亮红灯

开机状态亮绿灯

实现起来很简单,微控制器MCU的两个GPIO分别控制就行:

led

不过资源总是紧张的,有时候会碰到GPIO不够用的情况。

如果只用1个GPIO,可不可以实现控制两个LED灯呢?

要实现4种状态:

红灯亮,绿灯灭

红灯灭,绿灯亮

都灭

都亮

直接上电路:

led

一、电路分析

1、红灯亮,绿灯灭时,GPIO1输出5V高电平:

led

2、红灯灭,绿灯亮时,GPIO1输出0V低电平:

led

3、红灯和绿灯都灭时,GPIO1设为浮空高阻态。此时由于两个LED灯总的导通压降要求大于5V,所以两个LED灯都不导通。

led

4、红灯和绿灯都亮时,GPIO1交替输出高低电平。只要高低电平切换的频率够高,由于视觉暂留效应,人眼看到的就是两个灯都常亮。

led

二、注意事项

使用这个电路时,要注意MCU的GPIO的电流驱动能力。

GPIO能承受的电流要大于LED灯流过的电流。

以下截图出自STM32芯片的数据手册,它的GPIO可以驱动或吸入8mA的电流。

 

三、总结

“1个GPIO控制2个LED显示4种状态”,电路的实现本身很妙。

“1个GPIO控制2个LED显示4种状态”,不知下面这位大神是否可以出个绝妙的下联。

原文标题:巧用1个GPIO控制2个LED显示4种状态

文章出处:【微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分