有趣設(shè)計(jì):驅(qū)動(dòng)電子骰子至少需要幾個(gè)I/O口?
發(fā)布時(shí)間:2015-06-05 責(zé)任編輯:sherry
【導(dǎo)讀】最近一時(shí)沖動(dòng),買了一個(gè)成本非常低的電子骰子套件。組裝的過程還是挺有古典趣味的。這個(gè)電路的設(shè)計(jì)風(fēng)格還停留在70年代:一個(gè)CD4017,一個(gè)NE555,一對(duì)晶體管。當(dāng)然,我開始思考,怎樣用最高效的方式來實(shí)現(xiàn)呢?當(dāng)然這意味著需要用到微控制器;而且還要達(dá)到我們資源利用盡可能低的目標(biāo)。那么用一個(gè)帶有3個(gè)I/O口的ATtiny10能夠?qū)崿F(xiàn)嗎?
骰子的圖案包含7個(gè)LED,但是,你可能很快就發(fā)現(xiàn)其中六個(gè)LED都是成對(duì)亮滅的,所以我們就具有3對(duì)LED外加一個(gè)額外的LED需要控制。這需要四個(gè)I/O口——但還是太多了!
要減少需要的I/O口,一個(gè)很顯然的使用方法是“查理復(fù)用技術(shù)(Charliplexing)”,你能在網(wǎng)上找到很多關(guān)于查理復(fù)用技術(shù)電子骰子的電路圖。簡(jiǎn)單來說,查理復(fù)用技術(shù)允許使用n個(gè)I/O口控制n²-n個(gè)LED。所以當(dāng)我們采用查理復(fù)用技術(shù)時(shí),我們就需要三個(gè)I/O口就夠了。但對(duì)于我們使用的ATtiny10來說還是太多了,因?yàn)槲覀冞€需要一個(gè)額外的I/O口來“搖骰子”。
查理復(fù)用技術(shù)使用了微控制器I/O引腳的三態(tài)特性。同時(shí)激活的只有兩個(gè)I/O口——其中一個(gè)為高電平,另一個(gè)為低電平——而其他引腳就是高阻抗?fàn)顟B(tài)。只有以正確的極性和激活的引腳直接相連的LED才能發(fā)光。而不與引腳直接相連的路徑上的LED——比如連接到激活引腳的的是兩個(gè)串聯(lián)的LED——那么這些LED就不會(huì)發(fā)光,這是因?yàn)槎O管的非線性電流-電壓特性導(dǎo)致的。
現(xiàn)在,你可能會(huì)疑惑當(dāng)只有一個(gè)I/O口(而不是兩個(gè))激活時(shí)會(huì)發(fā)生什么了?在查理復(fù)用技術(shù)的方案中什么也不會(huì)發(fā)生,但我們可以利用這一點(diǎn)。
以上的電路展示了怎樣以不同的方案連接LED。除了兩個(gè)I/O引腳之間的反平行對(duì)之外,作為查理復(fù)用技術(shù)的使用習(xí)慣,LED還需要連接到VCC(5V)和GND。串聯(lián)的四個(gè)LED(LED1-4與LED5-8)的正向電壓之和超過5V,所以當(dāng)PB0和PB2處于高阻抗(Z)狀態(tài)時(shí),這些燈都不會(huì)發(fā)光。
當(dāng)PB0和PB2中有一個(gè)引腳處于高電平或低電平狀態(tài),而另一個(gè)引腳為高阻抗?fàn)顟B(tài)時(shí),那就會(huì)有一對(duì)LED會(huì)發(fā)光。而當(dāng)PB0為高電平而PB2為低電平或恰好相反時(shí),LED9或LED10就將和一對(duì)LED并聯(lián)。這時(shí)大部分的電流會(huì)流過單個(gè)LED,所以這時(shí)只有LED9或LED10會(huì)發(fā)光。
上表是可能的編碼??吹搅藛??兩個(gè)引腳可以控制六個(gè)部分的LED!這正是我們所需要的,任務(wù)完成了。
但需要說明一點(diǎn):?jiǎn)蝹€(gè)LED的亮度并不同于串聯(lián)的兩個(gè)LED。這可能需要在查理復(fù)用技術(shù)中進(jìn)行校正。但是事實(shí)上由于人眼對(duì)光亮度的差異并沒有特別敏感,兩者的差異只能說是勉強(qiáng)可見。
[page]
簡(jiǎn)單測(cè)試一下(LED并未像骰子一樣排列)??雌饋砦覀冃碌亩鄰?fù)用技術(shù)能很好地工作。注意一點(diǎn),該電路需要由AVR I/O接口的內(nèi)部阻抗。這確實(shí)有效,但是在“真正”的設(shè)計(jì)中應(yīng)當(dāng)避免。
我們可以講這種新的方案成為“查理復(fù)用+(Charlieplex Plus)”。分析表明,依靠這樣的技術(shù),一個(gè)I/O口可以比普通的查理復(fù)用技術(shù)多控制兩個(gè)LED。也就是說n個(gè)I/O口所能控制的LED數(shù)量就為2n+n²-n = n²+n。具體情況如上表所示。
你應(yīng)該在你的設(shè)計(jì)中采用這種思路嗎?恐怕不應(yīng)該,因?yàn)檫@種做法的缺陷和限制甚至比現(xiàn)有的查理復(fù)用還多。但是這卻很有趣!
所以回到最初,控制電子骰子最少需要多少個(gè)I/O口呢?
答案是2.
特別推薦
- 車用開關(guān)電源的開關(guān)頻率定多高才不影響EMC?
- 大聯(lián)大世平集團(tuán)的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎(jiǎng)之最佳技術(shù)實(shí)踐應(yīng)用”獎(jiǎng)
- 貿(mào)澤推出針對(duì)基礎(chǔ)設(shè)施和智慧城市的工程技術(shù)資源中心
- 貿(mào)澤電子開售用于IoT、智能和工業(yè)應(yīng)用的Siemens LOGO! 8.4云邏輯模塊
- 英飛凌推出全球最薄硅功率晶圓,突破技術(shù)極限并提高能效
- 東芝推出面向多種車載應(yīng)用3相直流無刷電機(jī)的新款柵極驅(qū)動(dòng)IC
- 村田開發(fā)兼顧伸縮性和可靠性的“可伸縮電路板”
技術(shù)文章更多>>
- 為惡劣工業(yè)環(huán)境中的以太網(wǎng)安裝保駕護(hù)航
- 第8講:SiC外延生長技術(shù)
- 二極管的單向?qū)щ娦院头蔡匦郧€說明
- 如何使用GaNFET設(shè)計(jì)四開關(guān)降壓-升壓DC-DC轉(zhuǎn)換器?
- 優(yōu)化SPI驅(qū)動(dòng)程序的幾種不同方法
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
攝像頭
生產(chǎn)測(cè)試
聲表諧振器
聲傳感器
濕度傳感器
石英機(jī)械表
石英石危害
時(shí)間繼電器
時(shí)鐘IC
世強(qiáng)電訊
示波器
視頻IC
視頻監(jiān)控
收發(fā)器
手機(jī)開發(fā)
受話器
數(shù)字家庭
數(shù)字家庭
數(shù)字鎖相環(huán)
雙向可控硅
水泥電阻
絲印設(shè)備
伺服電機(jī)
速度傳感器
鎖相環(huán)
胎壓監(jiān)測(cè)
太陽能
太陽能電池
泰科源
鉭電容