標(biāo)題: stm32 8*8*8光立方制作過程 附源碼與視頻 [打印本頁]

作者: wyhnb    時(shí)間: 2018-8-24 09:29
標(biāo)題: stm32 8*8*8光立方制作過程 附源碼與視頻
從選芯片到板子規(guī)劃都是現(xiàn)學(xué)現(xiàn)做,制作過程很無聊,但看著板子越來越漂亮還是很滿足,是stm32單片機(jī)主控的.


從網(wǎng)上看了大量的資料來確定芯片,然后買芯片來一個(gè)一個(gè)測(cè)試性能,再確定接那個(gè)IO口,一邊焊板子一邊規(guī)劃排版



第一次做有好多不懂,也做了很多我無用功,浪費(fèi)材料,為了美觀我用鐵絲來焊接線路,感覺還不錯(cuò),就是有點(diǎn)浪費(fèi)時(shí)間。




做出來也遇到很多錯(cuò)誤總結(jié)一下:
1、開始用一般的短管腳的LED燈(不知道有長管腳的LED燈),然后想著用鐵絲來延長,焊接在鐵絲上,為了做出的效果整齊,還買了鋼絲,后來焊接才發(fā)現(xiàn)鋼絲不沾錫,又換鐵絲,鐵絲也不怎么沾錫又換燈,換長管腳的LED燈,真是一點(diǎn)經(jīng)驗(yàn)沒有,連焊錫都是現(xiàn)學(xué)的。

2、想著LED發(fā)光有一定距離,就把燈的間距搞的很大,管腳剛好搭上一點(diǎn)點(diǎn),很難焊錫,最后控制層沒辦法還是用鐵絲代替,鐵絲是真的難焊。有次焊接控制層的鐵絲,由于不沾錫,那個(gè)融化的錫滴到芯片上,把管腳都連接起來了,那時(shí)候都快完工了,弄了一早上才解決。而且焊接出來會(huì)接觸不良,都是鐵絲不沾錫。
2、焊電路板用鐵絲還可以,鐵絲兩頭彎一下直接插到洞洞板里面,焊出來電路干凈整齊。
3、焊好每一面燈需要檢查一下,我512個(gè)燈還是出現(xiàn)一個(gè)燈不亮。
4、焊每一面燈還是需要找一個(gè)模具來固定LED燈,焊接便利,焊出來也整齊。這是亞克力板,然后用電機(jī)手工打出來的。

5、我是用20*30的PCB板,真的啥都不懂,開始買的PCB板是兩毫米間距的,插不了芯片,后來又重新買,又走彎路。

6、對(duì)自己手工還是比較滿意,沒有電路圖,沒有教程,每次不知道的都是網(wǎng)上看,模仿,出了問題也自己難受。





7、所有都做好之后寫代碼測(cè)試,出了很多問題,焊接接觸不良,一般都是有鐵絲的地方,還有一豎燈不亮,測(cè)電阻是好的,換電阻也不亮,沒辦法那一豎排燈直接接IO口,沒用電阻。
8、電路這些也不懂,就單片機(jī)引腳出來控制相應(yīng)的芯片然后串個(gè)電阻控制LED燈,最后會(huì)發(fā)現(xiàn)燈不安套路點(diǎn)亮,點(diǎn)亮一個(gè)沒問題,單獨(dú)點(diǎn)亮兩個(gè)三個(gè)就出問題了。還有電源接電腦USB口沒問題,接其他地方也會(huì)出錯(cuò),我們部門大佬說一點(diǎn)一點(diǎn)去測(cè)線路電壓還是電流,然后加芯片控制電流電壓,那我的燈瞎幾把亂閃就是電路設(shè)計(jì)有問題了,沒設(shè)計(jì)穩(wěn)定的電壓。
9、我大部分芯片都是和https://wenku.baidu.com/view/c72a48f9960590c69ec37649.html這個(gè)作者的一樣,你們可以去看看。我用STM32103的芯片,買這個(gè)長管腳的燈1000個(gè)花了45,定制亞克力板等等,電機(jī)也自己買,林林總總花了342塊,自己都不相信,也算買經(jīng)驗(yàn),如果有教程,都是設(shè)計(jì)好的做絕對(duì)一百以內(nèi)。
10、我們部門一個(gè)硬件大佬也想做,他直接設(shè)計(jì)好板子去給廠家打印,就不需要焊接電路,直接插芯片就可用,需要可以留言和我說。做好的話會(huì)回復(fù)你們。
期待我的下一版光立方。



全部資料51hei下載地址:
視頻.rar (18.93 MB, 下載次數(shù): 105)
代碼.rar (7.38 MB, 下載次數(shù): 130)



作者: wyhnb    時(shí)間: 2018-8-24 09:35
代碼只寫了一部分動(dòng)畫,需要可以自己取模,取模軟件也在里面
作者: admin    時(shí)間: 2018-8-24 16:48
好資料,51黑有你更精彩!!!

作者: laoguang    時(shí)間: 2018-8-29 23:48
這個(gè) 真不錯(cuò)  謝謝分享
作者: 張露婕    時(shí)間: 2018-9-11 16:52
請(qǐng)問這個(gè)流水燈的花樣設(shè)計(jì)思維是怎么樣的呢?小白初次制作成品,求大神指教!!
作者: wyhnb    時(shí)間: 2018-9-15 11:20
張露婕 發(fā)表于 2018-9-11 16:52
請(qǐng)問這個(gè)流水燈的花樣設(shè)計(jì)思維是怎么樣的呢?小白初次制作成品,求大神指教。!

流水燈?各種形狀都是取模軟件做的,動(dòng)畫的話需要一幀一幀的取模
作者: kqk123    時(shí)間: 2018-9-18 13:14
代碼怎么都是亂碼啊。請(qǐng)問同事做的板子可以分享一下嗎

作者: wyhnb    時(shí)間: 2018-9-19 08:11
kqk123 發(fā)表于 2018-9-18 13:14
代碼怎么都是亂碼啊。請(qǐng)問同事做的板子可以分享一下嗎

不好意思,忘了公司電腦加密的,我貼主要部分代碼:
  1. void LED_2803(unsigned char a){                                                //控制層
  2.         switch(a){
  3.                 case 0:
  4.                         GPIO_ResetBits(GPIOB,0xFC03);
  5.                         break;
  6.                 case 1:
  7.                         GPIO_SetBits(GPIOB,GPIO_Pin_14);
  8.                         GPIO_ResetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_0|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_12);
  9.                         break;
  10.                 case 2:
  11.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_12);
  12.                         GPIO_SetBits(GPIOB,GPIO_Pin_10);
  13.                         break;
  14.                 case 3:
  15.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_10);
  16.                         GPIO_SetBits(GPIOB,GPIO_Pin_12);
  17.                         break;
  18.                 case 4:
  19.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_11|GPIO_Pin_10|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_13|GPIO_Pin_12);
  20.                         GPIO_SetBits(GPIOB,GPIO_Pin_1);
  21.                         break;
  22.                 case 5:
  23.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_12);
  24.                         GPIO_SetBits(GPIOB,GPIO_Pin_11);
  25.                         break;
  26.                 case 6:
  27.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11||GPIO_Pin_15|GPIO_Pin_14|GPIO_Pin_12);
  28.                         GPIO_SetBits(GPIOB,GPIO_Pin_13);
  29.                         break;
  30.                 case 7:
  31.                         GPIO_ResetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_12);
  32.                         GPIO_SetBits(GPIOB,GPIO_Pin_0);
  33.                         break;
  34.                 case 8:
  35.                         GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_12|GPIO_Pin_13);
  36.                         GPIO_SetBits(GPIOB,GPIO_Pin_15);
  37.                         break;
  38.                 default:
  39.                         GPIO_SetBits(GPIOB,0xFC03);
  40.                         break;        
  41.         }
  42. }



  43. void LED_573(u8 data){
  44.         GPIO_Write(GPIOA,data);
  45. }


  46. void LED_595(unsigned char a){                                                                                        //片選
  47.         unsigned char i,j,nums;
  48.         nums = low[a];

  49.         for(j = 0;j < 2; j++) {                                                                                        //循環(huán)兩次對(duì)應(yīng)IO口產(chǎn)生下降沿,使能對(duì)應(yīng)芯片
  50.                 for(i=0;i<8;i++) {
  51.                         if ((nums & 0x01) == 0x01) {
  52.                                 PCout(13) = 1;
  53.                         }
  54.                         else {
  55.                                 PCout(13) = 0;
  56.                         }
  57.                         nums >>= 1;
  58.                         __nop();
  59.                         __nop();
  60.                         PCout(15) = 1;
  61.                         __nop();
  62.                         __nop();
  63.                         __nop();
  64.                         __nop();
  65.                         PCout(15) = 0;
  66.                         __nop();
  67.                         __nop();
  68.                 }
  69.                 PCout(14) = 1;
  70.                 __nop();
  71.                 __nop();
  72.                 __nop();
  73.                 __nop();
  74.                 PCout(14) = 0;
  75.                 nums = 0;
  76.                 __nop();
  77.                 __nop();
  78.         }
  79. }



  80. void LED_Show(const unsigned char Data[][8][8], unsigned char n) {                             //直接取模軟件取模,n為畫面幀數(shù)
  81.         unsigned char i, j, k, t;
  82.         
  83.         for (i = 0; i < n; i++) {
  84.                 for (t = 0; t < 0x10; t++) {
  85.                         for (j = 0; j < 8; j++) {
  86.                                 GPIO_ResetBits(GPIOB, 0xFFFF);
  87.                                 for (k = 0; k < 8; k++) {
  88.                                         LED_573(Data[i][j][k]);
  89.                                         LED_595(k + 1);
  90.                                 }
  91.                                 GPIO_SetBits(GPIOB, LD[j]);
  92.                                 delay_us(1200);
  93.                         }
  94.                 }
  95.         }
  96. }


  97. //這是一個(gè)動(dòng)畫
  98. const unsigned char xuanzhuan[7][8][8] = {
  99. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  100. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  101. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  102. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  103. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  104. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  105. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  106. 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
  107.         
  108. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  109. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  110. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  111. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  112. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  113. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  114. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,
  115. 0x00, 0x00, 0x01, 0x0C, 0x30, 0x80, 0x00, 0x00,        

  116. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  117. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  118. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  119. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  120. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  121. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,        
  122. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  123. 0x00, 0x00, 0x80, 0x50, 0x0A, 0x01, 0x00, 0x00,
  124.         

  125. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  126. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  127. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  128. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  129. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  130. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  131. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,
  132. 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01,

  133. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  134. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  135. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  136. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  137. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  138. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  139. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,
  140. 0x20, 0x10, 0x00, 0x10, 0x08, 0x00, 0x08, 0x04,

  141. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  142. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  143. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  144. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  145. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  146. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  147. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
  148. 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,

  149. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  150. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  151. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  152. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  153. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  154. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  155. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  156. 0x02, 0x04, 0x00, 0x08, 0x08, 0x00, 0x10, 0x20,
  157. };
復(fù)制代碼



作者: 秦晉之壞    時(shí)間: 2018-9-30 22:44
wyhnb 發(fā)表于 2018-9-19 08:11
不好意思,忘了公司電腦加密的,我貼主要部分代碼:
void LED_2803(unsigned char a){                                                //控制層
         ...

能不能說一下密碼呀

作者: wyhnb    時(shí)間: 2018-10-4 10:42
秦晉之壞 發(fā)表于 2018-9-30 22:44
能不能說一下密碼呀

我不知道密碼,我把代碼都貼出來了,加密的也只有一部分代碼.
作者: wyhnb    時(shí)間: 2018-11-3 13:42
未加密源程序

project.rar

309.02 KB, 下載次數(shù): 79, 下載積分: 黑幣 -5


作者: funnyinside    時(shí)間: 2018-11-3 16:19
你這個(gè)下載坑人了,文件是壞的,還扣了幣
作者: 快樂眼淚    時(shí)間: 2018-11-3 18:24
好強(qiáng)大啊!
作者: wyhnb    時(shí)間: 2018-11-6 09:11
funnyinside 發(fā)表于 2018-11-3 16:19
你這個(gè)下載坑人了,文件是壞的,還扣了幣

不好意思不好意思,我當(dāng)時(shí)不知道公司電腦加密,我已經(jīng)把代碼整理貼到留言板里了,
作者: 雅龍    時(shí)間: 2018-11-6 14:21
外觀上,感覺還不錯(cuò),算是看過制作工藝比較好的,很棒
作者: wyhnb    時(shí)間: 2018-11-6 16:02
雅龍 發(fā)表于 2018-11-6 14:21
外觀上,感覺還不錯(cuò),算是看過制作工藝比較好的,很棒

就為了美觀我用鐵絲拉直了當(dāng)導(dǎo)線,但弊端會(huì)接觸不良,開始用鋼絲直接不沾錫,換鐵絲好了一點(diǎn),還是不好焊接,導(dǎo)電也不穩(wěn)定,用銅絲應(yīng)該好很多
作者: ysq153    時(shí)間: 2019-1-3 19:42
樓主你這個(gè)怎么下載正確的源程序。

作者: wyhnb    時(shí)間: 2019-1-4 09:17
ysq153 發(fā)表于 2019-1-3 19:42
樓主你這個(gè)怎么下載正確的源程序。

我補(bǔ)充了,在評(píng)論里,未加密源程序,置頂了。
作者: xunxing    時(shí)間: 2019-1-15 21:26
看下能否學(xué)習(xí)大佬思想
作者: ifree8    時(shí)間: 2019-1-22 16:58
這個(gè)太強(qiáng)大啦。。
作者: stolle    時(shí)間: 2019-5-26 02:59
非常感謝你。 這是一個(gè)很棒的網(wǎng)站。 在這里,您可以真正了解有關(guān)中國STC  -  MCU的許多信息。 我很著迷有多少人在這里提出他們的想法。
作者: frannykin    時(shí)間: 2019-7-4 22:10
亂碼····不過還是謝謝你
作者: wyhnb    時(shí)間: 2019-7-6 15:20
frannykin 發(fā)表于 2019-7-4 22:10
亂碼····不過還是謝謝你

未加密的上傳了,仔細(xì)看
作者: WANGWWA    時(shí)間: 2019-7-29 19:16
取模軟件用的是什么
作者: saj123456    時(shí)間: 2019-7-29 21:39
好資料,diy有你更精彩
作者: 鴻@志    時(shí)間: 2019-11-12 21:24
有原理圖分享下嗎?想知道硬件部分如何布局?

作者: 18469677002    時(shí)間: 2020-4-15 21:41
師傅搞的好
作者: zxopenljx    時(shí)間: 2020-4-18 14:43
謝謝樓主分享
作者: 鹿啦啦啦啦    時(shí)間: 2021-2-4 09:16
想要個(gè)樓主后面說做好的PCB板,樓主如果已經(jīng)做出來的話 能分享嗎?

作者: yzhg    時(shí)間: 2021-5-17 10:27
好資料,感謝大佬,51黑有你更精彩!!!
作者: King殘?jiān)?nbsp;   時(shí)間: 2022-6-23 12:36
底板的原理圖是啥樣的呀,那八個(gè)74HC595都是級(jí)聯(lián)在一起的吧




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1