分享

单片机一个IO口如何控制两颗发光二极管LED?

 上墙村民 2019-04-25

单片机的一个GPIO只能输出0和1两种状态,如果控制一个LED灯的话,可以实现LED的亮灭控制。两个LED具有四个状态:1)同时亮;2)同时灭;3)一个亮一个灭;4)一个灭一个亮。如果用一个GPIO的话,无法输出四种状态,所以要分情况讨论。

1.两只LED同时亮/灭的情况

这种情况其实是把两个LED看作是同一个,两个LED具有同样的状态,即两个LED同时点亮或者同时熄灭。如果是这种情况可以考虑如下的电路设计:

两只LED并联,单片机以灌电流的方式驱动。这样可以降低单片机的输出功耗。单片机的GPIO输出高电平1时,两个LED同时熄灭;单片机的GPIO输出低电平时,两个LED同时点亮。也可以考虑两只LED串联的情况,但是需要考虑LED自身的压降对于具体的实施电路,可以考虑采用三极管或者MOS作为驱动。

2.两只LED不同是亮/灭的情况

这时需要考虑将两只LED同向串联,将单片机的GPIO口接在两只LED的公共端。其典型的示意电路图如下图所示。

两只LED同向串联后串在电源电路中,单片机的GPIO控制两个LED的公共端。当单片机输出高电平1时LED1熄灭,而LED2被点亮(拉电流的方式);当单片机输出低电平0时LED1被点亮(灌电流的方式),而LED2熄灭这种情况时需要考虑电阻的选型,也可以使用三极管或者MOS管作为驱动。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多