Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

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

    其它全志芯片讨论区
    1
    2
    1371
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • whycan
      whycan晕哥 LV 9 last edited by

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

      mmexport7f6ae159c17e4cf4303c25bc1755d433_1623113298216.png
      mmexport86e3541bb939cf2b08cb136777914226_1623113309894.png

      1 Reply Last reply Reply Quote Share 0
      • whycan
        whycan晕哥 LV 9 last edited by

        二、总结提升
        以上其实是用了一种叫“查理复用”(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 Reply Last reply Reply Quote Share 1
        • 1 / 1
        • First post
          Last post

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

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