本系列连载将介绍电力电子相关的基础知识和各种小知识。本系列涉及到的内容很广泛,涵盖从基础知识到应用部分的丰富内容,希望能够帮到那些“至今不好意思问别人,但又拿不准自己是否已经理解了”的人。
第一个应该了解的要数“晶体管”了。“晶体管”在电子制作领域是非常常用的易用器件,尤其是在使用Arduino等微控制器控制LED和电机时,晶体管是不可或缺的重要器件。
但是,对于电子制作初学者来说,掌握晶体管的使用方法有点难。刚开始电子制作时使用的元器件,比如电池、LED、电阻器和开关等,几乎都是两个引脚,而晶体管却有三个引脚。看到三个引脚就已经不知道应该接哪里、应该接什么了。一开始我也是这样。
在本文中,我将以电子制作中常用的方法为例介绍晶体管,内容非常适合那些完全不知道如何使用晶体管的人。
目录
1. 什么是晶体管?
晶体管的作用是“放大”和“开关”。“放大”是指“把小信号放大成大信号”,比如对收音机等设备的天线接收到的微弱信号进行放大,并通过扬声器播放出来的应用中会用到晶体管。如果您在初中或高中的技术课上焊接过收音机,可能您焊接的正是这里说的晶体管。
“开关”工作不是通过像无线电音频信号那样的平滑波(vwin 信号),而是通过0或1(数字信号)来切换ON/OFF的。在电子制作中,多被用于打开/关闭LED和电机。
图1.1 晶体管
2. 水流的比喻
用“放大”、“开关”这样词汇来表达,可能还有些人无法很直观地理解。那我们将晶体管电路的工作机制比作水流,可能更容易理解。
晶体管用图2.1左侧的电路符号表示。引脚共有三个,分别是B(基极)、E(发射极)和C(集电极)。
* “NPN型”是晶体管的类型,还有“PNP型”晶体管,不过在这里我们不必严格划分,只要了解“NPN型更常用”即可。
这次我们用图2.1右侧的水流模型来比拟左侧的晶体管。B侧的阀门可以对流过B侧的水进行开和关,并且B侧的细管和C侧的粗管上的阀门开闭是联动的。
图2.1 用水流模型比拟晶体管
我们参考图2.2,将晶体管的“开关”工作比作水流模型进行解说。如图2.2左侧所示,当B没有水流时,细管的阀门是关闭的,C(粗管)的水也不会流动。而当水如右图所示注入B时,阀门打开,C(粗管)中的水也会随之流下。
图2.2 将晶体管的工作原理比作水流模型
从这个模型可以看出,粗管阀门的开闭可以通过细管阀门的开闭来控制。
可能有人会问,“为什么要特意使用联动的阀门呢?直接开闭粗管的阀门不就可以了吗?”这里的重要之处在于“可以用小水流控制大水流(控制粗管阀门的开闭)。”能够用少量的水流打开和关闭粗管的阀门,是让人高兴的事。
就像这种水流模型一样,晶体管可以用小电流让需要大电流的设备运行,也因此会被用在“放大”和“开关”应用中。
3. 事物都是有极限的
对于电子元器件而言,根据其种类和尺寸,会有“电流最大只能流过◯◯A(安培)”和“电压只能在这个范围内使用”等限制,这种规格称为“额定值”。
例如,在电子制作中经常使用的Arduino,标准型号Arduino UNO中使用的微控制器芯片是型号为“ATMEGA328P-PU”的微控制器。
图3.1 黄框中的是ATMEGA328P-PU芯片
查看微控制器芯片ATMEGA328P-PU的技术规格书(见下图),可以看到在“电气特性-绝对最大额定值”项中显示“每个输入输出引脚的直流电流最大为40.0mA”。
图3.2 ATMEGA328P-PU电气特性
这就是说,比如当通过Arduino点亮LED时,通常会连接一个通用输入输出引脚,此时“如果电流达到40mA以上,大概率会损坏”。
假设每个LED以10mA的电流点亮,那么并联四个LED时大概率会造成损坏。如果“希望点亮10个LED!”而事实只能让最多4个LED亮起来,是不是有点难过?在这种情况下,就需要晶体管大显身手了。
4. 晶体管的基础知识和选型方法
在电子制作中使用晶体管时,最重要的因素是集电极电流(Ic)的额定值。集电极电流是流入晶体管集电极引脚的电流额定值,是表示“这个晶体管最大允许流过这么大的电流”的指标。该值的大小决定了可以将多少安培电流施加给负载(LED或电机),因此这是一个非常重要的参数。
与各引脚相关的电流名称如图4.1所示,表示“该晶体管最大可以将电流放大几倍”的电流放大系数h_FE用图4.1中的公式表示。这是一个非常简单的关系表达式,“输出电流I_C等于h_FE乘以输入电流I_B”。
图4.1 晶体管基础
当您打开网上销售晶体管的网店页面时,会发现出来很多晶体管。选择晶体管时,需要注意类型(结的结构是NPN还是PNP)、集电极电流额定值和电流放大系数。
本次使用的晶体管是“2SC1740S”。它是NPN型晶体管,集电极电流额定值为150mA。这次的作品每个LED通过10mA的电流,10个LED并联,总共需要进行100mA电流的开关,在“2SC1740S”的额定范围内。
图4.2 晶体管 2SC1740S
5. 实际试用晶体管
现在,让我们把晶体管安装在面包板上试用一下吧!首先,我们尝试只让一个LED开关。
图5.1 开关电路图(使用晶体管)
图5.2 开关电路外观(使用晶体管)
当我们实际按下开关让基极流过电流时,集电极也流过电流并且LED亮起。
6. 引脚顺序为“爱・酷・宝”
晶体管有3个引脚,分别为基极(B)、发射极(E)、集电极(C),但引脚名称并没有标在器件主体上。因此,在使用之前,一定要确认“技术规格书”,里面记载有引脚分配。技术规格书可以通过搜索产型号获取,或通过产品销售页面下载,但每次都去找有点太麻烦了,所以在这里为您介绍一种可以记住引脚顺序的方法。
晶体管引脚从左到右的方向以面向刻有产品型号的一面为基准(本次使用的“2SC1740S”为标有“C1740”的一面)。电子制作中经常用到的晶体管,按照这个方向从左到右大多数依次是发射极(E)、集电极(C)、基极(B)。这个“E、C、B”的顺序可以取其谐音“爱、酷、宝”,如果您想省去查看技术规格书的麻烦,通常可以按照这样的引脚顺序进行接线。
图6.3 晶体管引脚顺序的记忆方法
但是需要注意的是,这个“爱酷宝”的顺序并不适用于所有的晶体管。即使晶体管的外观相同,引脚的顺序也可能偶尔有不一样的,表面贴装型晶体管的引脚顺序也可能不同,所以在开始组装电路时,或使用从未使用过的晶体管型号时,一定要确认一下技术规格书。
7. 尝试增加负载
现在,使用了晶体管的开关电路已经可以用了。机会难得,让我们借此机会尝试将LED的数量从1个逐渐增加到10个!组装电路图如图7.1所示。
图7.1 开关电路图(LED×10个)
图7.2 10个LED
让10个LED闪烁时,表现如下:
8. 用Arduino使LED闪烁
最后,我们通过将前面使用了晶体管的开关电路的按钮开关部分替换为Arduino的通用输入输出端口,实现无需手指按按钮而使LED自动闪烁。在这种通过微控制器控制的情况下,晶体管可以大显身手。
*使用USB数据线从电脑向Arduino供电。
图8.1 开关电路图(使用Arduino和晶体管)
图8.2 开关电路外观(使用Arduino和晶体管)
Arduino程序并不需要做什么特别的事,只需在Arduino IDE中写入作为示例程序的“blink.ino”并执行即可。源代码中的“LED_BUITIN”是为了使用安装在Arduino UNO板上的LED时的引脚编号,由于也连接到引脚13,所以只要将引脚13与面包板上的晶体管的基极引脚相连接即可实现联动。
接线时请一定要连接面包板的GND(电池的负极)和Arduino的GND,如果不连接,电路将无法正常工作。在面包板上进行实验时,忘记接GND是一个常见的错误,所以请务必好好确认。
Arduino示例程序blink.ino(仅摘录了setup()、loop()部分)
void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
下面的视频为使用Arduino进行LED开关的表现。
我曾经提到过每个Arduino端口的绝对最大额定电流是40mA,但是通过像这次这样使用晶体管,就可以控制超出该范围的负载开关。
9. 总结
在本文中,我们学习了晶体管的基本使用方法,同时,还尝试了通过按钮开关和Arduino让晶体管发挥开关作用。毫不夸张地说,不仅控制LED和电机的时候要用到晶体管,在传感器和放大器等相关电子制作中,几乎都会用得到晶体管。如果您能够熟练使用晶体管,那么您将能够在更宽广的电子制作世界中享受其中的妙趣,所以,欢迎大家积极挑战各种电路的制作!
评论
查看更多