截至目前為止,我們都是用電腦的 USB 為 Arduino 供電,但一個實際的成品當然不會要用戶一直將 Arduino 與電腦進行連結,就只為了供電而已
在 Arduino Uno 板上有四個途徑可以對板子進行供電
1. USB口 ,也就是你平常連接到電腦的那個傳輸口 (其它型號的板子亦同)
2. 板子上的 5V 腳位
3. 外部電源口(只有 Arduino Uno 有做出 DC2.1 接頭出來)
4. 板子上的 Vin 腳位 (所有型號的板子皆有)
1 跟 2 對 Arduino 供電的途徑是等效的;3 跟 4 對 Arduino 供電的途徑是等效的
只要四擇一即可
接下來我們提一下使用各種途徑進行供電時,幾種可行的方法
1. USB口
除了電腦的 USB 口以外,我們可以運用手機的充電器(豆腐頭),來代替電腦以對版子進行供電,這是一個可行性很不錯的點子
因手機的充電器裡面就是一個整流器,將 AC 110V 的電壓轉換為 DC 5V 並且外接出 USB 的母頭以供我們連接
2. 版子上的 5V 腳位
若不想用手機充電器或是 USB 線的話,還可以自己去購買人家做好的"整流器",事實上它就是把手機充電器的外殼拆開,並且沒有 USB 母頭而已
在拍賣網搜尋關鍵字 " AC110 DC5V 電源模組 " 就會有很多選擇了
在選購的時候主要是依據自己應用時所需要的電流大小來做選擇。電流輸出能力 500mA 尚可,考量到市面上很多灌水的可能性,若能選擇 1000 mA 的尤佳
PS: 若你想使用便當盒那種的工業用電源供應器也可以,只是體積大了些
3. 外部電源口
針對 DC2.1 接頭的輸入電源口,最簡單的方式是使用 DC 9V 的 "方型電池" ,但這樣的電池並不便宜,且在日常生活的其它電器用品上已經很少被使用
我們亦可以在拍賣網搜尋關鍵字 " AC110 內2.1 "
通常這樣子搜尋出來的結果就會有很多 " AC110V to DC 的變壓器、電源供應器、電源穩壓器 ... 等等" 的產品出來
選購的重點在於它的接口必須是 "內徑2.1、輸出電壓選擇 DC 7~12V 的,如 9V, 12V 等" (因 Arduino 的外部供電建議電壓約為 7 ~ 12 V (極限 20V) )
同樣的,在選購的時候也要考慮自己應用時所需要的電流大小
電流輸出能力 500mA 尚可,考量到市面上很多灌水的可能性,若能選擇 1000 mA 的尤佳
若你想使用便當盒那種的工業用電源供應器也可以,只是體積大了些
4. 版子上的 Vin 腳位
外部電源口與板子上的 Vin 腳位相連接(所以才說是等效的),也就是一個沒有 DC2.1 接頭的電源輸入腳位
而取得 DC 7~12 V 的方法最簡單就是在拍賣網搜尋關鍵字 " AC110 DC9V 電源模組 " ( 12V亦可,只要在範圍內都可以,但這兩個是較好的選擇) 即可,這個關鍵字搜出來的,很多都會屬於先將110交流電降壓後再經過整流濾波,再經過開關型穩壓的方式來組合而成
上述這種方式,其體積較大,主要都被交流變壓器以及大電容所佔據。
除了上述這種形式之外,亦有整合型的110交流轉低壓dc的玩意兒,長相會有點像是繼電器那個模樣。但這種東西,其輸出電流的能力會較弱一些,大約在數百mA左右
典型型號為 HLK-PM01 (5v, 600mA)
同樣的,若你想使用便當盒那種的工業用電源供應器也可以,只是體積大了些
以上我們提到的方法,都是藉由家中的 AC110V 插座來間接轉換供電,但如果我是想帶著走呢?
使用電池功電
常見的電池如三號電池單顆輸出電壓為 1.5 V ;鋰電池如 18650 約為 3.7 ~ 4.2V 左右 ;也有單顆 9V, 12V 的電池,外形胖胖短短的,並不是很常見
考量成本以及續航力的情況下,現在最多產品使用 18650 鋰電池進行供電
有關 18650 可參考此篇
我們可以很簡單的藉由電池的組合得到 9V 上下的電壓,並從 Vin 腳位供電進去
如 : 6 顆 3號電池串聯 或 2~3顆鋰電池串聯 或 單顆 9V 的電池 。
在使用電池的組合進行直接供電時,不建議僅湊到 5V 上下,從 5V 腳位進行供電
為什麼?
這就要先提一下使用 Vin 供電時(或使用 DC2.1 接頭供電時)會發生什麼事
無論我們藉由 DC2.1 或 Vin 腳位將電源灌入,都會連接到降壓晶片
因降壓晶片(上圖藍框)的目的在於 "將輸入電壓降到 5V 後輸出"
但因其名為降壓,所以不得輸入一個低於 5V 的電壓。事實上,過於靠近 5V 就不行了
若輸入電壓過於接近 5V 會導致降壓晶片失效,而使得板子無法得到穩定的 5V ;若輸入電壓太高則會消耗太多的功率在降壓晶片上,導致該降壓晶片發熱
很顯然的,Arduino 輸入供電電壓的範圍與該降壓晶片的能力有關
降壓晶片也就是為什麼 Arduino 的外部供電建議電壓約為 7 ~ 12 V 的原因
在此我們要牢記一個原則
"無論你怎樣供電,最後 Arduino 的核心晶片(Atmega328P)就是需要 5V 就對了"
回到電池,如果我們湊到 5V 多一些些的電壓就直接從 5V 腳位灌進去會怎麼樣?
受限於電池本身的特性 : 當我們讓電池瞬間供給較大的電流時,電池的電壓將會瞬間下降
這時很有可能會讓電壓非常接近 5V (ex: 5.1V),甚至 5V 以下
使得降壓晶片無法得到一個合適的輸入電壓,也就會造成降壓失敗
Arduino 得不到穩定的 5V ,結果就是自己重開機 or 工作不正常
既然這樣我就把電池串到 9V 左右或直接使用 12V 的電池就好了阿 !
這樣的作法確實可行,但也不是一個太好的方法
較好的方法是 "將電池串到 5V 以上,再藉由其它方法降回 5V 後直接從 5V 腳位供電"
為什麼要這麼麻煩? 其原因在於我們前面提到的降壓晶片
記得我前面說的嗎?
若輸入電壓過於接近 5V 會導致降壓晶片失效,而使得板子無法得到穩定的 5V ;若輸入電壓太高則會消耗太多的功率在降壓晶片上,導致該降壓晶片發熱
受限於體積以及成本, Arduino 版上的降壓晶片使用的是"低壓差線性穩壓晶片(LDO)"
工作原理就不談了,基本上就是將 MOSFET 操作在線性區(或稱歐姆區)來將其當作一個可變電阻使用;
我們可以在 datasheet 中看到壓差(dropout voltage)兩字,其指的是 "輸出電壓與輸入電壓之間的最小容許差值"
含義為,在應用時我們的 (輸出電壓 - 輸入電壓) 不得低於 dropout voltage,否則 LDO 會開始不能維持其穩定。也就是
輸入電壓的最低容許值 = 輸出電壓 + dropout voltage + (一些使用經驗上的裕量)
低壓差(Low dropout voltage) 意味著可以接受輸入電壓特別接近輸出電壓,舉例來說你或許可以將 5.3V 降到 5V
無論是 Linear regulator 或是 LDO ,其特性為
"當輸出入電壓差距過大時,效率會大幅降低"
它會在電壓轉換的過程中會耗費很多的能量在降壓晶片上面,也就是發熱
我們可以簡易的計算一個 LDO 的轉換效率,假設輸出電流大約是 0.5A
且基於 LDO 特性,輸入電流 近似等於 輸出電流
輸入電壓 9V 輸入電流 0.5A 輸入端功率 = 4.5W
輸出電壓 5V 輸出電流 0.5A 輸出端功率 = 2.5W
可以得到,有 1.5W 都消耗在 LDO 上面,又假如
輸入電壓 12V 輸入電流 0.5A 輸入端功率 = 6W
輸出電壓 5V 輸出電流 0.5A 輸出端功率 = 2.5W
可以得到,有 3.5W 都消耗在 LDO 上面
由上面的舉例我們知道,輸入電壓與輸出電壓差的越大,則消耗在 LDO 上面的功率將會越大
輸出功率我們只用了 2.5W ,結果 LDO 本身額外消耗了 3.5W (總共6W)
這種事你能接受 !?
那麼 LDO 的長處在哪裡呢?
1. 輸出入電壓差距可以很小,仍然能夠保持輸出電壓的穩定
2. LDO輸出電壓品質好,電壓漣波通常為uV等級。適合需要非常乾淨的電源,或是對雜訊比較敏感的實際應用
3. 輸出入電壓之間的壓差不大,否則效率差( ex : 5V 以內)
4. 不需要大電流輸出的應用(ex : 1A 以內)
5. 落在 LDO 上的功耗是有限的,例如少於 0.8W
6. 頻寬特別寬,意謂響應速度快
7. 接地電流(又稱靜態電流)小,約數 uA。此電流意謂著 LDO 沒有輸出電流的情況下(有些 LDO 甚至支持睡眠模式,有 En 腳位),LDO 本身工作所需的電流。此性質使得 LDO 適用於特別計較長時間運作的電池供電應用
Ps: 在 datasheet 中還會看到 ground current ,此指的是 LDO 有輸出電流時,LDO自己本身所需要的電流
針對低電壓差應用時,我們稍為計算一下 LDO 的效率
輸入電壓 5.6V 輸入電流 0.5A 輸入端功率 = 2.8W
輸出電壓 5V 輸出電流 0.5A 輸出端功率 = 2.5W
可以得到,有 0.3W 消耗在 LDO 上面
輸出端功率 / 輸入端功率 = 效率 = 約為 90%
所以輸出入壓差越小的時候,越是 LDO 發揮的場合。
當 LDO 用在較高的電壓差時(如 >3V) ,就跟一般的 Linear regulator 一樣,效率低易發燙
當 LDO 上的功耗超過 0.8W 時,最聰明的做法就是以 Buck 架構的 DC-DC Converter 予以取代,但缺點是電路的體積會變大
LDO 常用的 IC 型號 : 7805(Linear regulator), LM317, LM2940, AMS1117-5, LM1117-5, LM1086
註:其中 LM317 是一個可調整輸出電壓的線性穩壓器。神奇的是,他還可以經過特殊的回授接線方式成為一個定電流源!或許配合數位電位器就能實現 4-20mA的標準電流輸出訊號了
可參考這連結與這連結
LDO 常用的 IC 型號(3.3v) : TLV74133PDBVR, TPS76733, LP2985, LDK320ADU33R, MCP1825S33
三种典型的基于AMS1117稳压IC的5v转3.3v电路
那麼多種降壓 IC ,該如何選擇呢?
在這邊提出幾個步驟
1. 先決定你的降壓 IC 需要多少伏特的輸出電壓(5V? 3.3V)
2. 你能提供多少的輸入電壓給降壓 IC ?
(For example : 使用 LM1117-5 時,輸入到 LM1117 的電壓必須大於 7V。若你沒有這麼大的輸入電壓,你可能要選擇其它 LDO)
3. 你需要降壓 IC 提供多少的輸出電流給負載?
以上三點基本上就可以淘汰到只剩下 5 種以內的選擇
4. 查看 LDO 的靜態電流(Quiescent Current)、地電流(Ground Current)以及 待機電流(Standby Current)
靜態電流 : 代表不論 LDO 有沒有負載,LDO 內部電路工作所需的基本電流
地電流 : 輸入電流減去輸出電流(包含了靜態電流)
待機電流 : 當 LDO 進入"非致能模式"(如果該 LDO 有支持的話)時,所需要的電流
以上這三個電流都是越小越好(約數 uA 甚 nA)
使用 集成型 DC-DC Converter ( buck-type )
DC-DC Converter ( buck-type ) ,此文中指的是"切換式"降壓器的 IC 集成型
" 切換式降壓 IC " (或稱開關式降壓 IC ),效率可達 90% 以上。其使用的方法跟 LDO 差不多,也是需要一個比輸出電壓還要高的電壓,然後進行降壓處理,但通常這種切換式電源的輸入電壓範圍可以比較寬。
開關型的降壓方法,其最大的缺點在於體積會比LDO大上十倍左右。其原因在於除了買切換式降壓IC本體以外,因為 IC 本身的工作需求,往往還需要外部的電容以及電感等等的元件輔助,不像 LDO 只要一個 IC 就能解決一切
輸出電壓基本上都是 5V, 9V, 12V 的規格,可以提供較大的輸出電流達到數安培等級
但缺點是 : 與 LDO 相比,切換式降壓 IC 的輸出電壓品質較差(漣波較大),所以在應用上可以在後級加上一個 LDO 來提升電源品質
在計算開關式電源的效率時,有幾個要點
1. 輸入電流不等於輸出電流
2. 可由 (輸出所需功率/輸出電壓) 大略的往回推出輸入電流的最小值
3. 在計算效率時採用 "平均功率" 的算法
集成型 DC-DC Converter ( buck-type ) 常用的 IC 型號 : LM2596, LM2576, Mp1584, LT1765
PS : 對這種方式有興趣的人可以 google 看看 "UBEC"
UBEC 這詞主要盛行於航空玩具界,其本質上就是 DC-DC Converter ( buck-type ) 。因為航空玩具(如空拍機)的應用場和,通常其體積較小、重量較輕、輸出電流數安培、輸出電壓的品質也有一定水準
使用 DC-DC Converter ( boost-type )
boost converter 為升壓型的切換式電源轉換器
升壓型的轉換器可以允許輸入電壓低於輸出電壓,如此一來我們就可以用低於 5V 的輸入電壓來得到 5V 的輸出電壓(所以就可以用一顆鋰電池 3.7 V 來達成 5V 輸出)
行動電源基本上就都是這麼幹的,其內部大多都是用 18650 鋰電池來進行並聯組合,輸出直接是 DC 5V 。且行動電源已經內建充電電路、保護裝置等,很適合拿來直接供電使用
在拍賣網搜尋 "鋰電池升壓板"就會有很多款式了
集成型 DC-DC Converter ( boost-type ) 常用的 IC 型號 : mc34063, LM2577, XL6009
順帶一提,網上也有人在賣 LM2577 + LM2596 組合而成的 “升降壓開關型” ,可以一次解決兩個煩惱
最後,提醒大家。當我們用開關式電源的方法來進行供電時,因為我們已經進行了電壓的轉換,所以在估算電池的使用時間應該用 W-h 來進行估計,而不是使用 mAh (在計算時,可以假設轉換效率為 90 % ,這數字基本上可以滿足大多的開關式電源)
舉例來說我們的板子其輸出功率需求為 5V * 100mA = 0.5W
假設電池輸出電壓 3.7 V 且安時為 1000mA-h
簡單的相乘我們可以得到電池可提供的電能為 3.7W-h ,乘上 昇壓型開關電源轉換效率 90% 之後為 3.33W-h
所以電池可以讓版子工作大約 3.33W-h/0.5W = 6.66 小時 。
順代一提,經由國外網站中的資料所述。
整體價格:多電芯行動電源最高;多電芯行動電源次之;boost converter最低
體積重量:行動電源最高;UBEC次之;boost converter最低
可供電容量:多電芯行動電源最高;boost converter最低
價格除以可供電容量(越高表示成本越貴):單電芯行動電源最高;boost converter次之;UBEC最低
補充
說到電源就不得不說起 Arduino 的省電模式,可參考
如何让Arduino用2颗5号电池运行1年以上--Arduino低功耗