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