为 LED 计时的最有效方法是什么
What is the most efficient way to time LED’s
我需要创建一个包含大约 50 个 LED 的电路板。 LED 需要单独和一起打开 on/off(计时器基于天,假设每个星期一打开所有 50 个 LED,一周中的每一天打开 10 个 LED)。
在我的研究中,我找到了 LM555 定时器,但这会导致包含 50 个不同定时器的巨大电路
控制这些 LED 的最有效方法是什么
我的第一个回答真的很愚蠢(我对此感到非常抱歉)而且我不知道为什么我之前没有想到令人惊叹的 "Shift Registers"。
您的 Arduino 没有那么多引脚来点亮您拥有的每个 LED。但是使用移位寄存器这是可能的。从一个 8 位移位寄存器,您可以使用 Arduino 板上的 2-3 个 PIN 点亮 8 个 LED(1 个用于时钟,1 个用于数据,1 个用于锁存器)。
因此,要点亮 50 个 PIN,您只需要 this components 中的 7 个(例如)。
如何使用?网上有很多教程,通常 sparkFun tutorial 是我最喜欢的。
下图:来自 Arduino 网站的图片。它解释了如何连接 16 个 LED。
不管怎样,从软件方面来说,你必须知道ShiftOut 功能。
之后你必须使用 time 函数。
首先初始化你的时间变量,正如你在我上面发布的 link 中看到的那样。
之后,在你的循环中:
- 当
previousMonth != month
时,将您的 Datapin 连接到 50 个 LED 上。
- 在
daySum == 10
时将 HIGH dataPin 连接到 10 个 LED(因此,当 previousDay != day
时,您必须使用 daySum++
增加 daySum)。
我需要创建一个包含大约 50 个 LED 的电路板。 LED 需要单独和一起打开 on/off(计时器基于天,假设每个星期一打开所有 50 个 LED,一周中的每一天打开 10 个 LED)。
在我的研究中,我找到了 LM555 定时器,但这会导致包含 50 个不同定时器的巨大电路
控制这些 LED 的最有效方法是什么
我的第一个回答真的很愚蠢(我对此感到非常抱歉)而且我不知道为什么我之前没有想到令人惊叹的 "Shift Registers"。
您的 Arduino 没有那么多引脚来点亮您拥有的每个 LED。但是使用移位寄存器这是可能的。从一个 8 位移位寄存器,您可以使用 Arduino 板上的 2-3 个 PIN 点亮 8 个 LED(1 个用于时钟,1 个用于数据,1 个用于锁存器)。 因此,要点亮 50 个 PIN,您只需要 this components 中的 7 个(例如)。
如何使用?网上有很多教程,通常 sparkFun tutorial 是我最喜欢的。
下图:来自 Arduino 网站的图片。它解释了如何连接 16 个 LED。
不管怎样,从软件方面来说,你必须知道ShiftOut 功能。 之后你必须使用 time 函数。
首先初始化你的时间变量,正如你在我上面发布的 link 中看到的那样。 之后,在你的循环中:
- 当
previousMonth != month
时,将您的 Datapin 连接到 50 个 LED 上。 - 在
daySum == 10
时将 HIGH dataPin 连接到 10 个 LED(因此,当previousDay != day
时,您必须使用daySum++
增加 daySum)。