2016年2月1日 星期一

‧ 平面 LED 顯示器見多了,3D 版的呢?

leiphone 李王

平面LED显示器见多了,3D版的呢?

本文作者李王,創客馬拉松深大站參賽選手,中國深職院大二學生。本文詳細介紹了他自己DIY的一款「8X8X8」點陣3D顯示器(下圖)的全部製作過程。

3Dcube8(光立方)是一個由LED組成的3D顯示器,是一個集實際型 、經濟型、性價比高的藝術品, 它不僅僅局限於裝飾,更是能夠説明更好的學習C語言實際應用、滿足單片機愛好者對單片機的研究的個好工具。

3Dcube8有多種規格,常見的有單色4*4*4、單色8*8*8RGB全彩光立方等。其中前者是這之中最簡單的,製作難度和成本最高的是採用RGB的全彩光立方,這裡我選擇製作單色8*8*8

1、專案材料簡介:
Led的選擇:市面上有很多種發光二極體,按形狀分方形和圓形草帽狀、按效果又有高亮霧面等區別。考慮到美觀和降低製作難度,我選擇了3mm長腳高亮霧面發光二級管,長腳的最大優勢就是可以作為支架,省時省力。

平面LED显示器见多了,3D版的呢?

驅動方式利用人眼視覺暫留特性,利用逐層掃描的方式,來達到顯示各種圖案的目的。常見的 CMOS鎖存器(CMOS發熱低,優先選擇)有74hc57374hc595,前者為併入,後者串入。因為不需要光立方的級聯設計,所以採用573鎖存器。

主控晶片選擇較多,有常見的AVRSTCArduino 等。根據之前學過的課程,我們決定採用STC系列的STC89c5A60S2增強型單片機作為主控晶片。之所以不選89C52等晶片,不是因為他們的運算速度不夠,主要原因是它們的片上flash太小,難以滿足需求,其次是因為自己有閒置的STC89C5A60S2,片上記憶體大,運算速度1T,即充分利用資源節省成本,又可以實現所需要的功能需求。

最後就是附屬配件 USBTTL串口的STC下載線。選擇採用cp2102作為USB轉串接晶片方案,下載STC單片機完勝PL2303方案,最高下載速度可達115200串列傳輸速率。

平面LED显示器见多了,3D版的呢?
2、詳細製作步驟
電路設計
1. 軟體部分
實驗環境:AD13
該部分我們在altlium designer 13上完成,及用 altlium designer 13畫出所有原理圖,然後生成PCB,最後將PCB圖發給工廠,製造出對應的電路板.

a. 控制模組——單片機最小系統
 平面LED显示器见多了,3D版的呢?

平面LED显示器见多了,3D版的呢?

b. 驅動電路——p口接8573le
在驅動電路上,圖中的電阻都是150r的限流電阻,限流電阻130r為理論值.大於這個小於這個都可以。限流電阻r=(vcc-vf)/iVcc電源電壓,Vfled的正向電壓降,ILED的工作電流,I大了,就亮,小了就會偏暗。

到此,光立方的原理部分就結束了,接下來就該做PCB部分了.全部原理圖如下圖所示:
 平面LED显示器见多了,3D版的呢?
c. PCB圖的生成
我們將完成的原理圖(4)導入到PCB專案裡,並進行合理的佈局,然後開始佈線,最後覆銅(如圖5,圖6)保存檔並將檔發給PCB板製造工廠。接下來就是短暫的等待。
平面LED显示器见多了,3D版的呢?

在此期間我們可以進行下一步的製作。

2. 硬體部分
a. 顯示電路 ——led點陣屏的製作
現將選定的LED燈彎曲成圖7的樣子,再按照圖8LED燈焊接在一起,一共需要焊接512個,共8片,每片64個。單片焊接完成如圖9,圖10,8片焊接結束如圖11 12。將8LED按照8X8X8排列在一起,如圖1314
平面LED显示器见多了,3D版的呢?
平面LED显示器见多了,3D版的呢?
平面LED显示器见多了,3D版的呢?平面LED显示器见多了,3D版的呢?
LED燈焊接完成後,相信我們定做的PCB板也完成了,那麼接下來我們開始焊接電路板,因為電路板上都是貼片,元器件非常小,所以在焊接過程中我們可以選用鑷子夾住元器件,先在電路板上固定一只管腳,在逐一將其焊接……
 平面LED显示器见多了,3D版的呢?
到此,我們的焊接部分全部結束,接下來又要開始軟體部分,不過在進行軟體部分以前,我們需要吧焊接好的LED燈插入到PCB正面上的排母裡,如圖17、圖18 平面LED显示器见多了,3D版的呢?
3.軟體部分
所需軟體:keil4.0STC-ISPv4.80
這裡主要是將程式燒錄到單片機內,當然,這需要經過很多次的調試才能完成,呈現出自己想要的效果,感覺這是一個巨大工程,不過只要有恒心,一切都不是事,哈哈……下圖是程式中的一小小小部分
平面LED显示器见多了,3D版的呢?

補充:程式的設計分為4部分

1. 初始化部分
主要是設置對應的中斷,定時工作方式。

2. 顯示部分
把立方體看作8位數位管,每個面即為一個數位管,每個面的顯示原理是和8X8點陣是完全一樣的,保證這段程式正確的,可以直接調用。查表的方式是自0起遞增的,每次加1,每個畫面查表64次。當然,實際的情況是要小於65536的,控制程式的代碼也會佔用ROM空間,就會導致了畫面次數減少,所以,要想在有限的空間內顯示更多的畫面,就得儘量把程式寫的簡短。c語言可以直接定義16位元變數。

3. 中斷部分
為了達到動畫效果切換時間可準確調節性,畫面的切換用中斷方式。把時間通過一個變數來表示,這樣每次只需修改一個變數,就可以設置動畫的速度了。每次發送中斷後,查表的變數就加64(i=i+64),然後返回顯示程式繼續顯示,中斷程式只做變數的計算,改變的是查表的位址。

4. 循環
程式循環,循環的條件是i變數不滿足動畫顯示的上限值。比如做八個畫面,那麼i的的值不滿足8X64時,就繼續顯示,滿足就清零從新開始。

顯示循環
主題的顯示程式,應該是一個閉環,一直在顯示一個畫面,只有中斷產生的時候,改變了查表的變數,才切換一次動畫。每個畫面都顯示後,注意修正變數,能使其顯示同一個畫面,不管是查表的變數還是Z軸,Y軸的控制變數,都要進行初始化,直到中斷的產生才改變查表的變數數值。

經過多次反復的調試,終於成功了,達到了我們想要的結果,可是那麼高大上的東西,總要有個外殼吧,為了方便,實惠,我們選用3D印表機自己做咯,首先我們3D建模軟體(這裡使用Soildwork,也可以使用其他,如3DMax等)畫出相應尺寸的模型(如圖19然後使用cura設定列印參數,最後將檔導入印表機,開始列印,幾個小時之後,就可得到我們想要的模型了,如圖20

平面LED显示器见多了,3D版的呢?
平面LED显示器见多了,3D版的呢?

到了這裡,我們的單色8*8*8光立方也就結束了,套上外殼並插上電源,期待已久的畫面瞬間亮瞎了我的眼睛   好咯,接下來讓我們一起來欣賞那動人的畫面
 平面LED显示器见多了,3D版的呢?

項目補充:
1.  測試方案
a、在8片點陣螢幕搭建完成之後,採用點陣螢幕整面點亮方式,檢查每一面LED的通電情況,有過亮、過暗或者完全不亮的及時拆換。

b、檢查電路板的焊點和飛線是否有虛焊或者漏焊情況,元件正負極有無顛倒情況。

c,、電路組裝採用整體組裝整體測試方式。

d、燒錄測試程式,檢查光立方的全亮狀態下有沒壞點。

2. 注意事項
a、搭建LED一定要主要,焊接溫度和靜電問題!

以上情況,會照成LED損壞,和LED微亮的情況。
(距離LED燈頭 3mm左右 電烙鐵 放在上面加錫。5-10LED就會壞的,儘量焊接一個點在3秒左右,就算一次不成功也沒事等他冷卻了,在焊接)。電烙鐵接地處理裡沒有地的,在電烙鐵頭鐵殼上綁一根電線,腳踩在水泥地板上線踩在腳下。

b LED的間距

  LED
間距為20M,就是剛剛好標準洞洞板9個孔間距。

3.後期製作

在後期,我們將繼續對光立方進行更深入的研究與製作,做出更大更絢麗的光立方。

按此回今日3S Market新聞首頁
                                                                                                                                                                                                                            

沒有留言:

張貼留言