导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    用3个IO口控制6个LED灯,怎么做到的? [转载]

    其它全志芯片讨论区
    1
    2
    1297
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • whycan
      whycan晕哥 LV 9 最后由 编辑

      https://mp.weixin.qq.com/s/hUB_MNNP8jLyb7kaXctLnQ

      mmexport7f6ae159c17e4cf4303c25bc1755d433_1623113298216.png
      mmexport86e3541bb939cf2b08cb136777914226_1623113309894.png

      1 条回复 最后回复 回复 引用 分享 0
      • whycan
        whycan晕哥 LV 9 最后由 编辑

        二、总结提升
        以上其实是用了一种叫“查理复用”(Charlieplex)的方法。
        为什么叫查理复用?

        很简单,因为这个方法来源于美信半导体公司的工程师Charlie Allen。

        查理复用是一种能够在驱动LED,特别是驱动大量LED时有效地节约GPIO的方法。
        使用该方法,n个GPIO可以驱动 n*(n-1) 个LED,所以:

        • 使用2个GPIO可以驱动2个LED。

        • 使用3个GPIO可以驱动6个LED。

        • 使用4个GPIO可以驱动12个LED。

        以此类推。

        这种方式能够实现的基础是:
        单片机GPIO的三个状态:高电平、低电平、高阻态。

        LED具有单向导电性。

        查理复用设计的方法:

        • 任意两个GPIO引脚之间串入两个LED,这两个LED为并联,且LED方向相反。

        • 当你想要点亮某个特定的LED时,就将其两端所连接到的GPIO引脚分别设定为高电平和低电平,其它剩余的GPIO引脚设定为高阻态。

        • 前面电动牙刷中6个LED灯的电路,就是这么设计的。

        1 条回复 最后回复 回复 引用 分享 1
        • 1 / 1
        • First post
          Last post

        Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

        行为准则 | 用户协议 | 隐私权政策