本內容為大家帶來了LED光立方制作的全過程,現在只完成了立方體部分,后期會推出”USB在線編輯”功能的立方體和”觸摸編輯動畫的”立方體,以后的立方體顯示無需下載程序到到單片機,甚至支持高級語言編輯動畫,也無需其他第三方軟件編輯動畫(點擊鼠標那是個很痛苦的事情),適合業余愛好者。
組裝部分
一, 燈珠焊接
最開始的金字塔,我給大家的方案是泡沫板,現在我把焊接燈珠的方式改進了,焊接速度更快、質量更好,方法如圖:
就是這個,用一張18X30CM的萬能板,上面焊接上間距2.54的排針,用法如下圖:橫向的孔數是7個,縱向孔數是8個,這樣焊接出來的燈珠間距就都是8個了
一目了然,這樣就把燈珠固定好了,如果管腳的彎折方法和我圖片一樣的話(朝下的是正極),那么最優的方法是從右到左,從上到下排放。焊接我就不多說了,這個是最講究的,雖然有這個模板焊接起來很方便,但焊錫一定要上好,否則開焊后還是很難搞的。溫度要適當,免得燒毀燈珠,一般情況下,能把焊錫剛好溶化時的溫度即可。用這種方法焊接出的點陣,要比用泡沫做模板的點陣質量更好,很少有開焊點,取下的點陣橫平豎直,效率上也有了極大的提高。
焊接好的平面如圖:
二, 燈珠組裝
在組裝之前,先準備2張18X30cm的萬能板,噴上黑色的噴漆,比較常用的那種,價格不貴,如圖:
再拿出個8×8的點陣,比劃一下,量好裁剪的尺寸,用斜口鉗剪切還是很方便的。
然后就需要給底板和側板焊接彎排針,間距都是8個孔,朝向請自己把握,下面是我做的圖:
我想看了圖后,大家都應該明白了,除了彎排針,還要給每個面的管腳都焊接上2.54的冷壓端子,很容易的,東西也很便宜。這樣做的好處就是非常容易拆裝,第一次的時候我用的是直排針,結果就很難組裝,彎排針不會影響美觀。
在組裝之前,先要焊接底板和側板焊接上連接線,如圖:
每個面都是有64根線,我用的是以前零散、沒了頭子的杜邦線,長度剛剛好夠的,讀者可以自己做線或者買成品,買成品我覺得也不貴,成品線的好處是,一端是8P的插座,另一端是裸線,直接焊接就好。
這個過程還是相當漫長的,我焊接512個燈珠用了三個下午,底板的焊接和接線同樣是三個下午,可以說,老老實實的焊接的話,還是需要一周的時間的,我希望喜歡DIY的朋友們要有耐心,過程肯定是枯燥乏味的,但成功的喜悅也是難以言喻的。
三, 驅動電路
看上面的圖大家就應該知道了,我延續了以前金字塔的焊接方法,只不過這次是8輸入全部并聯,沒有遞減到1,輸入的并聯還是用的廢棄管腳,焊接起來沒什么難度,之所以用2組驅動,是考慮到了電流,每個面的電流還是不小的,8個面組合起來電流就更大了,單片機自己的驅動能力是遠遠不夠的,一組的驅動也是不夠的,這是我實際測試過的結果。所以還希望大家不要嫌麻煩,當然我更期待網友給出更好的解決方案,既能節約IC也能減少焊接的工作量。
四, 總裝和美化
這些工作都完成后,就是把每個面的燈珠組裝上去了,實在是沒什么難度,如果后期發現有壞點現象,拆卸也很方便的,補焊就是。然后就是根據原理圖把后面的總線連接到245的輸出上,每個面64跟線,64個輸出與之對應。
初裝好后,就是這樣了:
后面就是美化了,軟件調試過后,硬件可以正常工作的話,就開始美化,把線都整理好,用熱熔膠固定,在圍上護板,把電路遮擋起來。我得承認,我沒老外做的好,但畢竟人家用的是16位單片機,驅動方式不一樣的,自然電路不一樣,這個電路還算是復雜的,不過原理簡單,程序設計上也沒什么難度。
原理圖部分
一,原理介紹
Ledcube1里面的圖是為底面的驅動圖,也就是我實物的下面的板子和下面的驅動電路原理,大家看到的那64個發光二極管代表了64個共陽極接點,并不是真正的燈珠,這樣畫是因為proteus里我找不到更好的表達方式了,希望大家切記,那不是真的燈珠,而是底面的64個共陽極接點(每個面8個陽極8個陰極)。
至于說單片機(請忽略圖里的AT單片機,做樣子的),我這次用的是STC12C5A60S2,倒不是因為89C52速度不行,而是儲存空間不夠大,我手里64K的單片機只有這么一塊,所以就用上了,大家不要擔心普通51單片機的能力問題,非增強型的單片機是完全可以勝任這個程序的,我親自測試,保證通過。
Ledcube2里面的圖就是側面板子和驅動的電路了,完全一樣,只不過沒畫出單片機,側面245的輸出全部連接的是共陰極,同樣是64個。
兩個圖的19腳請大家注意,是兩兩一組的,大家在焊接的時候也注意到這個部分的布局,否則以后組裝的時候還是很麻煩的。
二,注意事項
1
驅動芯片選型:我實物用的是LS系列245,因為我實在是比較懶,沒有在所有的輸出上加上拉電阻,因為LS系列的剛剛好就和單片機的TTL電平兼容,即便是P0端口,不加上拉一樣可以直接準確輸出??蒆C系列的就不行了,19腳和8跟輸入腳都必須加上拉電阻,否則硬件調試的結果是不對的,這個也是我親自測試的結果。
但不是因為這個就不選HC系列的,HC的IC扇出系數(這部分請自行網上學習)比相比LS系列就大了很多,也就是說,HC的負載能力要好,而且功耗低,在兩種IC的發熱上來說,我是深有體會的,HC系列的做驅動時,芯片發熱不明顯,但LS的就明顯發熱,雖然發熱溫度也是符合范圍的,但感覺上還是不舒服的,所以在骨牌時鐘的時候,我就用了HC系列的,那時候用的都是大功率二極管,換成HC的IC后,發熱明顯降低。
希望讀者根據自己的實際情況選用IC,不管選用哪種,都要做好對應的處理方案。
2
限流電阻,我在原理圖上是都畫了限流電阻的,這部分加不加要看你選用什么材質的發光管,我這次用的經過測試,就不需要加限流電阻,但不保證別人選用的也能承受住IC的輸出電流,而導致二極管亮度過亮。大家把買來的二極管一定要做好電流測試,看你的二極管工作在那個電流范圍最穩定,再選擇對應的電阻,如果大家選用的和我的是一樣,自然就不需要加電阻了,我的制作清單會附在表格里,給大家參考。
3
原理圖請用proteus7.5版本打開,大家就不要再加我好友問為什么圖打不開或者要99se的圖了,我沒有,也不怎么熟悉那個軟件。
程序部分
這次的程序依然是匯編,控制部分有60多行,我覺得算是簡短的程序了。我在這里小小的抱怨下,希望大家不要再問我為什么不用c語言了,今天我可以告訴大家,不用c語言是因為我不會,我也比較反感別人問我這些,我也知道自己用的是匯編,很多人理解起來有困難,所以我是給了中文注釋的,大家可以根據程序解構和中文注釋來修改成c語言版本的。不懂匯編不是什么問題,但是不懂漢字我就不能再說什么了,本人能力有限,不能再給出c語言程序,希望大家理解。
下面,我根據我對c語言的理解,給大家做出c語言的結構
1初始化部分,主要是設置對應的中斷,定時工作方式,與匯編是完全一樣的
2 顯示部分
B,每個面的顯示原理是和8X8點陣是完全一樣的,保證這段程序正確的,可以直接調用
C 查表的方式是自0起遞增的,每次加1,每個畫面查表64次,查表的上線為65536/64,當然,實際的情況是要小于65536的,控制程序的代碼也會占用rom空間,就會導致了畫面次數減少,所以,要想在有限的空間內顯示更多的畫面,就得盡量把程序寫的簡短,當然了,有的朋友會選用更大容量的單片機,查表的上線自然會增加。
注意:c語言可以直接定義16位變量,匯編在這方面是比較麻煩的,但好處是我可以調試程序來直接計算我的程序可以寫到多少的上限,c語言的方法我就不知道了。但肯定是可以通過調試計算出來的。
3中斷部分,為了達到動畫效果切換時間可準確調節性,畫面的切換用中斷方式。建議大家像我這樣,把時間通過一個變量來表示,這樣每次只需修改一個變量,就可以設置動畫的速度了。每次發送中斷后,查表的變量就加64(i=i+64),然后返回顯示程序繼續顯示,中斷程序只做變量的計算,改變的是查表的地址。
4循環
A程序循環,循環的條件是i變量不滿足動畫顯示的上限值。比如你做了八個畫面,那么i的的值不滿足8X64時,就繼續顯示,滿足就清零從新開始。
B 顯示循環
這個比較重要,主題的顯示程序,應該是一個死循環,一直在顯示一個畫面,只有中斷產生的時候,改變了查表的變量,才切換一次動畫,每個畫面都顯示后,注意修正變量,能使其顯示同一個畫面,不管是查表的變量還是Z軸,Y軸的控制變量,都要進行初始化,直到中斷的產生才改變查表的變量數值。
評論
查看更多