使用晶体管使用Arduino开启多个LED


8

我希望能够用一个Arduino的引脚打开50个红色LED。我不想单独控制,我只想能够将它们全部打开或全部关闭。

我找到了这个例子。它使用2N3904晶体管。这是我要采取的方法吗?我想我需要更高功率的晶体管?

我使用的是外部电源,该电源通过5v稳压器连接到定制板,因此我直接通过该稳压器为LED供电。

LED以这种LED灯条阵列的形式出现(或至少非常相似)。

我在下面的答复中的评论中提到,我在每个LED上都使用了330欧姆的电阻。在该项目的另一部分,我将光条用作电平表,每个单独的LED都通过移位寄存器(即单独的电阻器)进行控制。在考虑了这一点后,我意识到我现在不需要为此与每个LED串联一个电阻,因为它们要么全部亮起要么全部熄灭(嗯……抱歉,我很随意!)。

我确实想到我可以使用某种可以断开接地或5V电压的电子开关。这可行吗?


这是我正在制作的软件控制器。灯光需要能够相对快速地做出响应(即每200毫秒)
Adam

1
该软件很容易弄清楚。我认为对硬件的更多解释会有所帮助。您正在使用哪种LED灯条?LED是串联,并联,共阴极,共阳极还是全部独立?“直接从市电为LED供电”是指5V稳压器吗?因为那可以被认为意味着许多其他事情。您提到每个LED一个330欧姆的电阻...所以每个LED(全部50个)都有一个串联电阻?只是想弄清楚,以便我们给您最好的答案。
Kurt E. Clothier

嗨,库尔特,我已经用信息编辑了我的原始帖子。干杯
亚当(Adam)

Answers:


7

的晶体管基本上是可以断开地或5V的开关。有各种各样的晶体管,有些可以切换真正的巨大负载。50个LED没什么大不了的。

那么,问题是这样的:单个2N3904能否切换50个LED?

要回答这个问题,我们需要知道第一是什么样的发光二极管。但让我们假设您使用的是通常的无特殊品种。合理估算这些最大电流为。如果为50,则最大电流为。查看数据表,我看到2N3904的最大集电极电流为。因此答案是否定的:您不能用一个2N3904切换50个LED。20mA20mA50=1000mA200mA

我想您有几种选择:

  • 使用多个2N3904
  • 使用更少的LED
  • 使用相同的LED,但以较少的电流驱动它们
  • 使用更大的晶体管(TIP121很容易找到)
  • 使用其他开关设备

其中,我认为降低LED电流或使用更大的晶体管可能是最可能的解决方案。其他开关设备(如继电器)可能更昂贵,更慢。


1
*使用IRLML2502 MOSFET,这是我今天最喜欢的组件。:-)
Anindo Ghosh 2013年

我正在使用5个红色LED灯条(每个中有10个LED)。我在每个LED上串联了一个330欧姆的电阻,因此每个LED的电流约为2 mA。这总计少于晶体管的规格(我想-我在计算总电流使用时总是有些困惑!)
Adam

这似乎不太可能。您的电阻器将引起330Ωx 0.002A = 0.66V的电压降,因此,除非您的LED的Vf为4.34V(对于红色LED而言通常不会很高),否则您的电流可能会更高。
microtherion

1
该答案仅考虑并联的LED。LED可能是两个串联的。因此,电流将为20mA * 25链。但是对于一个LED,@ Adam 2mA很低,它们甚至会在该电流消耗时点亮吗?
路人2013年

1
@Passerby,可以理解。我敢肯定,某些​​大功率电源确实需要更多电源才能打开。但是,我使用过的普通LED可以满足小电流(甚至远远小于1mA)的要求,尽管它们不会发出非常亮的光。实际上,我的这个项目中的LED每个仅使用1.8mA的电流。而且,由于它们是多路复用的,并且只有三分之一的时间,因此有效电流更像是0.6mA。即使如此,也可以在远距离的强光下轻松看到显示屏。projectsbykec.com/projects/miscellaneous/...
库尔特E. CLOTHIER

3

考虑到给定的信息(在1.95V处记录了50个红色LED,5v电源,2mA电流,330Ω电阻器),下面的方法将起作用。

考虑到常见的LED电阻计算:

Vcc- 正向电压)/电流其中Vcc为5v,每个LED的正向电压为1.95v,因为我们有两个串联的1.95v * 2,而所需电流为2mA。
(5-(1.95 * 2))/ 0.002或(
5-3.9 )/ 0.002或1.1 / 0.002 =550。由于您具有330Ω电阻器,因此对其进行调节将使每个系列产生3mA的电流。不是每个LED,而是每个系列,因为串联路径中的电流相等。每个电阻系列(在这种情况下为两个)将使用相同的3mA电流。因此,这可将方程式简化为3mA * 25个串联链,只需切换75mA。

任何常见的小信号晶体管(如2n3904)都可以处理75mA电流而不会出现问题。在晶体管基极和MCU引脚之间使用一个1kΩ的基极电阻。

注意,下面的示意图仅显示一个led灯条,您只需以相同的方式添加其余的。将第一个LED的阴极连接到下一个LED的阳极,每对一个电阻。

原理图

模拟此电路 –使用CircuitLab创建的原理图


-3

您应该使用Arduino上的引脚来控制打开继电器的晶体管,并且继电器触点通过接地将所有LED点亮。如果必须使用晶体管,则需要找到一个能够处理所有电流的晶体管。即使使用继电器,也请务必检查接触电流额定值。请参见下面的示例电路。根据您选择的继电器的额定电流和线圈电阻,您可能需要R2,也可能不需要。

在此处输入图片说明


继电器具有相对较高的切换时间,并且机械寿命有限。可能值得要求OP确认他们不想很快或太频繁地切换LED。
Anindo Ghosh

谢谢。我认为中继对于我的应用程序来说太慢了。我在原始帖子中添加了评论。
亚当

当有如此多的晶体管可以切换非常大的电流时,使用继电器绝对没有意义!除了继电器的慢速和巨大的尺寸外,电气解决方案几乎总是比机械解决方案寿命更长,而且性能优于机械解决方案。
Kurt E. Clothier

尽管中继可能不是最佳选择,但它们是可行的选择(无法承受速度)。+1弥补被否决的任何人。
路人2013年

那就是我的意思:这不是最好的选择,但我不会拒绝...如果使用任何形式的脉冲控制,则继电器如果能够完全处理脉冲速度,则其寿命将非常短。
Kurt E. Clothier
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.