電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>5x5x5 LED立方體開源分享

5x5x5 LED立方體開源分享

2022-11-16 | zip | 0.38 MB | 次下載 | 免費

資料介紹

描述

介紹

大多數人都喜歡 LED 立方體,但是像 8x8x8 這樣的大立方體,無論是構建還是編程都需要大量工作。小型(3x3x3 或 4x4x4)易于構建,這既是因為它們不需要大量 LED,還因為它們不需要外部硬件(如移位寄存器和高端驅動器)來管理立方體。但它們確實與大立方體不同。

從這個項目開始,我的目標是創(chuàng)建一個易于構建的立方體,然后創(chuàng)建足夠酷的軟件來享受大立方體的感覺,而無需承擔構建大立方體所需的所有苦差事。所以這是一個 5x5x5 的立方體,可以直接由 Arduino Mega 供電,除了 5 個晶體管(用于將整個層 - 25 個 LED 的陰極接地)之外,沒有任何輔助硬件的移位寄存器。為什么我要避免使用移位寄存器?因為它們對手線來說絕對是可怕的。(我試過了。)如果你想使用它們,你真的需要設計和制造一塊 PC 板。

過去我為大立方體編寫了很多代碼,所以我改編了一堆現有的立方體動畫來在這個 5x5x5 立方體上運行。

這實際上是這樣的三個項目中的第一個。第二個在這里。它是一個 5x5x5 RGB 立方體,在設計上與這個立方體非常相似,但更難構建。第三個在這里- 一個 8x8x8 單色立方體,同樣具有最少的外部硬件。

注意:在我進一步討論之前,我并不是第一個建議使用 MEGA 驅動的 5x5x5 立方體的人。MEGA DAS 在 2017 年在這里發(fā)布了一個類似的項目。兩個項目中的硬件幾乎相同。直到我開始寫這篇文章,我才看到早期的,所以我的引腳不同,電阻不同,但除此之外,硬件幾乎相同。我發(fā)布這個主要是因為我有很多編寫立方體軟件的經驗。我希望我的軟件能說服一些人建造一個可能不會的立方體!

硬件

Mega 有很多數字 IO 引腳。我們使用 5 個將每一層的陰極拉低,并使用 25 個以上將一層內的 25 個 LED 中的每一個的陽極拉高。使用這種方法,Mega 實際上有足夠的 IO 引腳來構建一個 6x6x6 的立方體。但另一個考慮因素是,如果我們試圖保持簡單,那就是權力。Mega 的電流限制為每個引腳 40 毫安,所有引腳總共 200 毫安。藍色 LED 的正向壓降約為 3 伏,我們的共陰極晶體管再下降 0.7 伏。因此,使用 5 伏電源和 180 歐姆電阻,每個 LED 將消耗 7.2 ma。如果一次全部亮起,25 個 LED/層會消耗 180ma。我們一次只打開一層,所以我們滿足了 Mega 的所有電流限制,只要我們使用 NPN 晶體管將一層中的所有陰極拉到地。其中一個晶體管的基極電流使 Mega 的總負載又增加了 5 毫安,但我們將總負載保持在 200 毫安以下。在大約 185 ma。因此,出于上述所有原因,我選擇了 180 歐姆電阻與我們的 LED 配對。

poYBAGNy7ciAGs7uAAH420HQ_PA670.jpg
多維數據集的超級引腳
?

上圖顯示了 Mega 的數字引腳如何連接到立方體。引腳 22 - 26 是驅動將 LED 陰極接地的晶體管的 5 個引腳。引腳 27-51 通過 180 歐姆電阻連接到一層中 25 個 LED 的陽極。

您可能想知道為什么這種引腳排列看起來有點混亂。我的軟件使用直接端口訪問而不是 digitalWrites 來配置陽極,也就是說,將一層中的 25 個 LED 中的每一個設置為開或關。這可以節(jié)省大量時間,并且意味著 LED 的亮起時間比您花大量時間進行 digitalWrites 的時間長。因此,引腳排列的排列方式有助于組織對這些數字端口的引用,而不是實際的引腳編號。更多關于軟件的內容。

立方體結構

關于如何構建一個立方體,有很多意見,不管它的大小。無論您采用何種方法,這項任務都很乏味。你必須既小心又耐心才能獲得好的結果。我將向您展示我是如何構建這個的,但如果您愿意,還有其他在線說明。

這個立方體的構造開始于引線形成并將 LED 以 5 列焊接在一起。然后通過將 5 列焊接在一起形成面板,最后通過將 5 個面板焊接在一起形成立方體。以前從未構建過立方體的人不會意識到構建一個完美的立方體是多么困難。導程角的小誤差會迅速累積,即使是間距的微小差異也很容易看到。因此,引線形成步驟至關重要。如果你花時間做對了,你不會得到一個完美的立方體,但你會得到一個看起來合理的立方體。

pYYBAGNy7cqAIoYTAAGxAF5p8ew298.jpg
鉛成形 - 陽極,較長的鉛下降。陰極橫著走
?

陽極是 LED 的較長引線,它們向下,但它們需要彎曲到 LED 的側面,以便可以將垂直排的 LED 陽極焊接在一起。陽極偏移和陰極引線必須彼此成 90 度,如這些照片所示。

我個人覺得引線形成既乏味又費力,所以我引線形成 25 個 LED,然后構建一個面板。您將需要某種夾具來制作柱子和面板。我使用可重復使用的粘合劑 BlueTack 進行此夾具。LED 可以壓入 BlueTack 并在焊接柱和面板時保持在原位。壓痕允許您以完全相同的間距重復這些過程。重要的是第一次通過非常仔細地測量一切。我在所有三個方向上使用了 0.6 英寸的 LED 間距,允許將我完成的立方體插入到標準 0.1 英寸孔間距的板上。

pYYBAGNy7dKADElJAAyIqChlM74904.jpg
這里將 5 個 LED 的陽極焊接在一起形成一個垂直柱
?

?

pYYBAGNy7dmAHzaPAAzP1zSxYao280.jpg
柱子需要看起來筆直,它的陰極都指向同一個方向。
?

關于將 LED 焊接在一起的注意事項:每個立方體制造商的噩夢都是將一個立方體全部構建好,然后在立方體內部發(fā)現一個冷焊點,您再也無法接觸到它!在你去的時候要小心,確保你制造的每一列 LED 上的焊點都很好。

poYBAGNy7eGAZXhwAA6Ox5O3EW0677.jpg
接下來我們通過將 5 列的陰極焊接在一起形成一個面板
?

?

pYYBAGNy7eSABjVRAAHwwRrCm-o939.jpg
成品面板
?

完成每個面板后,就該進行測試了。同樣,我們這樣做是因為在完成立方體后發(fā)現冷焊點或 LED 損壞將是災難性的!

?

在軟件中,我包含了一個測試面板的小草圖。要執(zhí)行此測試,您需要將 5 個垂直陽極引線連接到 5 個電阻器(330 歐姆或類似電阻),然后將這些電阻器連接到引腳 40-44(第 0 列陽極引腳)。然后將 5 個陰極引腳連接到通常用于驅動陰極的引腳 22-26。一個好的面板看起來像上面的視頻。(作為旁注,我們還沒有使用晶體管來驅動陰極,所以這個小測試程序將陰極驅動為低電平以打開 LED。一旦安裝了晶體管,我們將做相反的事情,即驅動陰極高電平以打開在晶體管上,然后將陰極拉低。)

當我們構建并測試了 5 個面板后,我們就可以組裝立方體了,但首先,我們必須通過插入和連接所需的所有電阻器和晶體管來準備電路板。

pYYBAGNy7e2AX6sYABeTOM9wBq0182.jpg
電路板底部連接了晶體管和電阻器。
?

我將 180 歐姆電阻器放置在每個陽極柱旁邊,陰極晶體管及其基極電阻器位于立方體和 Mega 之間的空間中。同樣,陽極柱之間的間距在兩個方向上均為 0.6 英寸,因此每個孔與陽極柱之間的板上有 5 個空孔。

現在是把 Arduino 放到板上的好時機。如果有支架,它可以安裝在支架上。實際上,我只是用一小塊塑料和一點膠水將我的 Mega 固定在板上方約 1/4 英寸處。

此時,每個面板都連接到主板。在焊接之前,確保每個陽極柱都在正確的孔中,因為在完成的立方體中即使是一個孔的錯誤也會很明顯。并確保所有面板都面向同一方向,即所有陰極引線都從同一側引出。

pYYBAGNy7fGAOnD5AAJfmgd78rg368.jpg
將每一層中的所有陰極連接在一起
?

接下來,我們需要在每一層將面板相互連接,以便連接給定層中的所有陰極。這是通過一根拉直的鍍錫銅線將五根陰極線連接在一起來實現的。

poYBAGNy7fiADPvxAAddk77yG5k918.jpg
將每層陰極連接到其下拉晶體管
?

接下來,我們準備將每一層的陰極連接到主板。上圖中的圓圈顯示了每層的陰極連接并向下連接到晶體管集電極的位置。同樣,我們使用的是拉直的鍍錫銅線。

將電阻器的所有引線連接到 Mega 后,我們終于準備好測試完成的立方體了。在軟件中,我提供了一個草圖來測試立方體。它將按順序短暫點亮立方體中的每個 LED。由于您已經測試了每個面板,因此您在這一點上看到的任何問題很可能與最近的陰極連接有關。因此,您可能會發(fā)現一層不工作或一層的一部分。同樣,如果出現問題,您很可能會遇到冷焊點。

軟件

立方體中每個 LED 的狀態(tài)由稱為 cube[ ][ ][ ] 的 5x5x5 全局字節(jié)數組定義。1 表示 LED 亮起,0 表示 LED 熄滅。所以立方體的所有動畫都是通過在 cube[ ][ ][ ] 中放置 1 和 0 來創(chuàng)建的。

任何立方體軟件的核心是刷新立方體的定時中斷。我的中斷例程在 setup() 中啟動,然后駐留在程序的最后。每 10 毫秒調用一次。大約需要 6 毫秒。刷新多維數據集。剩下 4 毫秒。在每次刷新之間執(zhí)行主循環(huán)中的內容。

在刷新期間,每層打開 1.2 毫秒。每秒刷新 100 次。因此,打開的任何單個 LED 的開啟時間為 120 毫秒/秒或 12% 的占空比。每秒 100 次的速度足以讓人眼看到它持續(xù)亮著,而 12% 的占空比足以讓 LED 燈亮得相當亮,雖然不像連續(xù)亮著那么亮,但令人驚訝地接近.

為了使刷新周期盡可能短并最大限度地延長 LED 的開啟時間,我們避免浪費時間 digitalWrite 命令并使用直接端口訪問來配置引腳。如果您查看中斷例程中的代碼,您將看到使用此直接端口的 25 行單獨的行,這看起來不是很漂亮,但實際上,比可能的幾行代碼快得多用于使用 digitalWrite 設置引腳。

loop() 只是調用每個動畫,遍歷列表然后重新開始。每個動畫都在自己的子程序中。一些動畫例程調用其他例程。有關各種動畫的解釋,請參見代碼本身。所有動畫都使用了一些實用程序,例如關閉所有 LED 的 clearCube() 或 copyDown();它將每一層的內容向下移動到它下面的層,然后清除頂層。

您可以下載三種不同的草圖。主要的包含您在視頻中看到的 15 個動畫。面板測試和立方體測試草圖僅用于在構建過程中測試您的立方體。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費