问题是您(还)不了解要应用的正确基本理论:-)。
但是 - 恭喜您尝试自己解决。坚持下去,你很快就会熟悉如何正确计算它。
电压、电流和电阻可以通过水的类比来很好地模拟。电压类似于水库中的泵送压力或“水头”压力,电流类似于电流,阻力类似于管道对水流的阻力或液压马达提供的流动阻力。
因此,您的模型的“错误”是假设 Arduino 的电流额定值是驱动发生的事情的原因,而重要的是电压或泵送压力。
如果 Arduino 的 3V3 电路的额定电流为 50 mA,则这是允许流动的最大电流,而不是必须流动的电流量。
使用您的 ASCII 艺术电路图:
330 ohms .......
------------------^^^^---------| LED |-----
| ``````` |
| |
(3.3V) |
| |
| |
-------------------------------------------
这里的关键方程(欧姆定律的一种排列)是
这表示电流将随着施加电压的增加而增加,并随着电阻的增加而减少。这里有一个额外的因素只是为了让事情变得更有趣。LED 的作用类似于恒定电压“吸收器”。也就是说,当电流增加到某个初始限制以上时,电压不会随电流线性增加——它会增加,但会以低于电流增加率的速度增加。
重新排列你得到的方程
这使您可以计算在给定可用电压下获得给定电流所需的电阻值。在我们可以应用它之前,我们需要了解一个“陷阱”。
当在其设计电流范围内工作时,大多数 LED 的电压降范围都相当有限。现代白光 LED 可能开始发光,LED 上的“压降”约为 2.8V,在 20 mA 时压降为 3V3(= 3.3 伏)(这通常是 3mm 和 5mm 引线 LED 的最大设计工作电流) ,) 并因 LED 上的 3V8 过电流而烧毁。典型的数字会有所不同,但这给出了一些想法。现代红色 LED 在 2.5 V 额定电流下运行时可能具有正向电压降,而红外 LED 可能在 1.8V 典型值下运行。在计算 LED 电流时,您可以从 LED 数据表中的典型正向压降开始。
典型的红色 LED
这是典型的现代红色 LED 的数据表。这是 Kingbright WP7113ID。我通过找到 Digikey 出售的最便宜的现货 5 毫米含铅 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 - 如上所述。数据表说 LED 的 Vf 在 20 mA 时可能高达 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 mA
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 特定 - 值和颜色代码 - 更集中但整体不太有用