文章目錄標題
驅動更多LED或其他負載
到目前為止,我們使用了較少消耗電流的零件。如果要驅動超過20mA的電流,則Arduino輸出提供的電流將不足。我們需要某種電流放大器,那就是要加電晶體。
當您想要驅動電壓與Arduino不同的東西時,您還需要一個電晶體。
從基極到射極的電流很小,導致從集極到射極的電流更高。更多信息可以在Arduino程式控制入門指南-電晶體中找到。
測量電壓和電流
在開始建構電晶體電路之前,我們需要了解要使用負載的電壓和電流消耗。
將你的負載(電動機,風扇,LED,燈泡,加熱元件,螺線管…)連接到適當的電源,將萬用表設為DC伏(v),並聯測量負載兩端或直接測量負載上的電壓。電壓與負載並聯測量。(見圖片)
現在從電源上斷開負載的負極線。然後將萬用表的紅色導線插入安培連接器,並將其設置為直流安培,然後將萬用表的黑線連接到電源的接地,將萬用表的紅線連接到負載的負極。電流始終與負載串聯測量。(見圖片)
注意:切記將紅色導線重新插入萬用表的電壓連接器,如果嘗試使用電流輸入來測量電壓,則基本上會造成短路,並燒毀萬用表的保險絲,甚至完全損壞它。使用電流連接器時,某些高端萬用表將發出蜂鳴聲並顯示警告。
計算電晶體的基極電阻(線性電流增益)
電晶體具有一定的電流增益,通常約為100。直流電流增益的符號為希臘字母bèta(β)或H FE。
I 集極-射極 = I 基極-射極 ·H FE。
在數據表中找到特定電晶體的β值。有一個稱為”DC current gain”(直流電流增益)的圖。(參見圖片)
在水平軸上,您可以找到集極電流,這是負載的電流消耗。請注意,大多數情況下,使用log值刻度。
記下與你的負載電流相對應的β值。
我們需要知道基極-射極電流,因此將集極電流除以電流增益β。
I 基極-射極 = I 集極-射極 / H FE
在得到Arduino的電源電壓時必需減掉0.7v。這是因為電晶體的基極-射極矽結的電壓降為700mV。(您不必知道為什麼會這樣,只需知道那裡存在壓降即可。)
接著使用歐姆定律來計算基極電阻的電阻值。
R base =(V Arduino -0.7v)/ I 基極-射極
注意:如果基本電流大於20mA(超過Arduino可以提供的電流),則必須使用具有更高β值的電晶體或Darlington電晶體。
例如,我想用BD139 NPN晶體管和5v Arduino驅動200mA,12v的馬達:
正如可以在上圖表看到,在200mA時電流增益約為97.
I基極-射極 = 0.2A / 97 = 0.00206A≈2.1毫安
R 基極 =(5v-0.7v)/ 2.1mA = 4.3v / 0.0021A≈2048Ω
計算電晶體的基極電阻(飽和度)
在大多數情況下,你不希望使用上面的公式,因為這僅是在電晶體的線性區域。而之所以稱為線性是因為基極電流和集極電流之間的關係是線性的(如果基極電流上升,則集極電流也跟著上升),這也稱為主動區。
但是,有一段期間基極電流的增加將不再導致集電極電流的進一步增加:代表電晶體處於飽和狀態或處於其飽和區域。這意思是最大量的電流從集極流向射極,並且集極和射極之間的壓降最低。如果要使用電晶體作為開關,這就是我們想要的結果。(CE兩端的電壓越低,電晶體的功耗越低,這是一件好事。該電壓約為200mV,但實際上,其變化範圍取決於電晶體的型號、電流、溫度等。)
上面的方程不再成立,因此我們必須找另一個方程式:作為一般經驗法則,我們說使電晶體飽和所需的基極電流約為集極電流的5-10%:
I B(sat) = I C / 10
如果知道基極電流和電壓,馬上就可以使用歐姆定律來計算所需的基極電阻。例如:
例如,要驅動200mA的電動機,我們需要0.200A / 10 = 0.020A的基本電流。使用歐姆定律:
(5V-0.7V)/ 0.020A =215Ω→220Ω
我們得到的基極電阻為220Ω。
注意:當您使用電感特性負載時,例如螺線管、繼電器、馬達等,則必須使用續流二極體。這是為了防止由於螺線管引起的電壓尖峰損壞電晶體。(突然關閉時,線圈內部會產生自感。)(參見圖片)幾乎可以使用任何續流二極體,例如,我使用常規的1N4007。
注意:Arduino的接地要跟電晶體電路的接地相連。
注意:只能將這種方法用於低壓直流負載。
低電流MOSFETs
如上所述的普通電晶體(BJT,雙極性電晶體)通過基極-射極電流工作。MOSFET(金屬氧化物半導體場效電晶體)由閘極電壓控制。(請參閱Arduino程式控制入門指南-MOSFETs)
在MOSFET的數據表中,找到閘極電壓-汲極電流的曲線圖。(參見圖,該圖適用於BUZ11 MOSFET)
如您所見,在3.3v時,電流仍然非常低,在大多數情況下沒有用。但是,在5v時,汲極電流可能足以滿足您的特定應用。
由於它非常敏感,因此建議在MOSFET的閘極上使用下拉電阻(gate bleeder),以防止產生電場並導通MOSFET。
門的作用就像一個電容器,因此當打開和關閉它時,會有很大的電流流入或流出。為了防止這種情況,電阻與閘極串聯連接。為了確保快速切換,該閘極電阻應具有相對較小的電阻,例如270歐姆。
與普通電晶體一樣,在切換電感特性負載時也應使用續流二極體。
(有關示意圖,請參見圖像)
大電流MOSFET
為了獲得更高的電流,我們必須獲得更高的電場,因此我們需要更高的閘極電壓。
我們可以使用電晶體來做到這一點,但是使用光耦合器或光隔離器會更容易。它基本上是一個紅外線LED和一個封裝的光電晶體管(光感測器)。當LED打開時,光電晶體管導通,閘極則處於較高電壓。
看起來就像只有4條(或6條)支腳的IC。
使用光耦合器還意味著Arduino與MOSFET之間沒有電氣連接,因此,如果高壓電路發生故障,則幾乎不可能將其連接到Arduino並破壞它。這是一個很大的優勢。
邏輯準位MOSFETs
一些MOSFET被設計為在高電流下工作,而無需高閘極電壓。因為它們可以直接連接到Arduino的輸出引腳(5V),所以它們被稱為邏輯準位MOSFET。
可以將它們與3.3V信號一起使用,但是最大汲極電流會低得多。(由於在閘極電壓和汲極電流之間的關係不是線性的,所以可以在圖中看到。)
大部份的邏輯準位MOSFET是FQP30N06L。
繼電器
為了驅動高壓或交流負載,您需要一個繼電器。有關更多信息,請參見Arduino程式控制入門指南-繼電器。
Arduino無法直接驅動繼電器,因此您需要一個(小型)電晶體。繼電器是一個電感特性負載,因此您需要一個續流二極體來保護電晶體。可以使用以上方法計算基極電阻。
示意圖
警告:如果您不夠小心,牆上的電源可能會殺死您。切勿將115V或230V的連接裸露在外,並在進行工作時拔下電路插頭。
摘要
- 如果您想驅動諸如馬達或照明之類的東西而消耗的電流超過20mA或以5v或3.3v以外的電壓運行,請使用電晶體,MOSFET或繼電器。
- 最好都在電晶體的基極上使用電阻來控制基極電流。
- 務必在MOSFET的閘極上使用下拉電阻。
- 切換電感特性負載時,請務必使用續流二極體。
附加:PNP電晶體
在前面的段落中,我們僅使用了NPN電晶體,該電晶體需要一個正信號才能導通。另一方面,當將負電壓施加到基極時,PNP電晶體導通來造成“負”基極-射極電流。(與射極相比,在PNP電晶體中,射極為負,射極會發射“正電荷”。仍然只有電子在運動,而正電荷僅表示沒有電子。)
看一下上面的示意圖。就像NPN變體一樣,發射器上的箭頭表示電流方向。
注意:當Arduino輸出引腳為低電位時,PNP電晶體將導通。