找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12431|回复: 30
收起左侧

stm32 8*8*8光立方制作过程 附源码与视频

  [复制链接]
ID:380690 发表于 2018-8-24 09:29 | 显示全部楼层 |阅读模式
从选芯片到板子规划都是现学现做,制作过程很无聊,但看着板子越来越漂亮还是很满足,是stm32单片机主控的.
IMG_20180819_080307.jpg IMG_20180819_075409.jpg

从网上看了大量的资料来确定芯片,然后买芯片来一个一个测试性能,再确定接那个IO口,一边焊板子一边规划排版


IMG_20180819_075439.jpg
第一次做有好多不懂,也做了很多我无用功,浪费材料,为了美观我用铁丝来焊接线路,感觉还不错,就是有点浪费时间。

IMG_20180819_184209.jpg IMG_20180819_184232.jpg
IMG_20180822_215041.jpg

做出来也遇到很多错误总结一下:
1、开始用一般的短管脚的LED灯(不知道有长管脚的LED灯),然后想着用铁丝来延长,焊接在铁丝上,为了做出的效果整齐,还买了钢丝,后来焊接才发现钢丝不沾锡,又换铁丝,铁丝也不怎么沾锡又换灯,换长管脚的LED灯,真是一点经验没有,连焊锡都是现学的。
IMG_20180824_082735.jpg
2、想着LED发光有一定距离,就把灯的间距搞的很大,管脚刚好搭上一点点,很难焊锡,最后控制层没办法还是用铁丝代替,铁丝是真的难焊。有次焊接控制层的铁丝,由于不沾锡,那个融化的锡滴到芯片上,把管脚都连接起来了,那时候都快完工了,弄了一早上才解决。而且焊接出来会接触不良,都是铁丝不沾锡。
2、焊电路板用铁丝还可以,铁丝两头弯一下直接插到洞洞板里面,焊出来电路干净整齐。
3、焊好每一面灯需要检查一下,我512个灯还是出现一个灯不亮。
4、焊每一面灯还是需要找一个模具来固定LED灯,焊接便利,焊出来也整齐。这是亚克力板,然后用电机手工打出来的。
IMG_20180824_084336.jpg
5、我是用20*30的PCB板,真的啥都不懂,开始买的PCB板是两毫米间距的,插不了芯片,后来又重新买,又走弯路。

6、对自己手工还是比较满意,没有电路图,没有教程,每次不知道的都是网上看,模仿,出了问题也自己难受。
IMG_20180824_085120.jpg

IMG_20180824_085138.jpg

IMG_20180824_085156.jpg
7、所有都做好之后写代码测试,出了很多问题,焊接接触不良,一般都是有铁丝的地方,还有一竖灯不亮,测电阻是好的,换电阻也不亮,没办法那一竖排灯直接接IO口,没用电阻。
8、电路这些也不懂,就单片机引脚出来控制相应的芯片然后串个电阻控制LED灯,最后会发现灯不安套路点亮,点亮一个没问题,单独点亮两个三个就出问题了。还有电源接电脑USB口没问题,接其他地方也会出错,我们部门大佬说一点一点去测线路电压还是电流,然后加芯片控制电流电压,那我的灯瞎几把乱闪就是电路设计有问题了,没设计稳定的电压。
9、我大部分芯片都是和https://wenku.baidu.com/view/c72a48f9960590c69ec37649.html这个作者的一样,你们可以去看看。我用STM32103的芯片,买这个长管脚的灯1000个花了45,定制亚克力板等等,电机也自己买,林林总总花了342块,自己都不相信,也算买经验,如果有教程,都是设计好的做绝对一百以内。
10、我们部门一个硬件大佬也想做,他直接设计好板子去给厂家打印,就不需要焊接电路,直接插芯片就可用,需要可以留言和我说。做好的话会回复你们。
期待我的下一版光立方。

0.png

全部资料51hei下载地址:
视频.rar (18.93 MB, 下载次数: 104)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:380690 发表于 2018-11-3 13:42 | 显示全部楼层
未加密源程序

project.rar

309.02 KB, 下载次数: 79, 下载积分: 黑币 -5

评分

参与人数 1黑币 +80 收起 理由
admin + 80 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:380690 发表于 2018-8-24 09:35 | 显示全部楼层
代码只写了一部分动画,需要可以自己取模,取模软件也在里面
回复

使用道具 举报

ID:1 发表于 2018-8-24 16:48 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:101726 发表于 2018-8-29 23:48 | 显示全部楼层
这个 真不错  谢谢分享
回复

使用道具 举报

ID:300927 发表于 2018-9-11 16:52 | 显示全部楼层
请问这个流水灯的花样设计思维是怎么样的呢?小白初次制作成品,求大神指教!!!
回复

使用道具 举报

ID:380690 发表于 2018-9-15 11:20 | 显示全部楼层
张露婕 发表于 2018-9-11 16:52
请问这个流水灯的花样设计思维是怎么样的呢?小白初次制作成品,求大神指教!!!

流水灯?各种形状都是取模软件做的,动画的话需要一帧一帧的取模

评分

参与人数 1黑币 +3 收起 理由
张露婕 + 3 赞一个!

查看全部评分

回复

使用道具 举报

ID:366678 发表于 2018-9-18 13:14 | 显示全部楼层
代码怎么都是乱码啊。请问同事做的板子可以分享一下吗
回复

使用道具 举报

ID:380690 发表于 2018-9-19 08:11 | 显示全部楼层
kqk123 发表于 2018-9-18 13:14
代码怎么都是乱码啊。请问同事做的板子可以分享一下吗

不好意思,忘了公司电脑加密的,我贴主要部分代码:
  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++) {                                                                                        //循环两次对应IO口产生下降沿,使能对应芯片
  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为画面帧数
  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. //这是一个动画
  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. };
复制代码


回复

使用道具 举报

ID:393168 发表于 2018-9-30 22:44 来自手机 | 显示全部楼层
wyhnb 发表于 2018-9-19 08:11
不好意思,忘了公司电脑加密的,我贴主要部分代码:
void LED_2803(unsigned char a){                                                //控制层
         ...

能不能说一下密码呀
回复

使用道具 举报

ID:380690 发表于 2018-10-4 10:42 | 显示全部楼层
秦晋之坏 发表于 2018-9-30 22:44
能不能说一下密码呀

我不知道密码,我把代码都贴出来了,加密的也只有一部分代码.
回复

使用道具 举报

ID:409444 发表于 2018-11-3 16:19 | 显示全部楼层
你这个下载坑人了,文件是坏的,还扣了币
回复

使用道具 举报

ID:399179 发表于 2018-11-3 18:24 来自手机 | 显示全部楼层
好强大啊!
回复

使用道具 举报

ID:380690 发表于 2018-11-6 09:11 | 显示全部楼层
funnyinside 发表于 2018-11-3 16:19
你这个下载坑人了,文件是坏的,还扣了币

不好意思不好意思,我当时不知道公司电脑加密,我已经把代码整理贴到留言板里了,
回复

使用道具 举报

ID:336187 发表于 2018-11-6 14:21 | 显示全部楼层
外观上,感觉还不错,算是看过制作工艺比较好的,很棒
回复

使用道具 举报

ID:380690 发表于 2018-11-6 16:02 | 显示全部楼层
雅龙 发表于 2018-11-6 14:21
外观上,感觉还不错,算是看过制作工艺比较好的,很棒

就为了美观我用铁丝拉直了当导线,但弊端会接触不良,开始用钢丝直接不沾锡,换铁丝好了一点,还是不好焊接,导电也不稳定,用铜丝应该好很多
回复

使用道具 举报

ID:266746 发表于 2019-1-3 19:42 | 显示全部楼层
楼主你这个怎么下载正确的源程序啊?
回复

使用道具 举报

ID:380690 发表于 2019-1-4 09:17 | 显示全部楼层
ysq153 发表于 2019-1-3 19:42
楼主你这个怎么下载正确的源程序啊?

我补充了,在评论里,未加密源程序,置顶了。
回复

使用道具 举报

ID:418772 发表于 2019-1-15 21:26 | 显示全部楼层
看下能否学习大佬思想
回复

使用道具 举报

ID:471573 发表于 2019-1-22 16:58 | 显示全部楼层
这个太强大啦!!!
回复

使用道具 举报

ID:432687 发表于 2019-5-26 02:59 来自手机 | 显示全部楼层
非常感谢你。 这是一个很棒的网站。 在这里,您可以真正了解有关中国STC  -  MCU的许多信息。 我很着迷有多少人在这里提出他们的想法。
回复

使用道具 举报

ID:419966 发表于 2019-7-4 22:10 | 显示全部楼层
乱码····不过还是谢谢你
回复

使用道具 举报

ID:380690 发表于 2019-7-6 15:20 | 显示全部楼层
frannykin 发表于 2019-7-4 22:10
乱码····不过还是谢谢你

未加密的上传了,仔细看
回复

使用道具 举报

ID:587820 发表于 2019-7-29 19:16 | 显示全部楼层
取模软件用的是什么
回复

使用道具 举报

ID:473471 发表于 2019-7-29 21:39 | 显示全部楼层
好资料,diy有你更精彩
回复

使用道具 举报

ID:599812 发表于 2019-11-12 21:24 | 显示全部楼层
有原理图分享下吗?想知道硬件部分如何布局?
回复

使用道具 举报

ID:730113 发表于 2020-4-15 21:41 | 显示全部楼层
师傅搞的好
回复

使用道具 举报

ID:704585 发表于 2020-4-18 14:43 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:854713 发表于 2021-2-4 09:16 | 显示全部楼层
想要个楼主后面说做好的PCB板,楼主如果已经做出来的话 能分享吗?
回复

使用道具 举报

ID:393193 发表于 2021-5-17 10:27 | 显示全部楼层
好资料,感谢大佬,51黑有你更精彩!!!
回复

使用道具 举报

ID:1033268 发表于 2022-6-23 12:36 | 显示全部楼层
底板的原理图是啥样的呀,那八个74HC595都是级联在一起的吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表