文章類型
開發平台
解決方案
關注主題
文章類型
開發平台
解決方案
關注主題

【Maker Knowledge】淺談 LED 驅動的背後學問

作者:Bird

LED 是我們在製作各種 maker project 時常用的零件,這小小的、會發光的零件可以為我們的專案帶來非常多的變化和樂趣。要驅動這看似簡單的兩隻腳零件,背後其實有蠻多學問的。今天我們就來聊聊 LED 的驅動。

二極體與順向偏壓

LED 既然叫做「發光二極體」(Light Emitting Diode),顧名思義,它就是一種二極體。不過跟我們常用來整流、檢波的矽二極體不同,LED 的材料非常多變。用來製作 LED 的半導體材料有數十種,而且它們的名字都蠻嚇人的,像是鋁砷化鎵(AlGaAs)、磷化銦鎵鋁(AlInGaP)、銦氮化鎵(InGaN)等。用不同的材料製作出來的 LED 所發射的波長不一樣,也就是會發出不同顏色的光。而最重要的是,它們的順向偏壓不一樣。

所謂順向偏壓,就是當電流流過一個二極體元件時,在半導體的 P-N 接面上會有一個固定的電壓降。一般常用的矽二極體,順向偏壓大概是 0.6V 左右,而且順向偏壓會隨著流過二極體的電流增加而變大。LED 的順向偏壓則比矽二極體大得多:紅光 LED 的順向偏壓在 1.6V–2.0V 左右,藍光 LED 在 2.4V – 3.7V 上下。之所以會有這麼大的不同,主要是因為同樣是藍光 LED,有很多種不同的材料可以用來製造藍光 LED,不同材料的順向偏壓會不一樣。不過大致上來說,發出光線的波長越短,順向偏壓就越高。

既然順向偏壓是二極體上的壓降,如果我加在 LED 上的電壓小於順向偏壓,會發生什麼事?比如說,我們加一個 3.3V 的電壓在一顆順向偏壓為 3.5V 的藍光 LED 上。答案是什麼事都不會發生,因為不會有電流流過 LED,因此 LED 也不會發出任何光。什麼都沒有。

LED 的順向偏壓是點亮 LED 所需要的最小電壓,在藍光 LED 剛發明的那個年代,由於很多藍光 LED 的順向偏壓是 3.5V 甚至 3.7V,高於 3.3V 邏輯系統的電壓,因此沒辦法直接用 3.3V 的 digital I/O 去驅動它們,造成系統設計者的不少困擾。

LED 的原罪

LED 既然是二極體,它的電壓—電流特性就跟二極體一樣。下圖是一個很典型的二極體 I-V 曲線:

二極體 I-V 曲線

只要加在二極體上的電壓超過它的順向偏壓,就會開始有電流流過二極體,而且隨著電壓的增加,電流會非常迅速的增加。

由於,電流增加的速度非常快,我們很難利用加在 LED 上的電壓來控制流過它的電流。比方說,某個綠光 LED 的順向偏壓是 2.1V,當我們加 2.1V 給它時,它可能會流過 5mA 的電流,但是當電壓增加到 2.2V 時,電流可能就暴增到 50mA(這時候 LED 已經開始熱了)。

如果我們對它施加更高的電壓,比方說 3V,流過的電流可能就會超過 200mA。事實上可能在電流到達 200mA 之前,這個 LED 就已經被燒毀了。如果我們希望控制流過它的電流要是 7mA,就要供應一個只比 2.1V 高那麼一點點的電壓,可能是 2.11V 之類的。這麼精密的穩壓電源是非常難做的。

其實 LED 的順向偏壓,每顆都不一樣,即使是同一廠牌、同一型號、甚至同一批出廠的 LED,每顆都不一樣。

下表是一個典型的 LED 規格表:

LED規格表

在 foward voltage 那一欄我們可以看到這一系列的 LED,只要是磷化銦鎵鋁(AlInGaP)製成的,它的順向偏壓就有可能在 2.1V–3.0V 之間,而測試條件是流過 LED 的電流是 20mA。

換句話說,某顆 LED 的順向偏壓可能是 2.3V,當我加這個電壓給它時,它會流過 20mA 的電流。但同樣型號的另一顆 LED,它的順向偏壓可能是 2.1V,我只要加給它 2.1V 它就會流過 20mA 的電流。如果我像前一顆 LED 一樣加 2.3V 給它,它就會像前面說明的二極體 I–V 曲線一樣暴走,流過非常大的電流,而且可能燒毀。

我們不可能為每一顆 LED 準備一個專屬於它的精密穩壓電源來驅動它,而且事實上我們根本不知道每一顆 LED 的順向偏壓是多少,規格書上只告訴我們範圍,而零件買來時每顆都長一樣,除非你自己一顆一顆測,否則你也沒辦法知道它的順向偏壓是多少。

某些 LED 供應商提供一種加價購的服務:幫你測 LED 的順向電壓,然後分類出貨給你。比如說它會挑出所有順向偏壓是 2.100V–2.199V 的,包成一批給你,這時候這一批貨裡的順向偏壓變化就沒那麼大。這種作法叫做 sorting 或 binning,對於一些很在意 LED 順向偏壓的設計來說,是很重要的零件選擇和採購方法。但大部分的 LED 都是沒有經過這樣的篩選就混在一起出貨的。

電流驅動而非電壓

因為以上所說明的種種原因,用穩壓電源直接驅動 LED 幾乎不可能也不實際。LED 的亮度於流過它的電流成正比,而且高度線性,因此我們可以控制流過 LED 的電流來控制它的亮度。

下圖是一個典型的 LED 電流–亮度曲線:

LED 電流—亮度曲線

除了在極大電流時因為熱效應造成光子發射率降低的影響外,電流於亮度的關係是非常線性的。不管它的順向偏壓是 2.1V、2.3V、2.8V,只要流過一樣的電流,它們發出的亮度就會非常一致。

因為這個特性,實務上我們常用電流源來驅動 LED。像現在彩色液晶面板所使用的白光 LED 背光,通常就是用這樣的電路來驅動:

電路圖示

當然世界上沒有完全理想的電流源,這種用電流源驅動 LED 的設計條件,就是那個電流源至少要能夠產生比所有的 LED 的順向偏壓總和還要高一點點的電壓。比方說我要驅動一個 5 顆順向偏壓最大為 3.2V 的白光 LED 串聯在一起所構成的燈串,那個電流源就至少要能產生 3.2V * 5 = 16V 的電壓。

限流電阻

當我們用 Arduino 或其它的 MCU 之類的控制器來驅動 LED 時,這些用來驅動 LED 的 GPIO 接腳並沒有電流源的特性,事實上大部分的 digital output 接腳都比較近似電壓源的特性,那我們是如何避免流經 LED 的電流暴走而燒毀 LED 呢 ?

我們來看看很多人第一次接觸 Arduino 時都做過的一個電路:

運用Arduino做的電路

在 GPIO 腳跟 LED 之間串了一個電阻。這小小的電阻就是避免 LED 電流大爆走的秘密,它有個很貼切的名字,叫做限流電阻。它會限制流過 LED 的電流。照我們想要的方式。以 Arduino Uno 來說,它的 GPIO 在輸出 HIGH 時,電壓是 5V,因此這個電路就變成這樣,如下圖示:

電路圖示

假設我們用了一顆順向偏壓是 2.2V 的紅光 LED,我們希望有 5mA 的電流流過這個 LED,那 R 要放多少呢?

因為 LED 上的壓降不管怎麼樣都是 2.2V,所以限流電阻兩端的電壓差就是 5V – 2.2V = 2.8V,而流過 LED 的電流就等於流過電阻的電流,因為它們在同一個回路上。根據 歐姆定律 V=IR,我們知道電阻上的壓降、也知道流過它的電流,我們就可以計算電阻值:

2.8V = 5mA * R

R = 2.8 / 0.005 = 560 (ohm)

如果在同一個電路上,換了一顆同廠牌同型號,但是順向偏壓因為製程的誤差而只有 2.0V 的 LED 上去,那麼流過 LED 的電流會變成多少呢 ? 我們一樣可以來算一下。LED 的順向偏壓變成 2.0V,那電阻上的壓降就變成 5V – 2.0V = 3V。在電阻值不變的狀況下,流經電阻的電流變成:

3V = I * 560 ohm

I = 3 / 560 = 0.00536 (A) = 5.36 (mA)

小結

即使 LED 的順向偏壓有了 20% 的變化,因為這個限流電阻的關係,流經 LED 的電流只有 0.36mA 的變化,差不多是 7%。這就是這個限流電阻的妙用,它巧妙地利用歐姆定律讓二極體這種非線性元件的電流不會暴走。雖然我們常常根據經驗,知道用 GPIO 接腳驅動指示燈型的 LED 時,限流電阻大概就是數百歐姆左右,但下次當你再看到這種電路時,不妨試著計算一下,真正去了解它背後的原理。

(責任編輯:葉于甄)

Bird

Bird

在外商圈電子業中闖蕩多年,經歷過 NXP、Sony、Crossmatch 等企業,從事無線通訊、影像系統、手機、液晶面板、半導體、生物辨識等不同領域產品開發。熱愛學習新事物,協助新創團隊解決技術問題。台大農機系、台科大電子所畢業,熱愛賞鳥、演奏管風琴、大提琴、法國號,亦是不折不扣的熱血 maker。
Bird

上一篇: | 下一篇:

468 ad

我想回應

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

成城共創股份有限公司版權所有、轉載必究.Copyright(c) 2017 MakerPRO