【问题标题】:Hooking up multiple RGB LEDs while using a minimal number of PWM pins on an Arduino? [closed]在 Arduino 上使用最少数量的 PWM 引脚连接多个 RGB LED? [关闭]
【发布时间】:2013-04-05 08:39:05
【问题描述】:

我目前有一个 阳极 RGB 连接到我的 arduino 上的 11、10 和 9 个 PWM 引脚。但是我想在我的项目中再添加 3 个 LED,但我不想占用每一个 PWM 引脚。有没有办法让我在使用最少数量的引脚的同时连接所有 4 个 LED?请记住,我确实想将所有 12 个电阻器用于 4 个 LED。哦,如果有帮助的话,所有的 LED 都会做同样的事情(它们都是红色的,然后都变成蓝色等)。

这是我的棋盘现在的样子:

如果有人可以帮助我,那就太棒了!!!!感谢帮助!

附:我附上了 .fzz 文件,这样如果你们中的任何人想要编辑原理图,这将非常容易。 click here.

【问题讨论】:

  • 您总是可以通过添加一些寄存器(如 ls273)来扩展输出数量。这当然会使输出信号的时序变慢一些,但这对您的 LED 驱动无关紧要。
  • electronics.stackexchange.com 找到答案可能会更幸运。
  • 谢谢丹尼尔,我一定也会去那里看看的!

标签: c++ arduino rgb led pwm


【解决方案1】:

如果所有操作始终相同,只需将它们并联,这意味着您只需将第二个 LED 放入现有 LED 下方的面包板。

如果 4 个 LED 的功耗太大,则必须使用晶体管作为放大器。我想给你发一张示意图,但我没有软件可以画出这样的。然而,使用晶体管来放大 arduino 输出是很常见的事情......

希望我能帮上忙!

【讨论】:

  • 嘿,凯!谢谢您的帮助!我怎样才能快速检查它是否会消耗过多的电量?会烧坏LED吗?您会推荐哪种晶体管?这是一个网站链接,您可以在其中下载原理图程序(超级简单!)Fritzing App。我在问题的最后一行附上了我的原理图文件。
  • 您好,感谢您的下载提示。我已经画了 2 张图片,但还没有足够的声誉来发布它们,所以我在这里上传了它们:kaiheinz.de/downloads/4RGB_LED.zip 你可以使用像 BC547C 这样的简单晶体管,在德国的成本仅为 30 美分左右。推荐使用晶体管,所以你肯定没有问题。我的方式,不推荐的方式,是简单地尝试看看它在没有晶体管的情况下会产生什么。如果它运行你很好,如果不是你可以改变它。
  • 我出去买了3个晶体管!但在将所有东西连接在一起之前,我有一个关于您在图片中包含的 AA 电池电源的问题。我需要那个,还是我可以使用普通的 USB 为我的 arduino 供电?谢谢!
  • 您不能使用 USB 电源,因为它可能无法提供足够的 A。这就是为什么您应该使用外部电源(即 2 - 3 节 AA 电池)只要确保一次运行所有 LED 时外部电源足够强大(请参阅数据表了解 LED 的确切功耗)。
【解决方案2】:

无论您是在同一条 PWM 线路上串联还是并联连接 RGB LED,您的主要问题都是从每条 PWM 线路汲取的电流。 Arduino 线路通常支持来自每个 GPIO 引脚的高达 40mA(最大 200mA/芯片)。如果您想要最大亮度,LED 通常允许每个通道高达 20mA。这意味着如果您想要每个 LED 的最大亮度,您真的不应该在每个 GPIO 引脚上放置两个以上的通道。这个计算告诉你,唯一合理的结果是使用晶体管实际为 LED 供电,并使用你的 Arduino 来控制晶体管。这是one description 的操作方法,但我相信您可以找到更多。

就 LED 接线而言,您实际上有两种选择:

我更喜欢并联配置:它更容易调试,更容易确保所有 LED 的正确电流限制。还有 LED 正向电压的问题:大多数 LED 需要 1.8V-3V 的正向电压才能导通。如果您只有 5v 可以使用,那么您最多只能串联两个 LED,然后您就无法确保每个 LED 都具有适当的正向电压。如果您尝试将三个串联起来,您可能会得到其中一些比其他更暗的结果,或者整个东西根本不亮。

【讨论】:

    【解决方案3】:

    根据您在 LED 上的计时粒度,您可以执行以下操作:

    Arduino => 移位寄存器 => 晶体管 => 电阻 => LED 引脚。

    查看 Arduino 的 bitshift out 库。这将使您只使用几个引脚:时钟、信号和锁存器。

    您可以将串行输入、并行输出寄存器以菊花链形式连接起来,以增加您可以通过这种方式控制的 LED 数量。然后会发生这样的事情:您发送一个位流,代表您想要打开/关闭哪些位,然后切换锁存器以更新值。通过这种方式,您可以 PWN 驱动大量的三色 LED,而不会有烧坏 IO 引脚的风险。

    请注意,时机变得至关重要。正如其他人建议的那样,您可以获得专用的 RGB 驱动 IC,但如果您想使用容易找到的部件,锁存移位寄存器是一个不错的选择。

    如果您搜索,有许多关于通过移位寄存器进行 PWM 的很好的教程以及库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多