标题: 光立方资料!Arduino代码 焊接教程 原理图 [打印本页]

作者: guanxin13    时间: 2017-9-21 10:46
标题: 光立方资料!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)



作者: Jamie19880314    时间: 2018-3-22 08:22
太好了,感谢感谢
作者: 孤独怪客    时间: 2018-5-2 14:07

太好了,感谢感谢
作者: 蔡定银    时间: 2018-5-3 11:23
如果再有详细教程就好了,很棒。致敬大神
作者: fsgvaert    时间: 2018-6-1 13:23
请问那个最后的  a,b,c,d,e,f,g,h是什么意思
作者: zhangpeng1101    时间: 2018-6-1 18:44
焊接更详细就好了
作者: xiaoxiao1122    时间: 2018-8-15 09:48
太好了,感谢分享
作者: xiaoxiao1122    时间: 2018-8-27 19:52
太好了,感谢分享
作者: sincerecz    时间: 2018-10-5 14:10
感谢分享,终于找到了,就是有一点没看懂
作者: 天空清晨    时间: 2018-10-27 08:57
学习了,不知道电路板上的 R 和 P代表什么意思啊?零基础小白
作者: tongue    时间: 2018-11-10 14:03
感谢

作者: limo儿    时间: 2018-11-11 17:04
那个LQ-LightCube板的内部电路是怎么样的啊?
作者: XH47    时间: 2018-11-18 19:03
CUBESIZE 是什么
作者: long2018    时间: 2019-1-25 15:31
感谢分享,终于找到了,想学习,可是有一点没看懂
作者: hyf1130436651    时间: 2019-10-18 21:53
厉害了

作者: Firefoxwl    时间: 2019-10-21 14:51
相当的完美,学习中
作者: 陈英俊    时间: 2019-11-4 18:34
感谢!

作者: 咸鱼eee    时间: 2019-12-7 11:38
有没有更详细的电路图?
作者: my65736    时间: 2020-6-6 11:04
fsgvaert 发表于 2018-6-1 13:23
请问那个最后的  a,b,c,d,e,f,g,h是什么意思

类似于数码管的8哥引脚
作者: Guo1998    时间: 2020-6-9 20:35
用的是哪一款arduino?
作者: bryanlee512    时间: 2022-2-5 17:17
150行代码是不是错了,因为层是共阴,使能的话应该是Low,但这样ULN芯片就失去意义了。。
作者: zsyzdx    时间: 2022-2-25 15:49
喝水不忘挖井人谢谢楼主!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1