前面点灯、让灯呼吸、让灯流水,接线里从头到尾没有出现过电阻。几乎所有入门电路图上都画着一颗电阻------那颗电阻去哪了?
它没丢,只是已经被装进 LED 自己身上了。
LED 只认压差
先看清 LED 是什么。它不是一只小灯泡,是一个 PN 结:电流只能从正极流向负极,而且它不像电阻那样"电压加一倍、电流也加一倍"。PN 结的特性是------两端压差小于某个值时几乎不导电,一旦越过这个值,电流就涨得极快。(模电突然攻击我)
这个"开始导电的压差"叫正向压降。它由材料和颜色决定,跟灯珠多大多亮关系不大:
| 灯珠颜色 | 常见正向压降 |
|---|---|
| 红外 | 约 1.2~1.5V |
| 红、黄 | 约 1.8~2.2V |
| 绿、蓝、白 | 约 2.8~3.2V |
具体数值以灯珠资料为准,同一颜色不同批次也会有差别;压降还会随电流略有变化,电流越大,压降略微升高。这张表里最要紧的不是数字本身,而是"压降大致固定"这件事------它意味着灯珠两端的压差不能由你随便定,剩下的那部分电压,只能落在别的东西上。(一般买到的那种有帽子的 LED 都是自带电阻的,不用担心)
不串电阻会发生什么
把一颗红色灯珠直接接到 3.3V 和 GND 之间,接上去的那一刻,它两端就是 3.3V。灯珠能承受的压差大约 2V,多出来的 1.3V 没有任何东西去承担,电流一路涨上去,涨到灯珠或者提供电压的那一端扛不住为止。
结果通常是两种:灯珠发热烧掉,或者芯片的引脚被硬生生拽出超出规格的电流。前一种损失一颗灯珠,后一种可能损失一个引脚------甚至把整块板子带走。
有人会问:既然灯珠这么怕电压,为什么厂家不把电阻直接做进灯珠里?答案在电压上:同一颗灯珠,接在 3.3V 系统里需要一颗电阻,接在 5V 系统里需要另一颗,接在 12V 系统里又是第三颗。电阻做死在灯珠里,就把它锁死到某一种供电上了。所以电阻只能放在外面,由接线的人按自己的电压算。
电阻做的事:把多余电压吃掉
限流电阻串在灯珠回路里,和灯珠分担这 3.3V 或 5V。灯珠拿走它的正向压降,剩下的电压落在电阻上。电压落在电阻上,就有了电流;电阻越大,同样的电压只能推出越小的电流。
于是算电阻只用一个式子:
电阻 = (供电电压 − 灯珠正向压降)÷ 想要的电流
三个例子看得更清楚。
3.3V 点亮一颗红色灯珠,想让它走 5mA :红色灯珠按 2V 算,电阻上要落 1.3V,1.3 ÷ 0.005 = 260Ω。买不到 260Ω 的成品就往上取一档,330Ω 很常见,电流会略小一点,灯稍暗一些。
3.3V 点亮一颗蓝色或白色灯珠 :这类灯珠压降就接近 3V,电阻上只剩零点几伏。想让 5mA 通过,0.3 ÷ 0.005 = 60Ω;如果按 3.2V 算,只剩 0.1V,电阻就变成 20Ω。同一颗灯珠,压降估偏 0.2V,算出来的阻值就差好几倍。蓝白灯珠接 3.3V 本来就"贴着头顶",裕量小,对压降偏差和电压波动都更敏感。
5V 点亮同一颗红色灯珠,想让它走 10mA :3 ÷ 0.01 = 300Ω,取 330Ω。
这三个例子里,电流都只有几毫安。几毫安就足够点亮指示灯------亮度够用就行,不必追求把灯推到极限。想更亮就把电流调大一点,但每次都要重新核对灯珠和引脚各自能承受多少。
前面那三颗灯为什么没写电阻
因为本系列用的那种面包板 LED 自带限流电阻。它把灯珠和电阻一起做在一个小模块里,你在外面看到的只是一个"正极、负极"两个脚的元件。正极接 PC13、负极接 GND,电阻已经在里面等着了。
再串一颗几百欧的电阻会怎样?不会烧,但灯会明显变暗:回路里多了一颗电阻,同样的电压能推出来的电流更小。这类"重复加电阻"不会立刻出故障,只是让本来正常的亮度变得难以解释。
所以判断标准不是"电路图上画没画电阻",而是回路里到底有没有电阻。有,就不必再加;没有,就必须补上。
什么时候必须自己算
下面这几种情况,电阻不在你手上,得自己算:
- 散装灯珠:买来一小袋 3mm、5mm 的裸 LED,只有两根长脚,没有模块外壳。
- 自己画板或焊在洞洞板上:贴片 LED 只有一个封装,电阻要另外放。
- 多颗灯珠并联:每颗灯珠的正向压降不会完全相同,压降低的那颗会抢走大部分电流,亮得刺眼、也最容易先坏。要么每颗各配一颗电阻,要么换成功率更大的灯珠配合合适电路。
- 用 LED 替换原有指示灯:新灯珠的压降、电流可能和原来那颗完全不同。
- 供电电压变了:原来按 3.3V 算的电阻,接到 5V 上,电流会立刻变大。
还有一种情况容易被忘掉:想用 GPIO 直接驱动多颗并联灯珠,或者驱动大功率灯珠。灯珠越多、越亮,电流越大;引脚能给出的电流有限,超出了它不会报错,只会悄悄发热、或者输出电平压根拉不到应有的位置。这类负载应当交给三极管或专用驱动芯片,而不是让 GPIO 硬扛。
怎么确认手上的灯珠要不要加电阻
三条路,任选一条走通就行。
看实物。 灯珠被装在小模块上、旁边有贴片元件、或者商品页面、模块说明里明确写着"内置限流电阻",就不必再加。裸灯珠只有两根引脚、周围什么都没有,就必须加。
查资料。 商品页面或数据手册一般会给出正向压降和额定电流。有了这两个数,套上面的式子就能算出电阻。没有资料时,宁可按"没有内置电阻"处理。
量一下。 手边有万用表的话,拨到二极管档,红表笔接正极、黑表笔接负极。按原理,表上会显示这颗灯珠的正向压降,单位是伏;如果这时灯珠微微发亮,说明表笔给出的电流已经在推动它了。把表笔反过来接,读数变成开路------这也顺手确认了极性。
至于"回路里是不是已经有电阻",可以在断电状态下用电阻档量两个脚:读到几百欧到几千欧的稳定数值,说明里面串着电阻;两个方向都是开路或读数极大,说明这是一颗裸灯珠,电阻得自己补。
常见的坑
不亮就换灯珠。 接反了不亮、电阻算大了不亮、电压不够也不亮。先把这三种逐个排除,再怀疑灯珠坏了。
以为颜色越亮越费电。 亮度更多取决于电流和封装效率,不是颜色。同样几毫安,高亮封装可以亮得多。
电阻值随意抓一颗。 手边只有 10kΩ,串上去灯几乎不亮;抓一颗 10Ω,灯可能亮一下就没。想省事就按式子算,再往上取一档。
用引脚数目判断正负。 长脚是正极、短脚是负极,这是直插灯珠的惯例;但也有剪平了、或者被装进模块的情况。以资料或测量结果为准,不要只凭脚长。
最后橘猫说
灯珠的正向压降大致固定,所以剩下的电压必须有东西去承担------限流电阻就是干这件事的,它把多余的电压吃掉,把电流压到灯珠和引脚都能接受的范围。要不要加电阻,看的不是电路图上的那个符号,而是回路里有没有真的电阻:本系列那种面包板 LED 已经把它做在里面,散装灯珠、贴片灯珠和改变供电电压时才需要自己算。算的时候记住一个态度:几毫安稳稳点亮,比推到极限再把灯换成一次性耗材划算得多。
最后蜘蛛说
嵌入式第一课:点亮一颗 LED;第二课:学会换 LED