材料清單:
首先要diy光立方需要買齊什么電子元件?
光立方材料清單:
主控芯片 STC90C516RD (這個(gè)家里有就沒買)
霧狀 白發(fā)藍(lán)發(fā)光二極管 尺寸2*5*7 *550個(gè)
74HC573鎖存器 *8個(gè) (貼片)
ULN2803 達(dá)林頓管驅(qū)動器 *1個(gè) (貼片)
18*30cm洞洞板 *1
晶振 *1個(gè) 12MHZ
陶瓷電容 22PF *2個(gè)
200歐電容 *64個(gè)
以及跳線、按鍵開關(guān)...
共計(jì)70元左右
在快遞寄來前,需要先畫仿真電路圖
psb.png (159.15 KB, 下載次數(shù): 149)
下載附件
2016-5-30 08:30 上傳
淺談光立方硬件原理:
512個(gè)獨(dú)立LED如果要單片機(jī)單獨(dú)控制是不可能的,因?yàn)?1單片機(jī)只有32個(gè)I/O口(input/output)。
所以就需要用到鎖存器,每個(gè)鎖存器能鎖存一個(gè)字節(jié)的”電平信號“,可以控制8個(gè)LED,8個(gè)鎖存器可以控制64個(gè)LED。
可以把光立方分成8層,每層共陰,八個(gè)層的陰極接ULN2803 達(dá)林頓管驅(qū)動器的8個(gè)輸出端口。而ULN2803 達(dá)林頓管驅(qū)動器的輸8個(gè)入端接P1端口,用來控制光立方的8個(gè)層哪個(gè)層可以有電流通。
如 P0 = 0X01; 二進(jìn)制值 = 00000001,也就是說,達(dá)林頓管驅(qū)動器輸出端只有第一個(gè)端口輸出低電平,其他端口都是高電平。這樣一來通過P0端口值的變換就可以用8個(gè)鎖存器循環(huán)控制第0~7層。
psb1.png (97.23 KB, 下載次數(shù): 158)
下載附件
2016-5-30 08:30 上傳
/*沒學(xué)過畫畫,畫的是有點(diǎn)丑*/
(補(bǔ)充信息)固定畫面的顯示,所需要硬件執(zhí)行的過程。
1.將第一層64個(gè)點(diǎn)的數(shù)據(jù)傳入8個(gè)74hc573中,控制uln2803層控制芯片打開第一層開關(guān),使第一層點(diǎn)亮,這個(gè)時(shí)候,其他層是滅的。
2.等待時(shí)間t。 3.熄滅第一層,開始向74hc573中傳輸?shù)诙䦟拥臄?shù)據(jù),鎖存,開啟第二層總控制開關(guān),點(diǎn)亮第二層。 4.等待時(shí)間t。 ....... 熄滅第一層,將第八層的的數(shù)據(jù)傳進(jìn)所有74hc573中,鎖存,開啟第八層總開關(guān),點(diǎn)亮第八層。 再回到第一步,循環(huán)下去.... 這樣,便實(shí)現(xiàn)了一個(gè)周期畫面的顯示,由于人眼的視覺暫留的特性,只要刷新的夠快,我們看到的就是光立方整體都在亮。便實(shí)現(xiàn)了我們想要的效果。為了畫面的穩(wěn)定,上面間隔點(diǎn)亮t要保持一致,否則會出現(xiàn)亮度不均的情況。 在實(shí)際使用上述電路的時(shí)候,最好給74hc573輸出的64個(gè)引腳分別加一個(gè)限流電阻,這樣能起到很好的二極管保護(hù)作用和整體功耗的限制以及亮度的調(diào)節(jié)。
對于光立方,首先要清楚其工作原理,整個(gè)點(diǎn)亮的過程,單片機(jī)需要一直工作的,單片機(jī)每一次發(fā)送的數(shù)據(jù)只能點(diǎn)亮一層的特性得知,在整個(gè)畫面顯示圖案的時(shí)候,即使是靜止的圖案,那么單片機(jī)也是在不斷循環(huán)工作的。如果單片機(jī)停止了工作,那么光立方得圖案即會消失。 又由于這個(gè)特性,如果點(diǎn)亮某一層后停留的時(shí)間不一樣,就會造成每一層的亮度不均勻,所以為了避免這些,需要一個(gè)準(zhǔn)確的時(shí)間基準(zhǔn)來依次點(diǎn)亮光立方的每一層,方法有很多,但單片機(jī)不能總處理這么一個(gè)任務(wù),他可能要處理的還有,動畫的實(shí)時(shí)運(yùn)算,其他數(shù)據(jù)的采集和處理等,所以考慮到這些任務(wù)都是需要實(shí)時(shí)運(yùn)行的,編程難度似乎加大了不少,這時(shí)需要引入單片機(jī)中斷這一基礎(chǔ)功能,難題便會迎刃而解。 首先定義一個(gè)緩存數(shù)組,用于儲存所有的光立方每一點(diǎn)的數(shù)據(jù),暫且理解為顯存。我通常用display[8][8]定義為數(shù)組。 下面就要定期把這個(gè)數(shù)組定期發(fā)送至驅(qū)動板中,時(shí)間如何去定義。 我查閱資料后發(fā)現(xiàn),當(dāng)現(xiàn)實(shí)器播放大于15幀的動畫時(shí),才會在我們的眼中形成流暢的效果。那么光立方刷新頻率要大于15hz/s(越大越好,但是越大單片機(jī)負(fù)載也越大),這里也就是說,每1/15秒就要進(jìn)行一次全部圖的刷新,又由于在相同時(shí)間,只有一層能夠點(diǎn)亮,那么每一層停留的時(shí)間就是1/15/8s根據(jù)這些規(guī)則,我需要定義定時(shí)器讓定時(shí)器有相應(yīng)的數(shù)值。把這段專門用于刷新光立方顯示的程序放于中斷服務(wù)程序中。這樣,我們程序的基礎(chǔ)框架就有了。由于是定時(shí)器中斷自動來刷新驅(qū)動板數(shù)據(jù),這樣我們看到的圖像很穩(wěn)定,亮度也均勻。而且我們再寫其他的圖案動畫程序時(shí)候,不用再去考慮去更新驅(qū)動板數(shù)據(jù),一切都會由中斷自動完成。而我們?nèi)绻膱D案,我們只需要對數(shù)組所儲存的數(shù)據(jù)進(jìn)行更改即可,這也使我們的動畫程序很驅(qū)動程序產(chǎn)生隔離,這樣做的好處是即使更換了驅(qū)動板,那么也只需要對驅(qū)動函數(shù)(中斷里面的程序)做相應(yīng)的改動即可,不必再對其他程序改動。這也避免了“動一發(fā)而牽全身”的尷尬局面。
快遞寄得慢也就算了,居然還少寄了!先倒騰起來
把母孔焊到洞洞板上
psb2.jpg (882.74 KB, 下載次數(shù): 146)
下載附件
2016-5-30 08:30 上傳
用硬紙板做焊接模具,掰彎發(fā)光二極管,準(zhǔn)備焊接。
psb3.jpg (557.57 KB, 下載次數(shù): 154)
下載附件
2016-5-30 08:30 上傳
第一面焊好,燙手啊!
psb.jpg (557.44 KB, 下載次數(shù): 133)
下載附件
2016-5-30 08:32 上傳
接著焊好板子及板子底下的跳線
psb.jpg (231.17 KB, 下載次數(shù): 145)
下載附件
2016-5-30 08:34 上傳
接著做好給光立方供電的電源
psb2.jpg (661.76 KB, 下載次數(shù): 137)
下載附件
2016-5-30 08:32 上傳
最后光立方就做出來了
psb (1).jpg (5.12 KB, 下載次數(shù): 138)
下載附件
2016-5-30 08:34 上傳
也許有人會問你光立方的制作過程怎么不全,是這樣的我這篇文章以前是寫在QQ空間的日志草稿里的,還沒全寫完。就在前幾天這個(gè)光立方被一個(gè)網(wǎng)友買走了,
{MMPEV)FL8Z(4{LZIA@48}4.jpg (84.89 KB, 下載次數(shù): 121)
下載附件
2016-5-24 14:49 上傳
這個(gè)網(wǎng)友先是在網(wǎng)上買了一個(gè)PCB板做光立方成品,然而畢業(yè)設(shè)計(jì)沒通過,就想買洞洞板的光立方于是就跟我買了。
關(guān)于我對光立方驅(qū)動程序的理解,手寫筆記也一起寄給了那個(gè)網(wǎng)友。但是我在寄快遞前用手機(jī)拍了下來
01.png (1.02 MB, 下載次數(shù): 141)
下載附件
2016-5-24 15:04 上傳
02.png (889.9 KB, 下載次數(shù): 136)
下載附件
2016-5-24 15:04 上傳
03.png (871.33 KB, 下載次數(shù): 133)
下載附件
2016-5-24 15:04 上傳
04.png (803.6 KB, 下載次數(shù): 121)
下載附件
2016-5-24 15:04 上傳
05.png (913.33 KB, 下載次數(shù): 160)
下載附件
2016-5-24 15:05 上傳
06.png (867.84 KB, 下載次數(shù): 132)
下載附件
2016-5-24 15:05 上傳
07.png (745.8 KB, 下載次數(shù): 137)
下載附件
2016-5-24 15:05 上傳
這些程序在帖子附件中都有,想研究光立方程序的可以下載附件看看
小學(xué)生班門弄斧了,希望大家諒解!
最后說一下洞洞板制作光立方容易出現(xiàn)的一些問題
1.鎖存器的兩個(gè)腳短路的問題。
2.做好不要用母孔做光立方,容易造成燈腳與板子接觸不良和造成光立方的不整齊
3就是要注意發(fā)光二極管的漏光問題,有的LED被反向擊穿了,所以電流就會從負(fù)極流向正極。導(dǎo)致該亮的燈不亮,不該亮的燈亮。
4.國產(chǎn)鎖存器里面壞的多,我買10個(gè)國產(chǎn)鎖存器里面有一個(gè)是壞的,鎖存器第4個(gè)輸入口居然接地了,導(dǎo)致我做光立方遇到了很大的問題。
|