找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9807|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

(原創(chuàng)分享)玩了那么久光立方其實也有寫過日志,但一直存在草稿里沒發(fā)表過 第一次發(fā)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:122841 發(fā)表于 2016-5-24 15:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
材料清單:

首先要diy光立方需要買齊什么電子元件?
光立方材料清單:
主控芯片 STC90C516RD  (這個家里有就沒買)
霧狀 白發(fā)藍發(fā)光二極管 尺寸2*5*7  *550個
74HC573鎖存器  *8個 (貼片)
ULN2803
達林頓管驅(qū)動器 *1個  (貼片)
18*30cm洞洞板 *1
晶振 *1個 12MHZ
陶瓷電容 22PF  *2個
200歐電容  *64個
以及跳線、按鍵開關(guān)...
共計70元左右

在快遞寄來前,需要先畫仿真電路圖
淺談光立方硬件原理:
512個獨立LED如果要單片機單獨控制是不可能的,因為51單片機只有32個I/O口(input/output)。

所以就需要用到鎖存器,每個鎖存器能鎖存一個字節(jié)的”電平信號“,可以控制8個LED,8個鎖存器可以控制64個LED。
可以把光立方分成8層,每層共陰,八個層的陰極接ULN2803 達林頓管驅(qū)動器的8個輸出端口。而ULN2803 達林頓管驅(qū)動器的輸8個入端接P1端口,用來控制光立方的8個層哪個層可以有電流通。
如 P0 = 0X01; 二進制值 = 00000001,也就是說,
達林頓管驅(qū)動器輸出端只有第一個端口輸出低電平,其他端口都是高電平。這樣一來通過P0端口值的變換就可以用8個鎖存器循環(huán)控制第0~7層。

/*沒學(xué)過畫畫,畫的是有點丑*/




(補充信息)固定畫面的顯示,所需要硬件執(zhí)行的過程
。

1.將第一層64個點的數(shù)據(jù)傳入8個74hc573中,控制uln2803層控制芯片打開第一層開關(guān),使第一層點亮,這個時候,其他層是滅的。
2.等待時間t。
3.熄滅第一層,開始向74hc573中傳輸?shù)诙䦟拥臄?shù)據(jù),鎖存,開啟第二層總控制開關(guān),點亮第二層。
4.等待時間t。
.......
熄滅第一層,將第八層的的數(shù)據(jù)傳進所有74hc573中,鎖存,開啟第八層總開關(guān),點亮第八層。
再回到第一步,循環(huán)下去....
這樣,便實現(xiàn)了一個周期畫面的顯示,由于人眼的視覺暫留的特性,只要刷新的夠快,我們看到的就是光立方整體都在亮。便實現(xiàn)了我們想要的效果。為了畫面的穩(wěn)定,上面間隔點亮t要保持一致,否則會出現(xiàn)亮度不均的情況。
在實際使用上述電路的時候,最好給74hc573輸出的64個引腳分別加一個限流電阻,這樣能起到很好的二極管保護作用和整體功耗的限制以及亮度的調(diào)節(jié)。

對于光立方,首先要清楚其工作原理,整個點亮的過程,單片機需要一直工作的,單片機每一次發(fā)送的數(shù)據(jù)只能點亮一層的特性得知,在整個畫面顯示圖案的時候,即使是靜止的圖案,那么單片機也是在不斷循環(huán)工作的。如果單片機停止了工作,那么光立方得圖案即會消失。
又由于這個特性,如果點亮某一層后停留的時間不一樣,就會造成每一層的亮度不均勻,所以為了避免這些,需要一個準確的時間基準來依次點亮光立方的每一層,方法有很多,但單片機不能總處理這么一個任務(wù),他可能要處理的還有,動畫的實時運算,其他數(shù)據(jù)的采集和處理等,所以考慮到這些任務(wù)都是需要實時運行的,編程難度似乎加大了不少,這時需要引入單片機中斷這一基礎(chǔ)功能,難題便會迎刃而解。
首先定義一個緩存數(shù)組,用于儲存所有的光立方每一點的數(shù)據(jù),暫且理解為顯存。我通常用display[8][8]定義為數(shù)組。
下面就要定期把這個數(shù)組定期發(fā)送至驅(qū)動板中,時間如何去定義。
我查閱資料后發(fā)現(xiàn),當現(xiàn)實器播放大于15幀的動畫時,才會在我們的眼中形成流暢的效果。那么光立方刷新頻率要大于15hz/s(越大越好,但是越大單片機負載也越大),這里也就是說,每1/15秒就要進行一次全部圖的刷新,又由于在相同時間,只有一層能夠點亮,那么每一層停留的時間就是1/15/8s根據(jù)這些規(guī)則,我需要定義定時器讓定時器有相應(yīng)的數(shù)值。把這段專門用于刷新光立方顯示的程序放于中斷服務(wù)程序中。這樣,我們程序的基礎(chǔ)框架就有了。由于是定時器中斷自動來刷新驅(qū)動板數(shù)據(jù),這樣我們看到的圖像很穩(wěn)定,亮度也均勻。而且我們再寫其他的圖案動畫程序時候,不用再去考慮去更新驅(qū)動板數(shù)據(jù),一切都會由中斷自動完成。而我們?nèi)绻膱D案,我們只需要對數(shù)組所儲存的數(shù)據(jù)進行更改即可,這也使我們的動畫程序很驅(qū)動程序產(chǎn)生隔離,這樣做的好處是即使更換了驅(qū)動板,那么也只需要對驅(qū)動函數(shù)(中斷里面的程序)做相應(yīng)的改動即可,不必再對其他程序改動。這也避免了“動一發(fā)而牽全身”的尷尬局面。






快遞寄得慢也就算了,居然還少寄了!先倒騰起來

把母孔焊到洞洞板上


用硬紙板做焊接模具,掰彎發(fā)光二極管,準備焊接。



第一面焊好,燙手啊!





接著焊好板子及板子底下的跳線




接著做好給光立方供電的電源

最后光立方就做出來了


也許有人會問你光立方的制作過程怎么不全,是這樣的我這篇文章以前是寫在QQ空間的日志草稿里的,還沒全寫完。就在前幾天這個光立方被一個網(wǎng)友買走了, 這個網(wǎng)友先是在網(wǎng)上買了一個PCB板做光立方成品,然而畢業(yè)設(shè)計沒通過,就想買洞洞板的光立方于是就跟我買了。
關(guān)于我對光立方驅(qū)動程序的理解,手寫筆記也一起寄給了那個網(wǎng)友。但是我在寄快遞前用手機拍了下來


















這些程序在帖子附件中都有,想研究光立方程序的可以下載附件看看

小學(xué)生班門弄斧了,希望大家諒解!



最后說一下洞洞板制作光立方容易出現(xiàn)的一些問題
1.鎖存器的兩個腳短路的問題。
2.做好不要用母孔做光立方,容易造成燈腳與板子接觸不良和造成光立方的不整齊
3就是要注意發(fā)光二極管的漏光問題,有的LED被反向擊穿了,所以電流就會從負極流向正極。導(dǎo)致該亮的燈不亮,不該亮的燈亮。
4.國產(chǎn)鎖存器里面壞的多,我買10個國產(chǎn)鎖存器里面有一個是壞的,鎖存器第4個輸入口居然接地了,導(dǎo)致我做光立方遇到了很大的問題。

光立方仿真.zip

139.08 KB, 下載次數(shù): 60, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:122841 發(fā)表于 2016-5-24 15:24 | 只看該作者
如果閑stc90c516單片機運行速度慢的話,可以用stc12單片機做光立方,要比stc90運行速度快很多遍。
回復(fù)

使用道具 舉報

板凳
ID:122841 發(fā)表于 2016-5-24 15:46 | 只看該作者
光立方材料清單: 主控芯片 STC90C516RD  (這個家里有就沒買) 霧狀 白發(fā)藍發(fā)光二極管 尺寸2*5*7  *550個 74HC573鎖存器  *8個 (貼片) ULN2803 達林頓管驅(qū)動器 *1個  (貼片) 18*30cm洞洞板 *1 晶振 *1個 12MHZ 陶瓷電容 22PF  *2個 200歐電阻  *64個 以及跳線、按鍵開關(guān)...
回復(fù)

使用道具 舉報

地板
ID:122841 發(fā)表于 2016-5-24 16:03 | 只看該作者
回復(fù)

使用道具 舉報

5#
ID:122841 發(fā)表于 2016-5-25 22:15 | 只看該作者

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:3721 發(fā)表于 2016-5-30 08:38 | 只看該作者
好棒的diy制作啊,力頂. 視頻效果真拉風(fēng)

樓主買10個國產(chǎn)鎖存器里面有一個是壞的,估計肯定是翻新的,不知道樓主買的多少錢一個我以前買的好像是1元左右,也是遇到了壞的.國產(chǎn)貨真是悲哀.
回復(fù)

使用道具 舉報

7#
ID:122841 發(fā)表于 2016-5-30 10:59 | 只看該作者
heicc 發(fā)表于 2016-5-30 08:38
好棒的diy制作啊,力頂. 視頻效果真拉風(fēng)

樓主買10個國產(chǎn)鎖存器里面有一個是壞的,估計肯定是翻新的,不 ...

8毛一個
回復(fù)

使用道具 舉報

8#
ID:98618 發(fā)表于 2016-6-2 16:38 | 只看該作者
真是不錯,特別是樓主的筆記做的真詳細,給初學(xué)者提供了很大的幫助,樓主萬歲
樓主還是用的大塊頭的變壓器+7805供電吧,還是建議采用開關(guān)電源
回復(fù)

使用道具 舉報

9#
ID:126973 發(fā)表于 2016-6-19 16:55 來自手機 | 只看該作者
好棒啊
回復(fù)

使用道具 舉報

10#
ID:144391 發(fā)表于 2016-10-25 16:43 | 只看該作者
好好收益了
回復(fù)

使用道具 舉報

11#
ID:183264 發(fā)表于 2017-3-25 12:07 來自手機 | 只看該作者
贊一個樓主,學(xué)習(xí)到了很多東西
回復(fù)

使用道具 舉報

12#
ID:185249 發(fā)表于 2017-4-15 23:18 | 只看該作者
很厲害,贊一個,對我?guī)椭艽?/td>
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表