很多电子产品有状态指示灯,比如电视机: 待机状态亮红灯 开机状态亮绿灯 实现起来很简单,微控制器mcu的两个GPIO分别控制就行: 不过资源总是紧张的,有时候会碰到GPIO不够用的情况。 如果只用1个GPIO,可不可以实现控制两个LED灯呢? 要实现4种状态: 红灯亮,绿灯灭 红灯灭,绿灯亮 都灭 都亮 直接上电路: 电路分析 1、红灯亮,绿灯灭时,GPIO1输出5V高电平: 2、红灯灭,绿灯亮时,GPIO1输出0V低电平: 3、红灯和绿灯都灭时,GPIO1设为浮空高阻态。此时由于两个LED灯总的导通压降要求大于5V,所以两个LED灯都不导通。 4、红灯和绿灯都亮时,GPIO1交替输出高低电平。只要高低电平切换的频率够高,由于视觉暂留效应,人眼看到的就是两个灯都常亮。 注意事项 使用这个电路时,要注意MCU的GPIO的电流驱动能力。 GPIO能承受的电流要大于LED灯流过的电流。 以下截图出自STM32芯片的数据手册,它的GPIO可以驱动或吸入8mA的电流。 总结 1个GPIO控制2个LED显示4种状态,电路的实现本身很妙。 1个GPIO控制2个LED显示4种状态,不知下面这位大神是否可以出个绝妙的下联。 |
关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )
GMT+8, 2025-6-29 06:06 , Processed in 0.078125 second(s), 28 queries , Gzip On.
地址:深圳市南山区科技生态园2栋A座805 电话:19926409050