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

Arduino第一課:LED串流電阻的學問

 

一般而言,在Arduino學習中,第一步都是學習驅動(點亮)LED,這就如同學習程式語言一樣,第一課都是如何顯示出「Hello! World!」字串。

不過,多數Arduino初學書也多會說,在將13號接腳接到LED正極前,必須串接一個220歐姆的電阻,或者在LED負極接地前,要串接上一個220Ω(歐姆)的電阻,二擇一均可。

更粗略的教學書可能說不用串,但比較詳細的教學書會說這個電阻要串,否則容易因過高的驅動電壓而損壞LED。另外有一種更粗略的教學,因為有些Arduino系統板已經直接在13號腳位接上LED,所以連外接LED的電路都不說明,直接教導用程式驅動系統板上的LED,那所學到的就更少了。

即便如此,一般教學書不會進一步解釋,為何是220歐姆的電阻?而不是221歐姆的電阻?也不是219歐姆的電阻?但在這裡,我們要對此進行解釋,這個電阻阻值是如何決定的,但在說明之前,各位必須先了解何謂歐姆定律,以及電壓的分壓技術才行。

認識基本原理

1. Arduino的I/O最高驅動力

首先說明Arduino的I/O驅動力,Arduino的接腳設定為輸出時,若為高電位輸出,電壓為5V,最大可以的輸出電流為40mA(毫安培),若輸出電流比這個大,則Arduino的主控晶片(ATmega系列微控制器)是會燒毀的。

2. LED的最低驅動要求

想要點亮LED,一般而言(在此以億光的313型LED為主)需要2V電壓及20mA電流,最高則可承受2.4V電壓與瞬間160mA電流,超過這個限度,LED就會燒毀。

達到省電效果的設計

了解上述後,我們只是確保如何安全點亮LED,才不會燒毀Arduino晶片或燒毀LED,但確保之後我們進一步需要的,是如何以最低的用電來點亮LED,達到省電效果。

1. 從LED電氣特性下手

要達到這個效果,先要了解LED的電氣特性,LED是發光二極體,二極體自身的電阻值,是隨著電壓高低與電流高低而不同的,各位先看下圖圖a,在電壓2V時電流是20mA,而電壓2.2V時電流是30mA,各位除一除,會發現電阻值是會變的:

313 LED Curve

2V/20mA=100Ω
2.2V/30mA=73.3Ω
2.4V/40mA=60Ω

為了達到最低2V、20mA的要求,我們必須用電壓的分壓方式,讓接入LED正極的電壓,剛好在2V左右,而用串接的電阻,將電壓從5V降至2V,因此經過計算,需要在I/O埠到LED正極間,串接一個150歐姆的電阻才行,如此電壓電流特性改變如下:

  • LED本身100Ω,串接上150Ω,變成整體250Ω。
  • 5V驅動電壓流經整個路徑的電流為:5V/250Ω=20mA。
  • 如此,5V電壓流經串接電阻後,電壓已降至2V,2V到達LED正極時,為最低的驅動、導通電壓,進而點亮LED。

不過,以最低條件點亮的LED,亮度也偏低,約250mcd(微坎德拉,candela=cd),最高則至500mcd。

若希望更亮一點,則可以再降低串接的電阻阻值,則電壓、電流都會增強,耗電會增加,但也會比較亮一點,但依然不要超過上述的LED限度或ATmega微控器的限度,否則會燒毀LED或晶片。

2. 從控制亮滅頻率下手

另外,還有一種省電作法,是以偷時間的方式來導通LED,因為人眼有暫態效果,只要夠頻繁的亮滅,人其實會以為是連續點亮,例如每秒亮滅20次,人眼就會以為一直亮著,這時可以運用程式技巧來控制快速亮滅,進而達到省電。

用每秒20次的亮滅雖可省電,但仔細一看,會看到燈號有點飄的感覺,若希望穩定點,則亮滅次數要增加。

進一步的,一般而言LED只用來當燈號指示,上述的亮滅就足夠,但若是拿來當LED照明,例如當檯燈,則要更多的亮滅次數,才能避免人眼長期觀看時的疲勞,所以要每秒60次,甚至120次為佳,這一樣透過程式控制,或使用脈寬調變(PWM)輸出控制等,但此已是另一堂課,容日後有機會再說明。

最後,不同的LED有不同的導通曲線,上述是以億光313型LED為準,若改以不同廠牌或不同型號的LED,就必須重新計算,以下再以億光3294-15/T2C9-1HMB為例,各位可以比較曲線(順向電壓、順向電流)的不同:

LED Curve 2

 

陸向陽

陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。
陸向陽

上一篇: | 下一篇:

1 Comment

  1. 你好!抱歉剛接觸想問問所以電阻都是計算出來的?
    如果買條狀的http://goods.ruten.com.tw/item/show?21105246351707
    兩條串聯。接arduino要幾多少電阻呢?
    算法是?
    謝謝

    Post a Reply

我想回應

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

邀您加入《MakerPro》粉絲團:Maker&Startup開發社群的學習與知識平台