一般而言,在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,各位除一除,會發現電阻值是會變的:
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為例,各位可以比較曲線(順向電壓、順向電流)的不同:
延伸閱讀
- Ollama官方模型分類觀察 - 2025/06/13
- COMPUTEX Taipei 2025量子技術展示觀察 - 2025/05/29
- Arduino Cloud Editor加入大語言模型幫手功能 - 2025/05/28
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!
2021/11/01
二極體的導通電阻應該是v-i特性曲線的斜率倒數,不能用絕數的電流數值去除以電壓值。以圖一來說,其v-i特性曲線幾近直線,斜率固定,故其電阻也幾近定值,約為(2.4-2.0)V / (40-20)mA = 0.02kΩ = 20Ω。
2020/10/04
如何知道 目前使用的 LED 的最大可用電壓與電流
(因為買了一段時間,找不到當時的紀錄)
2015/12/07
你好!抱歉剛接觸想問問所以電阻都是計算出來的?
如果買條狀的http://goods.ruten.com.tw/item/show?21105246351707
兩條串聯。接arduino要幾多少電阻呢?
算法是?
謝謝