有趣設計:驅動電子骰子至少需要幾個I/O口?
發布時間:2015-06-05 責任編輯:sherry
【導讀】最近一時衝動,買了一個成本非常低的電子骰子套件。組裝的過程還是挺有古典趣味的。這個電路的設計風格還停留在70年代:一個CD4017,一個NE555,一對晶體管。當然,我開始思考,怎樣用最高效的方式來實現呢?當然這意味著需要用到微控製器;而且還要達到我們資源利用盡可能低的目標。那麼用一個帶有3個I/O口的ATtiny10能夠實現嗎?
骰子的圖案包含7個LED,但是,你可能很快就發現其中六個LED都是成對亮滅的,所以我們就具有3對LED外加一個額外的LED需要控製。這需要四個I/O口——但還是太多了!
要減少需要的I/O口,一個很顯然的使用方法是“查理複用技術(Charliplexing)”,你能在網上找到很多關於查理複用技術電子骰子的電路圖。簡單來說,查理複用技術允許使用n個I/O口控製n²-n個LED。所以當我們采用查理複用技術時,我們就需要三個I/O口就夠了。但對於我們使用的ATtiny10來說還是太多了,因為我們還需要一個額外的I/O口來“搖骰子”。
查理複用技術使用了微控製器I/O引腳的三態特性。同時激活的隻有兩個I/O口——其中一個為高電平,另一個為低電平——而其他引腳就是高阻抗狀態。隻有以正確的極性和激活的引腳直接相連的LED才能發光。而不與引腳直接相連的路徑上的LED——比如連接到激活引腳的的是兩個串聯的LED——那麼這些LED就不會發光,這是因為二極管的非線性電流-電壓特性導致的。
現在,你可能會疑惑當隻有一個I/O口(而不是兩個)激活時會發生什麼了?在查理複用技術的方案中什麼也不會發生,但我們可以利用這一點。

以上的電路展示了怎樣以不同的方案連接LED。除了兩個I/O引腳之間的反平行對之外,作為查理複用技術的使用習慣,LED還需要連接到VCC(5V)和GND。串聯的四個LED(LED1-4與LED5-8)的正向電壓之和超過5V,所以當PB0和PB2處於高阻抗(Z)狀態時,這些燈都不會發光。
當PB0和PB2中有一個引腳處於高電平或低電平狀態,而另一個引腳為高阻抗狀態時,那就會有一對LED會發光。而當PB0為高電平而PB2為低電平或恰好相反時,LED9或LED10就將和一對LED並聯。這時大部分的電流會流過單個LED,所以這時隻有LED9或LED10會發光。

上表是可能的編碼。看到了嗎?兩個引腳可以控製六個部分的LED!這正是我們所需要的,任務完成了。
但需要說明一點:單個LED的亮度並不同於串聯的兩個LED。這可能需要在查理複用技術中進行校正。但是事實上由於人眼對光亮度的差異並沒有特別敏感,兩者的差異隻能說是勉強可見。
[page]
簡單測試一下(LED並未像骰子一樣排列)。看起來我們新的多複用技術能很好地工作。注意一點,該電路需要由AVR I/O接口的內部阻抗。這確實有效,但是在“真正”的設計中應當避免。


我們可以講這種新的方案成為“查理複用+(Charlieplex Plus)”。分析表明,依靠這樣的技術,一個I/O口可以比普通的查理複用技術多控製兩個LED。也就是說n個I/O口所能控製的LED數量就為2n+n²-n = n²+n。具體情況如上表所示。
你應該在你的設計中采用這種思路嗎?恐怕不應該,因為這種做法的缺陷和限製甚至比現有的查理複用還多。但是這卻很有趣!
所以回到最初,控製電子骰子最少需要多少個I/O口呢?
答案是2.
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



