刚学单片机的时候,我对着电路板上的 NPN 型三极管愁了好几天。明明看书知道它能放大电流、当开关用,可一接电路要么没反应,要么三极管直接发烫,后来翻了无数手册、试了好几次电路才彻底搞懂。今天就用最接地气的方式跟你唠唠它的工作原理,还有单片机 IO 口驱动负载的实用技巧,新手朋友看完肯定能少踩很多坑~
先认认 NPN 型三极管:长得简单,作用不简单
NPN 型三极管看着小小的一个,内部结构其实是三块半导体叠起来的 —— 中间夹着一块 P 型半导体,两边各贴一块 N 型半导体。别觉得这结构玄乎,它可是电子电路里的 “万能小能手”,主要就干两件大事:放大电流和充当开关。
咱们玩单片机的时候,小信号控制大设备全靠它。比如用单片机输出的微弱电流控制电机转起来,或者让大功率 LED 灯稳定亮着,没有它还真不行。
其实搞懂三极管的特性,你再用单片机就会顺手很多。很多人都知道它能放大电流,但真正吃透它在电路里的运作逻辑,后续学大部分电子电路和芯片都会顺畅不少,这可是我踩过坑后才明白的硬道理~
三极管的符号如下图左边,咱们这篇就盯着 NPN 型的来讲,理解透了其他类型的也能举一反三。
简单说,它就像个靠小力气控制大动作的阀门,靠基极(咱们叫它 b 极)的小电流 Ib,来控制从集电极到发射极(也就是 CE 极)的大电流 Ic。这个比喻我一直用到现在,记起来特别方便。
你看左边那根细管子里的蓝色小水流,它轻轻推动杠杆,就能把大水管的阀门打开,让红色的大水流通过。蓝色水流越大,红色水流也就跟着变大。
要是这个 “水流阀门” 的放大倍数是 100,那蓝色小水流每秒流 1 千克,大水管就能允许每秒 100 千克的水流过去。
三极管的道理和这一模一样。如果它的放大倍数是 100,当基极电流 Ib 是 1 毫安时,就能允许 100 毫安的电流通过 CE 极。别看这原理听着简单,要是能真正用到电路里,你学单片机的路上就能少一个大绊脚石。
最常用电路分析:别被计算公式吓到
咱们先看三极管最常用的连接方式,对着图分析就很清晰,我当初就是盯着这个电路反复测试的。
咱们来一步步算,一点都不难。假设这个三极管的放大倍数是 100,先忽略基极的电压不计,基极电阻 Rb 是 10K,那基极电流就是 10V 除以 10K,算下来是 1 毫安。按照放大倍数,集电极电流 Ic 就该是 100 毫安。
根据欧姆定律,电阻 Rc 上的电压就是 0.1 安培乘以 50 欧姆,等于 5V。那电源总共 10V,剩下的 5V 就落在三极管的 CE 极上了,这时候三极管就处于正常的放大状态。
那咱们来做个假设:要是把 Rb 换成 1K 的电阻,基极电流就变成 10V 除以 1K,也就是 10 毫安。按 100 的放大倍数算,Ic 难道能到 1000 毫安(也就是 1 安培)?
要是真有 1 安培电流,那 Rc 上的电压就是 1 安培乘以 50 欧姆,居然有 50V!这都超过电源电压了,难道三极管还能自己发电不成?其实根本不是这么回事,当初我算到这的时候也吓了一跳,后来才发现是自己想多了。
还是用水管的例子来讲。当基极的 10 毫安电流,把主水管的阀门开到能过 1 安培水流的大小,可实际真能有 1 安培水流通过吗?
当然不行!因为电路里的 Rc 电阻,就像个固定了开口大小的阀门,串在主水管的上游。等下面三极管控制的阀门开口,超过这个固定阀门的开口后,水流就再也大不了了,只能跟着固定阀门的流量走。这时候就算把三极管的阀门开得再大,也没任何用。
咱们算一下就知道,这个固定电阻 Rc 能通过的最大电流,是 10V 除以 50 欧姆,等于 0.2 安培也就是 200 毫安。
也就是说,基极电流 Ib 增大,集电极电流 Ic 也会跟着增大。但等 Ib 涨到 2 毫安时,Ic 就到 200 毫安了。之后再怎么加大 Ib,Ic 都稳稳停在 200 毫安不动了。这个 Rc 电阻,其实就是用来限制电流,保护电路的,这个限流作用太关键了,不然三极管很容易被烧坏。
单片机 IO 口的小秘密:电压和电流的博弈
搞懂三极管后,咱们再看看单片机里 IO 口的情况,这可是实际应用中常遇到的问题。
51 单片机里 P1 到 P3 这 24 个 IO 口,电路结构都和上图差不多。咱们用电子元件,最终都是想让设备正常工作 —— 比如让 LED 灯亮、电机转,本质上就是让这些设备获得足够的电流做功。就像普通发光二极管,至少得有 1 毫安以上的电流才能亮起来。
但单片机是个 “聪明的小芯片”,它更在意 IO 口输出的电压,而不是流过的电流。它靠检测 IO 口的电压高低做逻辑判断,再输出对应的信号,这点和三极管的侧重点不太一样。
那 IO 口的电压和电流到底啥关系呢?还是用水管的例子接着唠,一看就懂。
假设把 R 这个阀门开得比较大,下面的控制阀全关掉,这时候 P 点的压力就和水箱的压力一样。要是把下面的控制阀全开,水就会顺着管线大量流出,这时候 P 点的压力就变成 0 了。这和电子电路里的逻辑特别像,三极管关断时 P 点是电源电压,导通时 P 点就接近 0 电位。
但这里有个问题:要是想让 P 点输出 0,三极管就得开到最大,电流就会特别大。单片机有 32 个 IO 口呢,要是个个都这么耗电,那电池很快就没电了,这显然不现实。
后来我翻单片机手册才发现,工程师早就想到了解决办法!你看这张图里,把上面的阀门 R 关得很小,就算下面的控制阀全关,P 点还是水箱的压力;当控制阀开大,P 点压力照样为 0,但水流却少了很多,耗电自然就降下来了。
单片机内部就是这么设计的,它的上拉电阻 R 大概是 50K,算下来最大电流只有 5V 除以 50K,等于 0.1 毫安。也就是说 P 点输出 1 的时候基本不耗电,输出 0 的时候也只耗 0.1 毫安的电。不过也正因为这个电阻太大,新手想直接用 IO 口驱动 LED 灯,就得多琢磨琢磨方法了。
IO 口外接负载:这些坑我都踩过
下面咱们具体说说 IO 口接不同负载的情况,尤其是驱动 LED 灯的部分,全是我当初试错总结的经验。
接 TTL 器件:这样接准没错
先看接 TTL 器件的情况,比如把 P1.0 接到 74HC373 的输入脚上。TTL 器件的输入阻抗特别高,大概几百 K 到几兆欧姆,咱们就按 500K 来算,相当于 P1.0 接了个 500K 的电阻到地上。
当三极管导通时,P1.0 是低电平,0.1 毫安的电流顺着 Rc 流过三极管到地,这时候那个 500K 的电阻上没电流。要是三极管截止了,电流就从 Rc 流到 500K 电阻再到地。
咱们算一下总电流:5V 除以(50K 加 500K),大概是 0.009 毫安。P1.0 点的电压就是 0.009 毫安乘以 500K,等于 4.5V。而 TTL 器件规定 2.4 到 5V 都是高电平,0 到 0.4V 是低电平,所以这种接法完全没问题,我当初做实验的时候一次就成功了。
驱动发光管:这两种接法千万别用
再说说用 S51 单片机驱动发光管的情况,这可是新手最容易翻车的地方,我当初烧过两个三极管才摸清门道。
先看图 7,发光管是上正下负的接法,按说 P1.0 输出高电位才能点亮它。要让 P1.0 输出高电位,就得让三极管截止。这时候电流从 Rc 流到发光管再到地。
但发光管得有 2.1V 以上的电压才能亮,咱们算一下电流:(5V 减 2.1V)除以 50K,只有 0.058 毫安。这么小的电流,发光管根本亮不起来,我当初盯着灯看了半天还以为灯坏了,后来测了电流才发现问题。
再看图 8 的接法,这种更危险。要让发光管亮,P1.0 得输出低电位,三极管就得导通。可导通后,电流一路从 Rc 流过三极管到地,另一路流过发光管。而且电流几乎没什么阻力,可单片机 IO 口的三极管最大只能承受 15 毫安电流,超过就会烧坏。我第一次这么接,没一会儿三极管就烫手了,赶紧断电才没造成更大损失。
正确接法:两种实用方案
那怎么接才能安全点亮发光管呢?别着急,这两种接法亲测有效。
先看图 9,在 P1.0 和电源之间接个电阻 Ri。三极管导通的时候,有两路电流从 CE 极流过,一路是内部电阻的 0.1 毫安电流,另一路是 Ri 的电流。为了不让三极管过流,咱们得算好 Ri 的阻值。
用 5V 除以 15 毫安,大概是 330 欧姆。这时候三极管电流大概 15 毫安,发光管是灭的。等三极管截止,两路电流就都从发光管流过。内部电阻的电流只有 0.06 毫安,几乎可以忽略,Ri 的电流大概 8.7 毫安,足够让发光管亮起来了。
不过这个接法有个小缺点:发光管熄灭时消耗的电流,居然比点亮时还大。要是用很多 IO 口驱动多个灯,就有点耗电了,不太划算。
再看图 10 的接法,这是我最推荐的!在发光管旁边串个电阻,再接在电源和 P1.0 之间。三极管导通时,两路电流汇合流过 CE 极,咱们选 200 欧姆左右的电阻,就能让发光管的电流保持在 15 毫安,亮度足够。
关键是三极管截止后,电流通路就断了,一点电都不耗。这种接法既安全又省电,后来我做单片机灯光项目,基本都用这种方式。而且 S51 单片机直接驱动数码管,用的也是这个原理哦~
今天把 NPN 型三极管的原理和单片机驱动技巧都拆解开讲了,这些都是我一点点试出来的经验。其实电子元件没那么难,找对比喻、多动手试,很快就能掌握。
你们平时用三极管的时候,有没有遇到过什么奇怪的问题?或者还有哪个电路知识点想弄明白?欢迎在评论区留言,下次咱们接着唠~