【问题标题】:What is the most efficient way to time LED’s对 LED 进行计时最有效的方法是什么
【发布时间】:2015-10-08 18:02:50
【问题描述】:

我需要创建一个包含大约 50 个 LED 的电路板。 LED 需要单独打开/关闭,并且一起打开(计时器基于天数,假设每个星期一所有 50 个 LED 都打开,一周中的每一天 10 个 LED 都打开)。

在我的研究中,我发现了 LM555 定时器,但这会导致包含 50 个不同定时器的庞大电路

控制这些 LED 的最有效方法是什么

【问题讨论】:

  • 我认为您只需要并联 2 个部件(10 个 LED 和 40 个 LED)并从您的 arduino 中获得 2 个串行输出,发送 2 个信号。在您的 arduino 程序上创建一个具有两种状态的算法。 11 和 10(二进制)11 = 50 个 LED 亮起,10 = 10 个 LED 亮起
  • 如果您熟悉逻辑门,这些将对您有所帮助。有帮助时给我发消息
  • 我编辑我的答案。第一个不好。这将真正帮助您解决问题。再次抱歉!

标签: timer arduino led


【解决方案1】:

我的第一个答案真的很愚蠢(对此我感到很抱歉),我不知道为什么我之前没有想到令人惊叹的“移位寄存器”。

您的 Arduino 没有那么多引脚来点亮您拥有的每个 LED。但是使用移位寄存器这是可能的。从 8 位移位寄存器中,您只需使用 Arduino 板上的 2-3 个 PIN 即可点亮 8 个 LED(1 个用于时钟,1 个用于数据,1 个用于锁存器)。 因此,要点亮 50 个 PIN,您只需要 this components 中的 7 个(例如)。

如何使用它?网上有很多教程,通常sparkFun tutorial是我最喜欢的。

下图:来自 Arduino 网站的图片。它解释了如何连接 16 个 LED。

无论如何从软件方面来说,ShiftOut函数你必须知道的。 之后你必须使用time函数。

首先初始化你的时间变量,你可以在我上面发布的链接中看到。 之后,在你的循环中:

  • previousMonth != month 时,将连接到 50 个 LED 的 Datapin 置于高电平。
  • daySum == 10 时将 HIGH dataPin 连接到 10 个 LED(因此,当 previousDay != day 时,您必须使用 daySum++ 增加 daySum)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 2012-12-21
    • 2011-01-26
    • 1970-01-01
    相关资源
    最近更新 更多