學過單片機應該都知道。單片機的IO口可以輸出三種狀態:高電平、低電平、高阻。一般不同封裝和顏色的驅動電壓和電流都有些許差異,具體要參照使用LED的規格書。這里演示為2V/20mA就可額定工作條件的LED。
那么利用IO口的低電平狀態可以設計如圖方式1的驅動LED方法(這個也是不用三極管情況下常用的方式),利用IO口的高電平狀態可以設計如圖方式2的驅動LED方式。
那么大家實際搭好電路和載入驅動程序后,方式1可以完美運行,但是方式2的燈卻不能亮。為什么呢?這就要引入灌電流和拉電流的概念來解釋了。
1、灌電流:圖中第(1)個連接方式中,單片機輸出低電平時,電流方向由外部進入單片機,稱為灌電流,電流由外部電源提供。
2、拉電流:圖中第(2)個連接方式中,單片機輸出高電平時,電流方向由單片機輸出到外部,稱為拉電流,電流由單片機提供,可理解為“外部元件從單片機取電”。
如果你查看單片機的規格書,你會發現IO口允許外部灌入電流可以達到幾十mA,但是對所有IO口合計的總灌入電流是有限制的,所以你需要同時驅動幾個LED亮,可能是行不通的。而再來看單片機的拉電流是uA級別的,根本無法驅動外部LED。那么為什么高電平狀態,驅動能力這么弱呢?原因是IO口內部集成了較大的上拉電阻,而到GND是有一個開關管(阻抗非常低、可以忽略)控制的。
上面僅僅講述了單片機IO口的情況,那么舉一反三,很多IC的GPIO口都會有灌入電流和拉電流的限制,所以在使用的時候要注意這個電流的限制。
可以知道使用方式1驅動LED對LED數量是有限制的。另外如果LED發生損壞短路,也會有電流直接流入IO口,可能造成單片機損壞。就有人引入了三極管來解決這些問題,IO口只負責控制三極管通斷即可。應盡可能選三極管飽和后Vce壓降小的。這里飽和后Vce=0.1V。LED 2V/20mA驅動,那么三極管Ic=20mA。限流電阻R1=(5-2-0.1)V/20mA=145Ω,145不是標稱值,那么實際選擇150Ω的電阻,實際Ic=(5-2-0.1)V/20mA=19mA。
然后確認三極管的放大倍數Hfe,假設是100,那么三極管B極電流是19mA/100=0.19mA。
也就是說如果IO口需要驅動這個LED,必須支持的最小輸出電流至少為0.19mA。這個電流非常小,多個串口同時驅動多個LED,壓力也沒那么大。
但是假如你用的這個ICIO口最大輸出電流只有0.1mA,還是無法滿足怎么辦,那么就需要NPN+PNP兩個三極管組合來解決了。
參照上圖,如果只用一個NPN管來驅動LED,那么Ic電流=25mA,那么KRC103S 基極電流Ib=Ic/Hfe=25mA/150=0.167mA,很明顯驅動不了。那么再加入一個PNP管KRA102S,PNP管基極電流Ib=Ic/Hfe=25mA/100=0.25mA,然后NPN管導通其Ic=0.25mA,那么IO口的電流就只有0.25mA/150=0.002mA。這樣一來控制IC就能驅動LED了。
-
led
+關注
關注
242文章
23252瀏覽量
660588 -
三極管
+關注
關注
142文章
3611瀏覽量
121874 -
單片機
+關注
關注
6035文章
44554瀏覽量
634665 -
NPN
+關注
關注
11文章
2643瀏覽量
47322 -
GPIO
+關注
關注
16文章
1204瀏覽量
52055
發布評論請先 登錄
相關推薦
評論