標題: DIY LEDCUBE 自制立方燈 [打印本頁]
作者: liuj 時間: 2013-10-16 21:32
標題: DIY LEDCUBE 自制立方燈
1,準備材料
●512*LEDs(多買幾個,以防止有的是壞的,最好是霧面的,如果買來的不是霧面LED,可以住LED上輕微噴些白漆以達到效果)
●細鐵絲(用來焊接LED,如果買的LED引腳夠長可以不用)
●64*電阻(510R左右的) 8*電阻(220R,三極管基極) 8*電阻(2.2K,三極管上拉)
●8*74HC574(鎖存器,多路復用,也可采用595移位寄存器,本方案用574,595不再討論)
●1*74ACT138(譯碼器,給574產生時鐘信號)
●8*s8050三極管(用作開關管)
●電解電容(主要為電源電路部份用)
●USB母頭
●開關
●DC接頭
●一塊MCU最小系統板(本方案采用飛思卡爾的XS128,有點奢侈,其實用51單片機就可以,比如12C5A就ok)
●兩塊20cm*20cm的鋪銅板(本方案板子全部自己用Altium Designed畫出來,然后用感光綠油曝光和腐蝕,也可用洞洞板自己搭,不過比較麻煩,工產打樣同樣也是忒貴,還是腐蝕板最為經濟)
(如果采用腐蝕板,還需要準備以下東西)
●紫外燈(日光燈也可,不過爆光時間需要自己實驗得出)
●顯影劑
●感光綠油
●環保型腐蝕劑(或者三氯化鐵)
●脫膜劑
2,什么是立方燈呢?
立方燈就像是一個LED屏幕,但是它特殊在有第三維,使得它能夠有3D效果。可以把它認為是透明且低分率的顯示器。正常顯示器是盡最大程度堆棧象素來使得顯示出來的東西更加真實漂亮,但是在立方燈必須能看得到里面,同時在象素間需要更多空間。
立方燈不需要遵循什么標準,它可做成7*8*9,甚至更加古怪的形狀。
110021u8m1s5r85gzgj5rl.jpg.thumb.jpg (34.51 KB, 下載次數: 258)
下載附件
2013-10-18 13:28 上傳
110106bqzlodzodbwdu9qb.jpg.thumb.jpg (61.12 KB, 下載次數: 247)
下載附件
2013-10-18 13:28 上傳
3,立方燈如何工作 這個立方體有512個LED。很明顯,每個LED有一個專用的IO端口是非常不切實際的。你需要一個有512IO端口的微控制器,通過該多維數據集運行512線。LED立方體依賴一個光學現象叫做持續幻象(POV)。如果你led閃爍的非常快, 在led關掉前,圖像將留在你的視網膜一小會兒。通過閃爍每一層多維數據集的一個接一個的反應非常快,它給人一種3 d圖像的感覺,事實上你看到是一系列的二維圖像堆積成的。有了這個這些,我們只需要64(為陽極)+ 8(每一層)IO端口控制LED多維數據集。
110411029gqr6ti224hh20.jpg.thumb.jpg (54.16 KB, 下載次數: 275)
下載附件
2013-10-18 13:28 上傳
4
,剖析立方燈 下面我們看一下LEDCUBE
的立體結構。 一個LED
有兩個引腳,一個陽極和一個陰極,為了點亮LED
,我們要使得陽極為高電平,而陰極為低電平。 LED
立方燈由64
列和8
層組成,每一列也就是連線垂直地面的8
個LED
,這8
個LED
的陽極是連接在一起的;每一層是由平行地面的64
個LED
組成的,這64
個LED
的陰極是連在一起的。 在控制的時候,每次讓其中一個面的選中(也就是讓其中一個面的陰極為低電平,其它面仍然保持高電平),然后從鎖存器讀出這一層的數據輸出到64
列,這樣就完成了一次層掃描,按照這樣的方式依次掃描其它7
層就可以完成一次LED
掃描。LED
立方的結構。
110512jre73tmeqjh1jzjr.jpg (37.98 KB, 下載次數: 251)
下載附件
2013-10-18 13:28 上傳
110511dkdj6ayeajbbdxjk.jpg (48.12 KB, 下載次數: 230)
下載附件
2013-10-18 13:28 上傳
5
,驅動電路 我們的LED
立方燈為8*8*8
的,這樣需要有至少64+8
個IO
口進行控制,如果用超過64
個引腳的單片來控制,這會大大增加我們的成本,一般的51
單片機又沒這么多的引腳,為了解決這個問題,我們采用74HC574
鎖存器多路利用。 74HC574:
●
8個輸入●8個輸出●1個時鐘信號●1個輸出使端 鎖存器最終要完成的工作就像一個簡單的緩存,鎖存器能保持8位數據,當輸出使能有效時,數據將送到輸出引腳。當時鐘發生上升沿的時候,鎖存器數據被刷新一次。為了能夠刷新到8個鎖存器,我們將8個鎖存器的8個個輸入分別接在一起,構成8bit數據總線,然后能過8個使能端的控制分別刷新8個鎖存器。 下面的代碼實現刷新鎖存器的功能。
// PORT A = data bus
// PORT B = address bus (74HC138)
// char buffer[8] holds 64 bits of data for the latch array
PORTB = 0x00; // This pulls CP on latch 1 low.
for (i=0; i <8; i++)
{PORTA= buffer;
PORTB = i+1;}
1106442hyejc3jceksyz22.jpg.thumb.jpg (56.62 KB, 下載次數: 299)
下載附件
2013-10-18 13:28 上傳
6,主板電路
我們采用的主板上面主要是由主控核心板組成,還有一個三管開關電路組成,沒有什么多的東西,不再細說。下圖為主板控制電路。
110727bxq9av49d9ndrxaq.jpg.thumb.jpg (43.25 KB, 下載次數: 308)
下載附件
2013-10-18 13:28 上傳
8,制作過程圖集
********PCB制作圖集********
112708ej5xns5qu5dsxvpj.jpg.thumb.jpg (21.31 KB, 下載次數: 305)
下載附件
2013-10-18 13:28 上傳
112716613xtybrbzxxkg6g.jpg.thumb.jpg (62.4 KB, 下載次數: 279)
下載附件
2013-10-18 13:28 上傳
112720wuoz19cou9wcf2n9.jpg.thumb.jpg (39.94 KB, 下載次數: 272)
下載附件
2013-10-18 13:28 上傳
112732677pw1eavn1sp5bo.jpg.thumb.jpg (36.55 KB, 下載次數: 230)
下載附件
2013-10-18 13:28 上傳
112728yxo3ayx8ibbnosjc.jpg.thumb.jpg (50.06 KB, 下載次數: 250)
下載附件
2013-10-18 13:28 上傳
11274155tc0riubeje5iz0.jpg.thumb.jpg (33.11 KB, 下載次數: 245)
下載附件
2013-10-18 13:28 上傳
112737c9kztkeyt00eec6f.jpg.thumb.jpg (33.14 KB, 下載次數: 249)
下載附件
2013-10-18 13:28 上傳
112746c8b8wavfhbok8v7b.jpg.thumb.jpg (37.35 KB, 下載次數: 249)
下載附件
2013-10-18 13:28 上傳
1127513z4rr9rj5gr4x884.jpg.thumb.jpg (37.79 KB, 下載次數: 291)
下載附件
2013-10-18 13:28 上傳
***************************
********LED搭建圖集********
113210ywmm8iihmhmm7qe3.jpg.thumb.jpg (19.58 KB, 下載次數: 283)
下載附件
2013-10-18 13:28 上傳
113200eenf0zpve1f1jltw.jpg.thumb.jpg (26.38 KB, 下載次數: 253)
下載附件
2013-10-18 13:28 上傳
113203z1gbd8g8ivdkvrei.jpg.thumb.jpg (24.94 KB, 下載次數: 234)
下載附件
2013-10-18 13:28 上傳
1132076k6rcckirt1rpa6r.jpg.thumb.jpg (20.63 KB, 下載次數: 281)
下載附件
2013-10-18 13:28 上傳
113214eimmh7pvhbp4kieb.jpg.thumb.jpg (34.62 KB, 下載次數: 241)
下載附件
2013-10-18 13:28 上傳
1132208c8on6rjttc0xt5h.jpg.thumb.jpg (53.52 KB, 下載次數: 250)
下載附件
2013-10-18 13:28 上傳
11322310knr10f71ggll38.jpg.thumb.jpg (19.3 KB, 下載次數: 265)
下載附件
2013-10-18 13:28 上傳
1132290c3qlbmmzeo3dgmk.jpg.thumb.jpg (57.23 KB, 下載次數: 261)
下載附件
2013-10-18 13:28 上傳
**************************
********整體效果********
113705ub0r1e0esee4kbuu.jpg.thumb.jpg (52.81 KB, 下載次數: 252)
下載附件
2013-10-18 13:28 上傳
113748b71ym7kkb8i21ms1.jpg.thumb.jpg (70.2 KB, 下載次數: 293)
下載附件
2013-10-18 13:28 上傳
***********************
電路圖資料.rar
(47.1 KB, 下載次數: 232)
2013-10-16 21:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
DIY電路板.pdf
(1.9 MB, 下載次數: 271)
2013-10-16 21:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
代碼.rar
(107.75 KB, 下載次數: 178)
2013-10-16 21:24 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: liuj 時間: 2013-10-16 21:33
下面再補充一點關于程序的問題,其實整個程序的結構框架很簡單,無非就是在中斷里不斷的掃描,然后在main()函數里不斷向鎖存器buffer里面寫數據。在調中斷的時候需要注意的一個問題是,要不斷調試多長時間進行一次中斷,當調至掃描的時候燈最亮為佳。下圖附件為程序流程圖。
/*****************************************************************************/
程序中各文件說明:
main.c //這個地球人都知道,就不多說了
main.h //對接口及狀態量進行宏定義,方便使用
cube.h //同樣進行宏定義
Draw.c //效果函數的底層,定義基本函數為實現各種動態效果做鋪墊
//函數舉例:
//setvoxel(int x, int y, int z)為點亮坐標(x,y,z)處的led
//line(int x1, int y1, int z1, int x2, int y2, int z2)為點亮(x1,y1,z1)和(x2,y2,z2)之間的led
//shift (char axis, int direction);將led所有象素沿著axis軸的direction方向平移
font.c //字庫,顯示字母用得到
effect.c //調用Draw.c中的基本函數實現動態效果
1.JPG (17.44 KB, 下載次數: 244)
下載附件
2013-10-16 21:33 上傳
Launch_effect.h //其實里面只是一個switch函數,就是切換效果的作用,這樣在main里就不用大段的調用效果函數
/*****************************************************************************/
從上面分析知道,要移值這個程序也是相當簡單的,只要把你采用的單片機的中斷調好,很實現基本的掃描,那么基本成功了,最后要做的就是把效果函數移植進去。
作者: zhouyubo163 時間: 2014-4-7 19:22
不錯的,51黑有你更精彩。
作者: 劉仁福 時間: 2014-4-10 13:11
不錯啊
作者: rich3524 時間: 2014-5-14 17:43
好,謝謝分享
作者: zhce 時間: 2014-5-17 19:44
第二步 準備工具 基本的電子制作工具: 1、電烙鐵一個。 2、焊錫絲若干。 3、松香少許,助焊劑也可以。 4、鑷子(有更好,沒有也行)。
作者: xiaozhi_cc 時間: 2014-7-4 22:54
真心好東西
作者: xiaozhi_cc 時間: 2014-7-4 22:55
求M幣下載
作者: xiaozhi_cc 時間: 2014-7-4 22:56
給力。。。。。。
作者: zwpkzw 時間: 2014-7-7 13:36
謝謝樓主分享
作者: 露露 時間: 2014-10-8 16:58
謝謝分享。。。
作者: xets2000 時間: 2014-10-9 09:09
高手啊!!!!!!!!!!!!!!!!!!
作者: 威斯布魯克 時間: 2014-10-10 23:41
呼呼,終于找到完美的資料了。謝了撒
作者: 熱愛DIY 時間: 2014-10-13 19:20
學習了,,,,,,,
作者: aidanpianji 時間: 2014-10-13 19:27
高手高手高高手
作者: hanyubo 時間: 2014-11-16 13:51
奧會分解為
作者: hanyubo 時間: 2014-11-16 13:51
謝謝樓主謝謝
作者: hanyubo 時間: 2014-11-16 13:53
真的很好用唉
作者: hanyubo 時間: 2014-11-16 13:53
真的大開眼界
作者: 1426134543 時間: 2014-11-29 03:24
看了挺久才看懂,不過能看懂就好,謝謝lz
作者: 飛舞2014 時間: 2014-11-29 23:10
美 很美 非常美
作者: jnwyj 時間: 2014-11-30 00:59
沒有M幣下不了啊
作者: mycookie 時間: 2014-12-9 10:32
真心好東西
作者: 淘淘 時間: 2014-12-9 23:03
漂亮。。。。。
作者: pps111 時間: 2014-12-19 22:05
還是值得收藏
作者: pps111 時間: 2014-12-19 22:05
謝謝了讓
作者: pps111 時間: 2014-12-19 22:06
太好了
作者: pps111 時間: 2014-12-19 22:07
學習中。不簡單
作者: LN555 時間: 2014-12-19 23:13
求PCB工程
作者: 51hei電控2112312 時間: 2014-12-20 02:51
很好,正需要
作者: 師太來取精 時間: 2015-1-7 22:28
謝謝分享
作者: sglf0201 時間: 2015-1-22 13:25
有打算做一個,好資料,謝謝
作者: Gameboy 時間: 2015-1-25 22:14
謝謝分享
作者: rich3524 時間: 2015-2-5 13:59
謝謝分享
作者: l754768458 時間: 2015-4-24 20:58
真不錯謝謝謝謝
作者: 騰飛的龍 時間: 2015-5-11 08:00
牛氣,真正的DIY值得分享!贊
作者: ludaijin 時間: 2015-9-7 13:40
有打算做一個,好資料,謝謝
作者: 日明月 時間: 2015-9-28 18:18
樓主這是8*8*8的嗎
作者: 中國移動我不 時間: 2015-10-12 13:57
錫怎么捍在鐵絲上的?
作者: Alng_夜鷹 時間: 2015-10-18 19:42
感覺樓主好可愛!!!
作者: 墨跡ddc 時間: 2016-3-2 20:56
資料很好,感謝樓主
作者: chn_zzh 時間: 2016-6-17 11:09
可惜沒有黑幣,唉
作者: 594sqq 時間: 2016-7-25 15:40
請問 程序用keil編譯燒錄的嗎?
作者: 電發友 時間: 2016-8-19 14:18
沒有程序也弄不了啊
作者: 電發友 時間: 2016-8-19 14:19
沒有程序也弄不了啊
作者: ilylyp 時間: 2016-9-24 22:42
正是我想要的 謝謝
作者: hzhlllll 時間: 2016-10-13 16:24
好棒啊,大手
作者: y1145343666 時間: 2016-10-13 21:19
好牛啊,我也在學習,不過是在學習走路。。。。
作者: 小學生打聯盟 時間: 2016-11-2 14:30
樓主能不能直接吧所有程序打包發給我,hex文件,我是一個大一新生,想做一個,程序還寫不出來
作者: 1027711848 時間: 2016-12-2 07:42
看看做的不來
作者: 無時崩潰 時間: 2017-4-23 23:08
感謝樓主分享
作者: wpsczw@126.com 時間: 2017-5-19 10:52
好帥!想試試,下個資料看看
作者: wpsczw@126.com 時間: 2017-5-19 10:54
正是我想要的 謝謝
作者: blueice1998 時間: 2017-11-8 19:20
很棒,參考一下打算也做一個
作者: yatou520 時間: 2017-11-10 09:13
謝謝樓主分享的好東西
作者: hujinchen87 時間: 2017-11-29 16:05
感覺好好啊
作者: vhoux 時間: 2018-5-2 22:33
感謝分享。
作者: siliekakaxi 時間: 2018-6-7 13:37
樓主好強大啊。問一下這些LED燈如何接電阻呢?
作者: 春風得意 時間: 2019-9-5 14:06
學到了學到了
作者: 夢里藍星 時間: 2021-4-17 09:23
請問代碼編譯為什么會有這么多錯誤,我該怎么辦
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |