大家在学习单片机的时候应该都知道它引脚输出的电流是十分小的,这时候如果我们要利用单片机输出高电平来控制一个小电流(例如15mA)工作的LED灯是很容易的,但是如果需要100mA工作的电流就是不可能的了,这时候我们就可以通过驱动电路来使这个需要高电流才能工作的LED灯点亮,即利用三极管的放大特性。
LED灯驱动电路,该电路利用了三极管的工作特性曲线,使三极管工作在饱和区,此时三极管充当的作用就是一个开关,此电路利用三极管的放大电流功能,放大了单片机引脚的输出电流,驱动了需要较大电流工作的LED灯。
上图即为LED灯驱动电路,要想读懂这个原理图,我们先来介绍一下三极管。
三极管有两种类型,分别为NPN型与PNP型,我们电路图中用的是NPN型的三极管。
三极管内部可以看做是两个二极管构成的,即两个PN结。
三极管是一个电流控制元件,通俗的来说,就是电流控制的元器件。
- 当基极的电流为0时,三极管是截止状态,也就是不工作的状态,此时三极管内部的两个PN结都是属于反偏状态,也就是不导通。
- 当逐渐加大基极的电流时,三极管工作在放大状态,此时集电极的电流会与基极电流成一个比例关系,并且是放大。即Ic=βIb,这里的β就是放大系数,一般为100—300不等,具体要看使用的三极管的芯片手册。当处于放大区时,下方的PN结正偏(Ube>0),即导通(压降一般为0.7V,具体看芯片手册)。上方的PN结反偏(Ubc<0),即断开。
- 当电流加大到一定程度的时候,三极管工作在饱和状态,此时集电极的电流就不受基极电流控制了,也就是说,Ic≠βIb。即使再加大基极电流,集电极的电流也不会增加了。这里有一个很重要的特性,通过观察特性曲线可知,在饱和区时,Uce的压降十分小。在此时,两个PN结都处于正偏状态,都为导通状态。
学习完三极管后,我们就可以来具体分析一下LED灯驱动电路啦!
当IO口输出高电平时,基极会产生电流,减去R1的压降后任然是大于0.7V(Ube导通的压降条件),又因为经过R3和LED灯的压降后,一般集电极的电压就为0V了,此时Ubc肯定是大于0的,也就是正偏导通的状态,此时两个PN结都是正偏导通的状态,也就是三极管工作在饱和区的状态。经过分析可知,IO口输出高电平5v之后,三极管工作在饱和状态,此时Uce的压降十分小,LED可以直接导通。当IO口输出低电平的时候,三极管处于截止状态,LED没有形成回路,此时LED灯熄灭。
这样子,就是一个典型的IO口通过控制三极管的导通状态来实现单片机控制较大电流LED灯的点亮与熄灭啦!这里的三极管可以形象的理解为一个开关的作用。
这里的电阻怎么取值呢?
这里假设该LED灯的工作电流为100mA,三极管的导通压降为0.3V。
- 求R3,思路大概就是知道了LED灯的工作电压(一般为2V)后,减去LED灯的压降(5-2)/100mA,就是R3的阻值。(图中标注有误)
- R1可以利用放大系数来计算,思路大概就是高电平电压(5V)减去基极的导通电压(0.3V)后,除以基极的电流(100mA/β),就可以求出R1的电阻了。
这里的R2起到的作用是充当下拉电阻的作用,当IO口高电平信号停止时,R2可以防止电平信号悬空时由于干扰信号而使LED灯持续点亮。也就是说,加了这个下拉电阻后,当我们停止高电平信号时,LED灯可以灵敏快速熄灭,反之,如果不加这个下拉电阻,当我们停止这个高电平信号,LED灯会因为信号干扰而持续点亮,然后才会慢慢熄灭,也就是不那么灵敏。
这里的C1起到滤波的作用,因为IO口到基极的电路中可能会耦合一些噪声,用电容可以起到滤除这些噪声的作用。
这里的R2与C1都不是必要的,对电路要求不高时可以不加。
LED灯驱动电路的分析大概就到这里啦!