终极教程,带具体实验现象,1个GPIO控制2个LED显示4种状态,欢迎讨论!
芯片之家前幾天發(fā)了一篇文章,討論1個GPIO控制2個LED顯示4種狀態(tài),并沒有帶具體的實(shí)驗(yàn)現(xiàn)象,有點(diǎn)小遺憾:
絕妙!1個GPIO控制2個LED顯示4種狀態(tài),什么?你不信?(點(diǎn)擊閱讀)
今天在卓老師公眾號看到了具體的實(shí)驗(yàn)分析,并分析兩種串并聯(lián)方式的實(shí)驗(yàn)現(xiàn)象,講解的非常到位,今天分享給大家閱讀。
在下面的面包板上,演示了使用一條IO控制線控制兩個LED分別點(diǎn)亮和熄滅的四種狀態(tài)。
▲ 一個個單片機(jī)IO端口分別控制兩個LED為了理解其中的工作原理,則需要熟悉LED的兩個工作特性:
單向?qū)щ娞匦?#xff1b;
導(dǎo)通閾值特性;
正如發(fā)光二極管名字所說,LED只能向二極管那樣單向?qū)щ姲l(fā)光。如果施加電壓極性反了,LED則不工作。
導(dǎo)通閾值特性是指,只要施加的正向電壓超過一定閾值之后,LED才能夠?qū)ā_@一點(diǎn)可以從下面這支紅色LED的正向V-A特性曲線看出。
▲ 紅色LED的V-A特性上面曲線表明,只有當(dāng)正向電壓超過大約1.6V之后,電流才會出現(xiàn)快速增加。在此之前,正向?qū)娏骱苄 ?/p>
不同顏色的LED由于所使用的半導(dǎo)體材料不同,導(dǎo)通閾值電壓會有所區(qū)別。比如下面這支黃色LED的正向?qū)妷撼^了1.7V。
▲ 黃色LED的V-A曲線如果LED發(fā)射光譜中包括更短的光譜成分,則相應(yīng)的導(dǎo)通閾值會更高。下面的綠色和藍(lán)色LED的正向?qū)妷旱拈撝刀家呀?jīng)超過了2.5V了。
▲ 綠色LEDV-A特性曲線▲ 藍(lán)色LED的V-A曲線將不同LED的V-A特性曲線繪制在一起,可以凸顯出不同LED的閾值電壓的差異。值得說明的是,當(dāng)電壓小于閾值電壓的時候,LED并不是不導(dǎo)電,只是電流極小。比如在2.5V,雖然還沒有超過藍(lán)色LED的閾值電壓,但在LED燈芯處還是能夠隱約看到發(fā)光。
一旦電壓超過閾值電壓,LED正向?qū)娏鞅銜杆僭黾拥?mA以上。之后雖然電流增加很快,但在導(dǎo)通電流2 ~ 10mA之內(nèi),LED都顯示為點(diǎn)亮狀態(tài),亮度倒是看起來差不多。
▲ 不同顏色LED的伏安特性合理應(yīng)用LED的單向?qū)щ姾蛯?dǎo)通閾值特性,便可以在一條單片機(jī)IO口的四種工作狀態(tài)下,來控制兩個LED的點(diǎn)亮和熄滅了。
比如利用LED管的單向?qū)ㄌ匦?#xff0c;將兩個LED正反向并聯(lián)在一起,分別連接在分壓電阻中心和單片機(jī)的IO口上,就可以實(shí)現(xiàn)單個IO口控制兩個LED的目標(biāo)。在下圖中,顯示了在一個工作在5V電壓下的單片機(jī)IO控制兩個LED(紅色,黃色)的四種狀態(tài)。
▲ 兩個LED正反并聯(lián)連接在MCU的IO口與分壓電阻中點(diǎn)當(dāng)IO口為高阻狀態(tài),兩個LED都熄滅;當(dāng)IO端口為高電平時,紅色LED點(diǎn)亮;當(dāng)IO端口為低電平的時候,黃色LED點(diǎn)亮;當(dāng)IO輸出方波信號時(通常要求頻率大于100Hz),兩個LED交替點(diǎn)亮,根據(jù)人眼色視覺暫留特性,看起來兩個LED都點(diǎn)亮了。
下面動圖顯示了IO口的四種狀態(tài)對應(yīng)兩個LED的點(diǎn)亮與熄滅。
▲ 對應(yīng)兩個LED四個狀態(tài)的IO輸出波形上面的LED并聯(lián)方案是利用了LED的單向?qū)ㄌ匦浴H绻紤]到LED的閾值特性,這種方案就會受到一定限制。比如,控制的LED綠色或者藍(lán)色時,由于它們的導(dǎo)通閾值電壓超過了2.5V,因此綠色和藍(lán)色LED就很難被點(diǎn)亮。
下面動圖顯示,綠色和藍(lán)色LED只能發(fā)出微弱的光線。
▲ 對于兩個LED四種狀態(tài)的IO波形如果當(dāng)單片機(jī)和LED的供電電壓為3.3V時,情況將會更加嚴(yán)重。比如在3.3V供電情況下,使用并聯(lián)LED方案,對于紅色的LED還可以勉強(qiáng)工作,但對于綠色和藍(lán)色LED則無法點(diǎn)亮了。
▲ 對于兩個LED四種狀態(tài)的IO波形在前面推文中則介紹了另外一種方案,即LED串聯(lián)方案,可以解決藍(lán)色和綠色LED閾值電壓高的問題。
下圖顯示了LED串聯(lián)方案電路示意圖:
▲ 兩個LED串聯(lián)控制方案當(dāng)IO端口為高阻時,由于兩個LED的導(dǎo)通閾值電壓之和大于電源電壓(+5V),它們都不導(dǎo)通;當(dāng)IO端口為低電平時;上面的綠色LED點(diǎn)亮;當(dāng)IO端口為高電平時,下面的藍(lán)色LED點(diǎn)亮;當(dāng)輸出高頻方波信號時,兩個LED都被點(diǎn)亮。
下面動圖顯示了面包板上綠色和藍(lán)色串聯(lián)工作狀態(tài)下,并一條IO端口控制的情況:
串聯(lián)LED控制模式只能應(yīng)用于兩個LED的電壓加起來超過電路電源電壓的情況。比如藍(lán)色、綠色LED,工作在3.3V,5V電壓下都是可以的。
如果將兩個LED更換成紅色(1.6V)和綠色(2.5V),使用串聯(lián)模式,則只能應(yīng)用在電源電壓小于4.1V的情況下,比如3.3V的單片機(jī)電路中。如果在5V電路中,則會出現(xiàn)兩個LED無法同時熄滅的情況。
下面就顯示了一個紅色,一個綠色LED工作在5V電源電壓下,當(dāng)IO為高阻時,它們實(shí)際上無法熄滅。
▲ 對應(yīng)兩個LED四種狀態(tài)IO波形在5V電壓下,那么對于紅色、綠色LED使用前面并聯(lián)LED方案行不行呢?
通過實(shí)驗(yàn)會發(fā)現(xiàn),也出現(xiàn)了問題。由于綠色LED在2.5V下無法點(diǎn)亮,因此并聯(lián)方案也無法工作。如下圖所示:
▲ 對應(yīng)兩個LED四種狀態(tài)IO波形那么問題來了,在5V電壓下,該使用什么方案,才能夠利用單片機(jī)一個IO口的四種模式,來分別控制一個綠色LED和一個紅色LED的點(diǎn)亮和熄滅呢?就像下面這個動圖里所示的那樣。
▲ 對于兩個LED四種狀態(tài)的IO波形如果你對并聯(lián)LED和串聯(lián)LED工作原理已經(jīng)理解了,我想此時,你的腦子里已經(jīng)有了答案了。如果你有了想法,就將答案寫在后面的留言中吧。(答案就在上圖中)分析出答案的,請把答案打在評論區(qū)!
推薦閱讀:
專輯|Linux文章匯總
專輯|程序人生
專輯|C語言
我的知識小密圈
關(guān)注公眾號,后臺回復(fù)「1024」獲取學(xué)習(xí)資料網(wǎng)盤鏈接。
歡迎點(diǎn)贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵,我都將銘記于心~
總結(jié)
以上是生活随笔為你收集整理的终极教程,带具体实验现象,1个GPIO控制2个LED显示4种状态,欢迎讨论!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R-CNN算法
- 下一篇: 工作后和在学校最大的区别是什么?