<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121866-0.jpg" alt=“” ></center>
很多电子产品有状态指示灯,比如电视机:
<ul>
<li>
<p>待机状态亮红灯</p>
</li>
<li>
<p>开机状态亮绿灯</p>
</li>
</ul>
实现起来很简单,微控制器MCU的两个GPIO分别控制就行:
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121867-1.png" alt=“” ></center>
不过资源总是紧张的,有时候会碰到GPIO不够用的情况。
如果只用1个GPIO,可不可以实现控制两个LED灯呢?
要实现4种状态:
<ul>
<li>
<p>红灯亮,绿灯灭</p>
</li>
<li>
<p>红灯灭,绿灯亮</p>
</li>
<li>
<p>都灭</p>
</li>
<li>
<p>都亮</p>
</li>
</ul>
直接上电路:
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121868-2.png" alt=“”></center>
电路分析
1、红灯亮,绿灯灭时,GPIO1输出5V高电平:
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121869-3.png" alt=“”></center>
2、红灯灭,绿灯亮时,GPIO1输出0V低电平:
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121870-4.png" alt=“”></center>
3、红灯和绿灯都灭时,GPIO1设为浮空高阻态。此时由于两个LED灯总的导通压降要求大于5V,所以两个LED灯都不导通。
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121871-5.png" alt=“”></center>
4、红灯和绿灯都亮时,GPIO1交替输出高低电平。只要高低电平切换的频率够高,由于视觉暂留效应,人眼看到的就是两个灯都常亮。
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121872-6.png" alt=“”></center>
<strong>注意事项</strong>
使用这个电路时,要注意MCU的GPIO的电流驱动能力。
GPIO能承受的电流要大于LED灯流过的电流。
以下截图出自STM32芯片的数据手册,它的GPIO可以驱动或吸入8mA的电流。
<center><img src="http://mouser.eetrend.com/files/2021-02/博客/100061641-121873-7.png" alt=“”></center>
<strong>总结</strong>
1个GPIO控制2个LED显示4种状态,电路的实现本身很妙。
本文转载自:芯片之家(作者:LR梁锐,整理:晓宇)
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。