问题是您(尚未)了解适用的正确基本理论:-)。
但是-祝贺您尝试自己解决问题。坚持下去,您很快就会熟悉如何正确计算它。
可以通过水类比对电压,电流和电阻进行合理建模。电压类似于油箱中的泵送压力或“压头”压力,电流类似于电流流动,阻力类似于管道对水的阻力或由液压马达提供的对流动的阻力。
因此,模型的“错误”假设Arduino的电流额定值是驱动发生的事情的原因,而电压或泵压则是至关重要的。
如果Arduino的3V3电路的额定电流为50 mA,则这是应允许流过的最大电流,而不是必须流过的电流量。
使用ASCII美术电路图:
330 ohms .......
------------------^^^^---------| LED |-----
| ``````` |
| |
(3.3V) |
| |
| |
-------------------------------------------
这里的关键方程式(欧姆定律的一种排列)是
这表示电流将随着施加电压的增加而增加,并且将随着电阻的增加而减少。这里有一个额外的因素只是为了使事情变得更有趣。LED的作用类似于恒定电压的“吸收器”。也就是说,当电流增加到某个初始极限以上时,电压将不会随电流线性增加-它将增加,但增加的速度低于电流增加的速度。
重新排列得到的方程式
这使您可以计算在给定可用电压下获得给定电流所需的所需电阻值。在应用它之前,我们需要了解一个“陷阱”。
当在其设计电流范围内工作时,大多数LED的压降范围都相当有限。现代的白色LED可能会以大约2.8V的“压降”开始可见光发光,在20 mA时具有3V3(= 3.3伏)的压降(这通常是3mm和5mm引线LED的最大设计工作电流) ),并在整个LED上以3V8的过量电流烧毁。典型的数字会有所不同,但这给出了一些想法。当以2.5 V的额定电流工作时,现代的红色LED可能会具有正向压降,而红外LED的工作电压通常为1.8V(典型值)。在计算LED电流时,您可以使用LED数据表中的典型正向压降开始。
典型的红色LED
这是典型的现代红色LED的数据表。这是Kingbright WP7113ID。我通过找到Digikey出售的最便宜的库存5mm引线LED来选择它。1分是11美分。
数据表说正向电压在20 mA时通常为2.0V,因此我将使用该数字。
在20 mA下工作
由于LED两端的电压大致恒定,因此我们需要从可用电压中减去该电压,以“抽出”通过电阻的电流。我们将设计电路以提供20 mA的电流-LED的额定最大值。因此我们的先前公式变为。
对于V_LED = 2v0和Vsupply = 3V3,我们得到
- R =(3.3-2.0)/ .020 = 1.3 / .02 = 65欧姆。
68欧姆是最接近的标准“ E12” *电阻值。
电阻两端的压降= 3.3-2.0 = 1.3V-如上所述。数据表表明,在20 mA时,LEd的Vf可能高达2V5。让我们看看如果使用20 mA时Vf = 2.5V的LED会发生什么。
如上I = V / R =(Vsupply-VLED)/ R
现在我们在这里使用I =(3.3-2.5)/ 68 = 0.8 / 68 = 0.00176A〜= 12 mA。
因此我们设计为20 mA,但在这种情况下只有12 mA。同样,如果LED的Vf在20 mA时低于2.0V(可能发生),则电流将高于20 mA。总体而言,由于LED的Vf的变化,LED电流可能变化> 2:1。这就是“真正的” LED驱动器设计使用恒定电流源或近似恒定电流源的电路的原因。但是,那是另一个故事。
使用330欧姆电阻器运行
对于您的330R电阻器。
当LED Vf = 2V0时。I_LED = V / R =(3.3-2V)/ 330 =〜4毫安
LED Vf = 2V5。I_LED = V / R =(3.3-2.5V)/ 330 =〜2.4 mA
数据表没有说明什么是Vf最小值-仅是典型值和最大值-但我们假设它是1.8V。
I_LED = V / R =(3.3-1.8)/ 330 = 4.5 mA
因此,LED电流可以从2.4 mA到4 mA = 1:1.666的比率变化,具体取决于LED Vf。
但是数据手册中的Vf为20 mA。随着电流下降,Vf会“有些下降”。这是从其数据表中选择的LED的特性。
我们可以看到,Vf在2 mA时约为1.7V,在4 mA时约为1.78V,因此1.8V的假定值足以满足我们的目的。
- E12-精度为5%的最常见电阻器系列-每十年12个电阻器。
首选数字系列-搜索E12,然后阅读其余信息:-)
特定于E12-值和颜色代码-更加集中,但总体上用处不大