0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

GReq_mcu168 来源:电路啊 作者:电路啊 2021-05-03 10:08 次阅读

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

待机状态亮红灯

开机状态亮绿灯

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

d5f58dae-a10a-11eb-8b86-12bb97331649.png

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

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

要实现4种状态:

红灯亮,绿灯灭

红灯灭,绿灯亮

都灭

都亮

直接上电路:

d5fd81b2-a10a-11eb-8b86-12bb97331649.png

一、电路分析

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

d606b4da-a10a-11eb-8b86-12bb97331649.png

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

d62fc7bc-a10a-11eb-8b86-12bb97331649.png

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

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

d751611e-a10a-11eb-8b86-12bb97331649.png

二、注意事项

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

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

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

三、总结

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

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

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

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

责任编辑:haq

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

    关注

    237

    文章

    22605

    浏览量

    647373
  • 电路
    +关注

    关注

    171

    文章

    5539

    浏览量

    170286
  • GPIO
    +关注

    关注

    16

    文章

    1151

    浏览量

    50861

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

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用系统滴答定时中断,基于按键的状态机怎么只能11+,不能连+?

    使用系统滴答定时中断,基于按键的状态机怎么只能11+,不能连+ #define KEY1_U
    发表于 05-16 06:27

    【紫光同创盘古PGX-MINI-4K教程】——(盘古PGX-MINI-4K开发板/PGC4KD-6ILPG144第四章)数码管动态显示实验例程

    LED_BIT3为低电平时,A2 为高电平,对应位数码管亮,当 LED_BIT4 为低电平时,A1为高电平,对应位数码管亮。数码管显示出
    发表于 04-28 18:30

    充电时,如何设计船型开关断开或者闭合LED 2状态显示都一致

    充电时,如何设计船型开关断开或者闭合LED 2状态显示都一致 一:有一三节18650串联供电
    发表于 04-04 16:27

    stm32f429 fatfs分了4区,usb_hs挂载后4显示出来了,如何用代码控制显示其中的几个?

    如题 板子是stm32f429。开发环境stm32cubemx+keil,用的HAL库,裸机no_os fatfs分了4区,读写正常。 usb_hs挂载后4
    发表于 03-08 07:24

    在CYT2CL中,有两核心CMO和CM4,是否可以控制核心之间的GPIO

    是否可以控制核心之间的GPIO? 在 CYT2CL 中,有两核心 CMO 和 CM4。 我需要在两
    发表于 03-06 07:15

    【飞腾派4G版免费试用】+GPIO口使用

    GPIO1_12,具体的引脚位置如图3所示。 图2使用引脚资源 图3引脚位置 在引脚GPIO1_12与LED模块相连的情况下,可按图4
    发表于 01-08 14:20

    【核桃派1B 开发板试用体验】+GPIO测试篇

    out”。 此外,它设置输出状态的语句也不同于“echo 1 > gpio33/value”,而是“gpio write 33 1
    发表于 01-02 19:57

    【每周一练】+盘古1K开发板+2. 按键控制RGB led

    ; u_led_rgb:定义一模块,名字为led_rgb,通过参数ctrl实现对rgb的控制2 代码更新 示例代码实现的是
    发表于 12-17 11:33

    【每周一练】盘古1K开发板 练习二:按键控制彩灯实验

    、 按键输入由 K1 输入, LED 输出为 LD1~LD4。 实验原理 实现框架如下: 1、 顶层实现按键切换
    发表于 12-09 14:55

    【ELF 1开发板试用】+ GPIO口的使用

    4控制GPIO88输出高低电平 其指令为: echo 0 > gpio88/value 所实现的效果如图1和图
    发表于 12-08 11:28

    【ELF 1开发板试用】+ RGB LED及按键的控制

    1开发板上,自然也不会少了它,其在开发板上的位置如图1所示,共有3,其颜色分别为红、绿、黄3色彩。 图1LED灯 3
    发表于 11-21 11:11

    国产教学实验箱_操作教程:2-2 LED控制实验

    StarterWare开发环境下的LED控制。 二、实验原理 1、StarterWare StarterWare是一免费的软件开发包,为ARM和DSP TI处理器提供OS平台(无操
    发表于 10-08 14:12

    【中科微CSM32RV003绿色开发板免费体验】GPIO使用篇

    在创建新项目的时候,会含有一控制GPIO口输出状态切换的程序,起初将它视为了LED控制程序,
    发表于 09-13 12:11

    使用GPIO模拟ARGB2 LED时间序列并产生LED彩虹波效果

    应用:本样本代码使用GPIO模拟 ARGB2 LED授时序列,并实现对M258系列微控制器的彩虹波 ARGB2
    发表于 08-29 07:25

    GPIO读取按钮状态

    树莓派的GPIO可以控制发光二极管,这是GPIO的Output(输出)能力,它也具有input(读取)的能力,所以才能叫做I/O(输入/输出)端口。今天我们就来用GPIO的引脚来读取按
    的头像 发表于 07-02 15:06 1103次阅读
    用<b class='flag-5'>GPIO</b>读取按钮<b class='flag-5'>状态</b>