找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 20230|回复: 21
打印 上一主题 下一主题
收起左侧

光立方资料!Arduino代码 焊接教程 原理图

  [复制链接]
跳转到指定楼层
楼主
Arduino光立方代码  焊接教程 原理图
通俗易懂的硬件焊接教程:



原理图



Arduino参考程序代码:
  1. int latchPin = 13;     //74HC595的ST_CP(管脚12)
  2. int clockPin = 12;    //74HC595的SH_CP(管脚11)
  3. int dataPin = 11;     //74HC595的DS(管脚14)
  4. int CUBESIZE = 8;
  5. int PlanePin[] = {2, 3, 4, 5, 6, 7, 8, 9};

  6. void setup()
  7. {
  8.   pinMode(latchPin, OUTPUT);
  9.   pinMode(clockPin, OUTPUT);
  10.   pinMode(dataPin, OUTPUT);
  11.   for(int i = 0; i < 8; i++)
  12.   {
  13.     pinMode(PlanePin[i],OUTPUT);
  14.   }
  15. }

  16. void loop()
  17. {
  18.   //花样1
  19.   EnablePlane(1);
  20.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第一层全亮
  21.   delay(200);
  22.   EnablePlane(2);
  23.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第二层全亮
  24.   delay(200);
  25.   EnablePlane(4);
  26.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第三层全亮
  27.   delay(200);
  28.   EnablePlane(8);
  29.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第四层全亮
  30.   delay(200);
  31.   EnablePlane(16);
  32.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第五层全亮
  33.   delay(200);
  34.   EnablePlane(32);
  35.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第六层全亮
  36.   delay(200);
  37.   EnablePlane(64);
  38.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第七层全亮
  39.   delay(200);
  40.   EnablePlane(128);
  41.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//第八层全亮
  42.   delay(200);
  43.   //花样2
  44.   EnablePlane(255);
  45.   EnableLed(0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01);//第1列全亮
  46.   delay(200);
  47.   EnablePlane(255);
  48.   EnableLed(0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02);//第2列全亮
  49.   delay(200);
  50.   EnablePlane(255);
  51.   EnableLed(0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04);//第3列全亮
  52.   delay(200);
  53.   EnablePlane(255);
  54.   EnableLed(0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08);//第4列全亮
  55.   delay(200);
  56.   EnablePlane(255);
  57.   EnableLed(0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10);//第5列全亮
  58.   delay(200);
  59.   EnablePlane(255);
  60.   EnableLed(0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20);//第6列全亮
  61.   delay(200);
  62.   EnablePlane(255);
  63.   EnableLed(0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40);//第7列全亮
  64.   delay(200);
  65.   EnablePlane(255);
  66.   EnableLed(0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80);//第8列全亮
  67.   delay(200);
  68.   //花样3
  69.   EnablePlane(0xC0);
  70.   EnableLed(0,0,0,0,0,0,0x03,0x03);//2阶立方体
  71.   delay(200);
  72.   EnablePlane(0xE0);
  73.   EnableLed(0,0,0,0,0,0x07,0x07,0x07);//3阶立方体
  74.   delay(200);
  75.   EnablePlane(0xF0);
  76.   EnableLed(0,0,0,0,0x0F,0x0F,0x0F,0x0F);//4阶立方体
  77.   delay(200);
  78.   EnablePlane(0xF8);
  79.   EnableLed(0,0,0,0x1F,0x1F,0x1F,0x1F,0x1F);//5阶立方体
  80.   delay(200);
  81.   EnablePlane(0xFC);
  82.   EnableLed(0,0,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F);//6阶立方体
  83.   delay(200);
  84.   EnablePlane(0xFE);
  85.   EnableLed(0,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F);//7阶立方体
  86.   delay(200);
  87.   EnablePlane(0xFF);
  88.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8阶立方体
  89.   delay(200);
  90.   //花样4
  91.   EnablePlane(0xC0);
  92.   EnableLed(0xC0,0xC0,0,0,0,0,0,0);//2阶立方体
  93.   delay(200);
  94.   EnablePlane(0xE0);
  95.   EnableLed(0xE0,0xE0,0xE0,0,0,0,0,0);//3阶立方体
  96.   delay(200);
  97.   EnablePlane(0xF0);
  98.   EnableLed(0xF0,0xF0,0xF0,0xF0,0,0,0,0);//4阶立方体
  99.   delay(200);
  100.   EnablePlane(0xF8);
  101.   EnableLed(0xF8,0xF8,0xF8,0xF8,0xF8,0,0,0);//5阶立方体
  102.   delay(200);
  103.   EnablePlane(0xFC);
  104.   EnableLed(0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0,0);//6阶立方体
  105.   delay(200);
  106.   EnablePlane(0xFE);
  107.   EnableLed(0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0);//7阶立方体
  108.   delay(200);
  109.   EnablePlane(0xFF);
  110.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8阶立方体
  111.   delay(200);
  112.   //花样5
  113.   EnablePlane(0x18);
  114.   EnableLed(0,0,0,0x18,0x18,0,0,0);//2阶立方体
  115.   delay(200);
  116.   EnablePlane(0x3C);
  117.   EnableLed(0,0,0x3C,0x3C,0x3C,0x3C,0,0);//4阶立方体
  118.   delay(200);
  119.   EnablePlane(0x7E);
  120.   EnableLed(0,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0);//6阶立方体
  121.   delay(200);
  122.   EnablePlane(0xFF);
  123.   EnableLed(0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF);//8阶立方体
  124.   delay(200);
  125.   //花样6
  126.   EnablePlane(0x7E);
  127.   EnableLed(0,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0);//6阶立方体
  128.   delay(200);
  129.   EnablePlane(0x3C);
  130.   EnableLed(0,0,0x3C,0x3C,0x3C,0x3C,0,0);//4阶立方体
  131.   delay(200);
  132.   EnablePlane(0x18);
  133.   EnableLed(0,0,0,0x18,0x18,0,0,0);//2阶立方体
  134.   delay(200);
  135.   EnablePlane(0);
  136.   EnableLed(0,0,0,0,0,0,0,0);//全灭
  137.   delay(200);
  138.   //花样7
  139.   EnablePlane(0x81);
  140.   EnableLed(0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF);
  141.   delay(200);
  142.   //花样8
  143.   EnablePlane(0xFF);
  144.   EnableLed(0x81,0,0,0,0,0,0,0x81);
  145.   delay(200);
  146. }

  147. void EnablePlane(byte a) //a为1个字节,8位的变量,想使能那层LED,对应的哪位为1
  148. {
  149.   for(int j = 0; j < CUBESIZE; j++)
  150.   {
  151.     if((0x1 << j) & a)
  152.       digitalWrite(PlanePin[j],HIGH);
  153.     else
  154.       digitalWrite(PlanePin[j],LOW);
  155.   }
  156. }
  157. void EnableLed(unsigned int a, unsigned int b,unsigned int c,unsigned int d,unsigned int e,unsigned int f,unsigned int g,unsigned int h)
  158. {
  159.   digitalWrite(latchPin,LOW);      //将ST_CP口上面加低电平让芯片准备好接收数据
  160.   shiftOut(dataPin, clockPin, MSBFIRST, a); //U8 74HC595
  161.   shiftOut(dataPin, clockPin, MSBFIRST, b); //U7
  162.   shiftOut(dataPin, clockPin, MSBFIRST, c); //U6
  163.   shiftOut(dataPin, clockPin, MSBFIRST, d); //U5
  164.   shiftOut(dataPin, clockPin, MSBFIRST, e); //U4
  165.   shiftOut(dataPin, clockPin, MSBFIRST, f); //U3
  166.   shiftOut(dataPin, clockPin, MSBFIRST, g); //U2
  167.   shiftOut(dataPin, clockPin, MSBFIRST, h); //U1
  168.   digitalWrite(latchPin, HIGH);   //串行输入数据输出到并口
  169. }

复制代码

资料下载:
光立方资料.zip (6.4 MB, 下载次数: 246)


评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:295087 发表于 2018-3-22 08:22 | 只看该作者
太好了,感谢感谢
回复

使用道具 举报

板凳
ID:320424 发表于 2018-5-2 14:07 | 只看该作者

太好了,感谢感谢
回复

使用道具 举报

地板
ID:315589 发表于 2018-5-3 11:23 | 只看该作者
如果再有详细教程就好了,很棒。致敬大神
回复

使用道具 举报

5#
ID:284149 发表于 2018-6-1 13:23 | 只看该作者
请问那个最后的  a,b,c,d,e,f,g,h是什么意思
回复

使用道具 举报

6#
ID:343070 发表于 2018-6-1 18:44 | 只看该作者
焊接更详细就好了
回复

使用道具 举报

7#
ID:384558 发表于 2018-8-15 09:48 | 只看该作者
太好了,感谢分享
回复

使用道具 举报

8#
ID:384558 发表于 2018-8-27 19:52 | 只看该作者
太好了,感谢分享
回复

使用道具 举报

9#
ID:404113 发表于 2018-10-5 14:10 | 只看该作者
感谢分享,终于找到了,就是有一点没看懂
回复

使用道具 举报

10#
ID:416124 发表于 2018-10-27 08:57 | 只看该作者
学习了,不知道电路板上的 R 和 P代表什么意思啊?零基础小白
回复

使用道具 举报

11#
ID:325114 发表于 2018-11-10 14:03 | 只看该作者
感谢
回复

使用道具 举报

12#
ID:424550 发表于 2018-11-11 17:04 | 只看该作者
那个LQ-LightCube板的内部电路是怎么样的啊?
回复

使用道具 举报

13#
ID:428804 发表于 2018-11-18 19:03 | 只看该作者
CUBESIZE 是什么
回复

使用道具 举报

14#
ID:292518 发表于 2019-1-25 15:31 | 只看该作者
感谢分享,终于找到了,想学习,可是有一点没看懂
回复

使用道具 举报

15#
ID:622785 发表于 2019-10-18 21:53 | 只看该作者
厉害了
回复

使用道具 举报

16#
ID:627371 发表于 2019-10-21 14:51 | 只看该作者
相当的完美,学习中
回复

使用道具 举报

17#
ID:617518 发表于 2019-11-4 18:34 | 只看该作者
感谢!
回复

使用道具 举报

18#
ID:658062 发表于 2019-12-7 11:38 来自手机 | 只看该作者
有没有更详细的电路图?
回复

使用道具 举报

19#
ID:770978 发表于 2020-6-6 11:04 来自手机 | 只看该作者
fsgvaert 发表于 2018-6-1 13:23
请问那个最后的  a,b,c,d,e,f,g,h是什么意思

类似于数码管的8哥引脚
回复

使用道具 举报

20#
ID:480340 发表于 2020-6-9 20:35 | 只看该作者
用的是哪一款arduino?
回复

使用道具 举报

21#
ID:1001569 发表于 2022-2-5 17:17 | 只看该作者
150行代码是不是错了,因为层是共阴,使能的话应该是Low,但这样ULN芯片就失去意义了。。
回复

使用道具 举报

22#
ID:320306 发表于 2022-2-25 15:49 | 只看该作者
喝水不忘挖井人谢谢楼主!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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