NPN型三極管,由三塊半導體構成,其中兩塊N型和一塊P型半導體組成,P型半導體在中間,兩塊N型半導體在兩側。三極管是電子電路中最重要的器件,它最主要的功能是電流 放大和開關作用。
NPN型三極管的工作原理是什麼?
首先就說說三極管,實際上隻要你了解了三極管的特性對你使用單片機就順手很多了。大家其實也都知道三極管具有放大作用,但如何去真正理解它卻是你以後會不會使用大部分電子電路和IC的關鍵。
我們一般所說的普通三極管是具有電流放大作用的器件。其它的三極管也都是在這個原理基礎上功能延伸。三極管的符号如下圖左邊,我們就以NPN型三極管為例來說說它的工作原理。
它就是一個以b(基極)電流Ib來驅動流過CE的電流Ic的器件,它的工作原理很像一個可控制的閥門。
左邊細管子裡藍色的小水流沖動杠杆使大水管的閥門開大,就可允許較大紅色的水流通過這個閥門。當藍色水流越大,也就使大管中紅色的水流更大。如果放大倍數是100,那麼當藍色小水流為1千克/小時,那麼就允許大管子流過100千克/小時的水。三極管的原理也跟這個一樣,放大倍數為100時,當Ib(基極電流)為1mA時,就允許100mA的電流通過Ice。
這個原理大家可能也都知道,但是把它用在電路裡的狀況能理解,那單片機的運用就少了一大障礙了。最常用的連接如下圖。
我們來分析一下這個電路,如果它的放大倍數是100,基極電壓我們不計。基極電流就是10V÷10K=1mA,集電極電流就應該是100mA。根據歐姆定律,這樣Rc上的電壓就是0.1A×50Ω=5V。那麼剩下的5V就吃在了三極管的C、E極上了。好!現在我們假如讓Rb為1K,那麼基極電流就是10V÷1K=10mA,這樣按照放大倍數100算,Ic就是不是就為1000mA也就是1A了呢?假如真的為1安,那麼Rc上的電壓為1A×50Ω=50V。啊?50V!都超過電源電壓了,三極管都成發電機了嗎?其實不是這樣的。見下圖:
我們還是用水管内流水來比喻電流,當這個控制電流為10mA時使主水管上的閥開大到能流過1A的電流,但是不是就能有1A的電流流過呢?不是的,因為上面還有個電阻,它就相當于是個固定開度的閥門,它串在這個主水管的上面,當下面那個可控制的閥開度到大于上面那個固定電阻的開度時,水流就不會再增大而是等于通過上面那個固定閥開度的水流了,因此,下面的三極管再開大開度也沒有用了。因此我們可以計算出那個固定電阻的最大電流10V÷50Ω=0.2A也就是200mA。就是說在電路中三極管基極電流增大集電極的電流也增大,當基極電流Ib增大到2mA時,集電極電流就增大到了200mA。當基極電流再增大時,集電極電流已不會再增大,就在200mA不動了。此時上面那個電阻也就是起限流作用了。下面我們來理解單片機内的IO的狀況:
在單片機内有P1-P3的24個IO口的電路都如上圖那樣。平常我們用電子電路的目的是最終讓目标器件工作,例如讓發光二極管亮起來,讓電機正常轉起來,從根本上說就是讓這些器件獲得一定的電流讓它做功。例如要讓發光二極管亮一般就需要1mA以上的電流。但是,單片機是智能芯片,它可以通過檢測各IO口的電壓值來做出邏輯分析和判斷,并能輸出高或低電壓作為結果信号,因此可以看出,單片機的各IO口注重的是所産生的電壓而不是流過R和三極管的電流。那麼單片機内IO口的電壓和電流的關系又是怎麼樣的呢?我們還是用水管流水的例子來說明。
假設我們讓R的這個閥開的較大,讓下面那個控制閥全關,這時如圖1所示可以看出P點的壓力就是水箱的壓力。當我們将下面的控制閥全開,如圖2所示,則水将以很大的水流流過管線,而此時P點的壓力為0。這個原理和電子電路很相似。通過三極管的關閉或開大來使輸出點P測得的邏輯量為1(電源電壓)或0(0電位)。但這個過程有一個問題,就是當需要P點輸出為0時,三極管将開得很大,流過的電流很大,單片機上有32個IO口,這樣消耗的電能就很多。有沒有辦法改進呢?有!見下圖:
見圖3,如果我們将上面那個閥門R關得很小,将下面的控制閥全關,這時P點的壓力仍舊會是水箱的壓力,和上面圖1是一樣的。但當我們将控制閥開大時,如圖4,P點的壓力雖然也同樣為0,但這時通過的水流就大大減少了。這樣我們既能輸出1或者0。但消耗的水卻很少。單片機裡的電路正是這樣做的,它上面的電阻R大約為50K,最大電流是5V÷50K=0.1mA。也就是說,當P輸出1時,不消耗電流,當P輸出0時消耗的電流為0.1mA。正因為它的上拉電阻R很大,因此對于初學者來說,要它直接驅動發光管或其它的負載就要有一定的方法技巧了。這裡我再和大家一起分析一下IO口外接負載時的各種情況。
我們先來看看接TTL器件的情況,當P1.0接到74HC373的一個輸入腳上時,因為TTL器件的輸入阻抗很高,大約幾百K到M歐姆級。這就相當于P1.0接了個500K(我們假設為500K)的電阻到地。這樣當三極管導通時,P1.0點為低電平,0.1mA的電流經Rc然後流過三極管一地,Ri上沒有電流流過。而當三極管截止後,電流就由Rc流過再通過Ri流到地。由于電阻分壓的作用,在Rc和Ri上各有部分電壓,P1.0點的電壓為Rc和Ri的分壓。總電流=5V÷(50K+500K)=0.009mA,則P1.0點的電壓=0.009mA×500K=4.5V。TTL規定輸出2.4-5V為高電平;輸出0.4-0為低電平。因此這樣接是正确的。下面我們再來看看用S51來驅動發光管的情況。
先來看看圖7的情況,很顯然,發光管的方向為上正下負,隻有P1.0為高電位才能點亮發光管,要讓S51的P1.0為高電位,就必須使三極管截止。當三極管截止後,電流經Rc流到發光管再從發光管流到地。要讓發光管導通必須要在發光管兩端有超過2.1V的門坎電壓。因此流過發光管的電流=(5V-2.1V)÷50K=0.058mA的電流,你們說發光管能亮嗎?
再來看圖8。由圖可以看出,要想讓發光管導通P1.0就必須為低電位。那P1.0口的三極管必須得導通。當三極管一導通後,電流一路流過Rc到三極管再從三極管流到地。另一路在發光管上消耗掉2.1V的電壓。然後一路幾乎沒有阻力地流過三極管,而IO口的三極管最大電流不能超過15mA,超了就會燒壞三極管,因此這個接法不正确。那麼如何才能讓這兩種接法都可以驅動發光管呢。見下圖:
先看圖9,在P1.0端和Vcc間接上個電阻Ri。當三極管導通時有兩路電流都要從它的CE極流過,一路是内部R上的0.1mA電流,另一路就是Ri上的電流,為了不讓三極管過流而燒壞我們就要确定它的電阻值。Ri=5V÷15mA=0.333K,就大約是330歐姆。這時流過三極管的電流就大約為15mA,此時發光管是不亮的。當三極管截止後,這兩路電流就都要從發光管流過了,這時流過發光管的電流是多少呢。S51的内部電阻上流過的電流為(5V-2.1V)÷50K=0.06mA,很小我們可以忽略不計了。流過Ri上的電流為(5V-2.1V)÷330Ω=0.0087A,也就是8.7mA。已經能讓發光管比較亮了。這樣驅動是可以的,但發現沒有,發光管不亮時所消耗的電流比發光管點亮時消耗的電流還要大。如果用許多個IO口去點亮很多發光管的話這樣的電路就不經濟了。好!這就是P1.0高電平直接驅動發光管的狀況。
再來看圖10,在和發光管串聯一個電阻後接在Vcc和P1.0之間。當三極管導通時,也是兩路電流都彙合後從三極管的CE流過,内部電阻上的電流仍為0.1mA,發光管上的電流就要由電阻Ri和發光管共同來保證不讓三極管的CE超過15mA,則電阻的确定為(5V-2.1V)÷15mA=0.193K,大約是200歐姆。這樣流過發光管的電流就約為15mA,發光管比較亮了。當三極管截止後,就阻斷了這兩路電流的通路,因此不消耗電流。這個電路是P1.0低電平直接驅動發光管的狀況,可以看出這個電路當發光管被點亮時消耗15mA的電流,而熄滅時就不消耗電流,因此這個電路是最适合用的。S51直接驅動數碼管一般也都是采用這個電路原理。
下面是數碼管的原理圖:
你看懂了嗎?
(來源:網絡)
,