如何通过最大4mA的GPIO引脚驱动20mA LED


16

我有一个带有GPIO的IC,我想用它来驱动LED。

由于设备将依靠电池运行,因此当LED熄灭时,请优先使用低电量(可能为零)。

GPIO开启时提供3.3V电压,关闭时提供0.0V电压。

它还具有最大4mA的限制。

LED的正向电流为20mA,期望的正向电压为2.0V。

当LED打开时,它很可能在低千赫兹范围内闪烁(使用PWM)。

戳一戳之后,我相信这可能是我需要的电路类型。

在此处输入图片说明

问题1:我是否接近正确的道路。

问题2:用于第(5)项(晶体管或Mosfet)的正确组件是什么?如何找到一个组件(在当地的Frys,RadioShack,Online)以及如何识别(指定)?

问题3:选择项目(5)是否会对电阻器项目(3)的欧姆值产生影响?除了适用于3.0V电源和2.0V LED的正常欧姆定律。

问题4:如果需要,电阻项目(2)的欧姆值为多少?

Answers:


29

您显示的电路应该可以工作,但是不必要的复杂和昂贵。这是更简单,更便宜的东西:

您可以找到的几乎所有小型NPN晶体管都可以起到这种作用。如果晶体管的BE压降为700 mV,LED压降为2.0 V,那么当LED点亮时,R1两端将有600 mV。在此示例中,这将允许17 mA的电流流过LED。如果您可以忍受LED发出的较低光并希望节省一些功率,则可以将电阻调高一些。

该电路的另一个优点是可以将晶体管的集电极连接到高于3.3 V的电压。这不会改变流经LED的电流,只会改变晶体管上的电压降,从而不会耗散多少电流。如果3.3 V来自小型稳压器,并且LED电流会增加相当大的负载,这将很有用。在这种情况下,请将集电极连接到未调节的电压。实际上,晶体管成为仅用于LED的调节器,LED电流将来自未调节的电源,不会耗尽3.3 V调节器的有限电流预算。

添加:

我看到这个电路如何工作以及为什么没有基极电阻有些困惑。

该晶体管用于发射极跟随器配置,以提供电流增益,而不是电压增益。来自数字输出的电压足以驱动LED,但不能提供足够的电流。这就是为什么电流增益有用但电压增益不必要的原因。

让我们看一下该电路,假设BE压降为固定的700 mV,CE饱和电压为200 mV,增益为20。这些都是合理的值,除了增益低之外。我现在故意使用低增益,因为稍后我们将看到晶体管仅需要最小增益。只要增益从最小值到无穷大,该电路就可以正常工作。因此,对于一个小信号晶体管,我们将以20个不切实际的低增益进行分析。如果一切正常,那么您会遇到的任何真正的小信号晶体管都可以。例如,在这种情况下,我展示的2N4401可以指望获得约50的增益。

首先要注意的是,该电路中的晶体管不会饱和。由于将基极驱动至最高3.3 V,因此由于700 mV的BE压降,发射极永远不会超过2.6V。这意味着整个CE始终至少有700 mV的电压,远高于200 mV的饱和水平。

由于晶体管始终处于“线性”区域,因此我们知道集电极电流是基极电流乘以增益。发射极电流是这两个电流之和。因此,发射极与基极的电流比为增益+1,在我们的示例中为21。

要计算各种电流,最简单的方法是从发射极开始,并使用上述关系式获得其他电流。当数字输出为3.3 V时,发射极小700 mV,即2.6V。已知LED下降2.0 V,因此R1两端留有600 mV。根据欧姆定律:600mV /36Ω= 16.7mA。这样可以很好地点亮LED,但留有一点余量,不会超过其20 mA的最大值。由于发射极电流为16.7 mA,因此基极电流必须为16.7 mA / 21 = 790 µA,集电极电流为16.7 mA-790 µA = 15.9 mA。数字输出可提供高达4 mA的电流,因此我们处于规格范围之内,甚至没有明显地加载它。

净效应是基极电压控制发射极电压,但是提供发射极电流的繁重工作由晶体管完成,而不是数字输出。来自集电极的LED电流(发射极电流)与基极之比是晶体管的增益。在上面的示例中,增益为20。对于每21个LED电流,有1个数字输出和20 V的3.3 V电源通过晶体管的集电极。

如果收益更高会怎样?整个LED电流中甚至更少的电流来自基极。增益为20时,来自收集器的20/21 = 95.2%。收益为50时为50/51 = 98.0%。无限增益为100%。这就是为什么该电路实际上非常容忍零件变化的原因。LED电流的95%或99.9%来自于通过集电极的3.3 V电源都无关紧要。数字输出上的负载将发生变化,但是在所有情况下,它都将大大低于其最大负载,因此这无关紧要。发射极电压在所有情况下都相同,因此无论晶体管增益为20、50、200或更大,LED都会看到相同的电流。

我之前提到的该电路的另一个微妙优势是集电极无需连接至3.3 V电源。例如,如果集电极连接到5 V,情况如何变化?从LED或数字输出的角度来看都没有。请记住,发射极电压是基极电压的函数。集电极电压只要高到足以使晶体管保持不饱和即可,该电压已经达到3.3V。唯一的区别是晶体管两端的CE下降。这将增加晶体管的功耗,在大多数情况下,这将成为最大集电极电压的限制因素。假设晶体管可以安全地耗散150 mW。利用16.7 mA的集电极电流,我们可以计算出集电极到发射极的电压,从而引起150 mW的功耗:

这意味着在此示例中,我们可以将集电极与3.3V至11.6 V的任何便捷电源相连。甚至不需要对其进行调节。它可能会在该范围内的任何地方波动,并且LED电流将保持稳定。例如,如果3.3 V由电流能力很小的稳压器提供,并且其中大部分已经分配,​​这将很有用。例如,如果它使用大约5 V的电源供电,则该电路可以从该5 V电源获得大部分LED电流,同时仍保持LED电流处于良好的调节状态。并且,该电路非常容忍晶体管部件的变化。只要晶体管具有某个最小增益(该增益远低于大多数小信号晶体管提供的增益),电路就可以正常工作。

这里的课程之一就是思考电路的实际工作原理。在工程学中,膝盖弯曲或迷信总是无法将电阻与基极串联在一起。在需要时放置一个,但请注意,并非总是如此,如本电路所示。


晶体管的基极缺少电流限制电阻。
路人2013年

3
@Passerby-不,不是。这是不需要的聪明拓扑。
康纳·沃尔夫

1
@AndrewKohlsmith-这也应该不受晶体管工艺变化的影响。只要晶体管具有足够的beta,任何设备都可以正常工作。
康纳·沃尔夫

2
哇,答案不错,改变了我看电路设计的方式。
abdullah kahraman 2014年

1
完全没有理由被一个合理且清晰表达的例子所吸引,并且将名称“ Olin Lathrop”视为贡献者。是的,我知道这是实际回应之后的5.5年。那是一个很好的答案。+1
jayce

3

如今,许多LED都非常亮,并且在4mA 甚至更低的电流下仍表现出色,这将为您节省额外的外部组件。我通常使用的LED在1mA时(对于我的应用)工作得非常好!

只需在LED上串联一个电阻即可,其大小足以限制电流。请检查数据表中是否指定了整个设备的最大电流。

因此,请检查您的LED是否足够亮,并直接用一个串联电阻从GPIO引脚直接连接:

[R=üd[RØp一世大号Ëd =3.3-2.0V4=1.2V4=300Ω

将其向上舍入为下一个E12值至330Ω 为了安全起见。


我只是尝试了一个10 mm的红色LED和一个5 mm的白色LED,驱动电流为2 mA,两者都很明显。在4 mA时,两者都非常亮。10 mm LED的额定电流为30 mA,而白色LED的额定电流为25 mA。
Anindo Ghosh

0

我知道您的问题是关于分立元件的,但是我认为通常情况下,您最好考虑使用基于IC的缓冲器或线路驱动器。例如,ULN2803是一个八进制缓冲器(8个I / O),将从GPIO引脚汲取的电流小于2mA,但每个输出可驱动高达500mA的电流。(这是反相逻辑,因此您的代码需要考虑到这一点)。显然,您希望为LED使用限流电阻。


0

评论原始帖子中的拟议原理图:

使用像这样的分立NMOS FET晶体管作为开关会很好。

  • MOSFET的栅极不需要串联电阻。
  • 选择一个阈值电压低于您的电源电压约1V的FET,以确保在导通时它将完全进入饱和状态,然后MOSFET两端的压降将很低。(MOSFET开关非常好。)
  • LED电流将通过ILED =(VCC-Vf-Vds)/ R设置。对于所示的数字,并假设FET两端为0.2V,R =(3.3-2.0-0.2)/ 20mA = 51或56ohms(最近的标准值)

注意:通常,LED阳极与电源相连,电阻与阴极串联。这可以通过减少开关时电路中必须充电/放电的电容量来缩短开关时间,因为阴极电压在断开时会“塌陷”到阳极电压。

如另一幅海报所述,如果LED所需的电流足够低,则可以直接使用GPIO。在开漏模式下,它与外部FET的行为相同(但反相)。但是我不建议长时间在超过1mA的电流下运行uC端口。该IC可能不会设计用于像这样的大恒定电流(可能是电迁移或自热问题)。

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.