查看: 2073|回复: 6

[项目] 发一个正在做的8*8*8光立方

[复制链接]
  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

    发表于 2019-3-23 19:56 | 显示全部楼层 |阅读模式
    最近不怎么忙就焊接了一个光立方,第一次做,也没什么参考。有思路后就开工。用激光雕刻机做了个焊接的模板,3mm的孔,间距10mm,再上面一排一排的做好再焊接。
    20190323_193014.jpg
    用的高亮红色3mm,高度没怎么注意结果间距大有些偏高了。
    20190316_083508.jpg
    20190317_092648.jpg
    20190317_092721.jpg

    驱动电路用的自制的595小板子,一共9片,8片负责纵向控制,最后一片负责8个层控制,用2803做驱动。
    20190323_191930.jpg
    20190323_191955.jpg
    20190323_192025.jpg
    PCB_NEW-PCB_20190323192329.png
    595.PNG

    编了个小程序测试了一下,最终成功。焊接一定要注意焊好一排就挨个测试,都亮了再继续。要是完成了再发现不亮的就麻烦了。
    20190323_191233_20190323194656.gif

    附刚刚写的测试程序:
    各种变换效果抽空再编写了。

    又订购了双色的3mmLED,再做异形的。

    kittenblock中小学创客名师推荐的图形化编程软件

    // 使用 74HC595 
    // 接 74HC595 的 ST_CP (pin 12,latch pin)
    #define latchPin 5
    // 接 74HC595 的 SH_CP (pin 11, clock pin)
    #define clockPin  4
    // 接 74HC595 的 DS (pin 14)
    #define dataPin  3
    #define dataPin2  9  //双色备用
    
    const byte ta[8][8] ={
      {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},
      {0xFF,0x7E,0x00,0x00,0x00,0x00,0x7E,0xFF},
      {0xFF,0x7E,0x3C,0x00,0x00,0x3C,0x7E,0xFF},
      {0xFF,0x7E,0x3C,0x18,0x18,0x3C,0x7E,0xFF},
      {0xFF,0x7E,0x3C,0x18,0x18,0x3C,0x7E,0xFF},
      {0xFF,0x7E,0x3C,0x00,0x00,0x3C,0x7E,0xFF},
      {0xFF,0x7E,0x00,0x00,0x00,0x00,0x7E,0xFF},
      {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},
      
      };
    void setup() {
      // 将 latchPin, clockPin, dataPin 设置为输出
      pinMode(latchPin, OUTPUT);
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      pinMode(dataPin2, OUTPUT);
     
     Serial.begin(115200);
    
    }
    void loop() {
        for (int x = 0;x<8;x++){
            outchar(x);
          delay(50);
        }   
        for (int x = 7;x>=0;x--){
            outchar(x);
          delay(50);
        }  
    }
    void outchar(int outx){
            digitalWrite(latchPin, LOW); 
              OUTDATA(dataPin,dataPin2, clockPin,1<<(7-outx),0); 
           for (int m=0;m<8;m++){
              OUTDATA(dataPin,dataPin2, clockPin,ta[m][outx],0);  
           }
        digitalWrite(latchPin, HIGH);  
     
      }
    void OUTDATA(uint8_t x,uint8_t y, uint8_t clockp, uint8_t val, uint8_t val_2){
          uint8_t i;
          for (i = 0; i < 8; i++){
                      digitalWrite(x, (val & ( 1<< i )));
                      digitalWrite(y, (val_2 & (1<< i )));
                      digitalWrite(clockp, HIGH);
                      digitalWrite(clockp, LOW);           
          }
    }




  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

     楼主| 发表于 2019-3-24 17:30 | 显示全部楼层
    20190324_171940_20190324172636.gif

    S型扭呀扭

    kittenblock中小学创客名师推荐的图形化编程软件

    #include <MsTimer2.h>  //定时中断的库
    // 使用 74HC595 
    // 接 74HC595 的 ST_CP (pin 12,latch pin)
    #define latchPin 5
    // 接 74HC595 的 SH_CP (pin 11, clock pin)
    #define clockPin  4
    // 接 74HC595 的 DS (pin 14)
    #define dataPin  3
    #define dataPin2  9  //双色备用
    
    byte led[8][8] ={
      {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},
      {0x00,0x7E,0x00,0x00,0x00,0x00,0x7E,0x00},
      {0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00},
      {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},
      {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00},
      {0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00},
      {0x00,0x7E,0x00,0x00,0x00,0x00,0x7E,0x00},
      {0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},
      
      };
    byte buff[8];
    uint8_t layer = 0;
    unsigned int num = 0;
    void ledout(){  //定时中断,扫描每一层
        layer++;
        if (layer ==8)
          layer = 0;
        outchar(layer);
      
      }
    void setup() {
      // 将 latchPin, clockPin, dataPin 设置为输出
      pinMode(latchPin, OUTPUT);
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      pinMode(dataPin2, OUTPUT);
       MsTimer2::set(2, ledout); // 2ms period
      MsTimer2::start();
    
     //Serial.begin(115200);
    
    }
    void loop() {
      for(int i = 0;i<8;i++){  //把底层放入缓存
                buff = led[7];
        }
      for(int i=0;i<7;i++){     //顺序下移一层
        for(int j=0;j<8;j++){
               led[j][7-i] = led[j][6-i];
         }
        }
      for(int i = 0;i<8;i++){   //把缓存放入顶层
               led[0] = buff;
        }
    
        delay(100);
     
    }
    void outchar(int outx){
            digitalWrite(latchPin, LOW); 
              OUTDATA(dataPin,dataPin2, clockPin,1<<(7-outx),0);  //层选中
             // int m=5;
           for (int m=0;m<8;m++){   //输出8个立面
              OUTDATA(dataPin,dataPin2, clockPin,led[m][outx],0);  
           }
        digitalWrite(latchPin, HIGH);  
     
      }
    void OUTDATA(uint8_t x,uint8_t y, uint8_t clockp, uint8_t val, uint8_t val_2){
          uint8_t i;
          for (i = 0; i < 8; i++){
                      digitalWrite(x, (val & ( 1<< i )));
                      digitalWrite(y, (val_2 & (1<< i )));
                      digitalWrite(clockp, HIGH);
                      digitalWrite(clockp, LOW);           
          }
    }



  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

     楼主| 发表于 2019-3-25 14:17 | 显示全部楼层
    贴设计板图,上午刚弄的。打算做16*16*16双色的。估计要半年完成吧。
    pb.png

    PCB_NEW-PCB_20190325140935.png

    一个双色单元。16光立方要用32片,用64片595,再加两片层驱动。

    用红蓝双色3mm雾状灯


  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-6 18:58 | 显示全部楼层
    第二个焊接练习
    PCB_NEW-PCB_20190406185130.png 20190404_221049.jpg 20190404_221053.jpg 20190404_221057.jpg 20190405_085634.jpg 20190405_085641.jpg

  • TA的每日心情
    开心
    2019-10-2 15:16
  • 签到天数: 53 天

    [LV.5]常住居民I

     楼主| 发表于 2019-4-6 19:00 | 显示全部楼层
    20190406_090253_20190406185731.gif
  • TA的每日心情
    开心
    2019-10-30 08:14
  • 签到天数: 18 天

    [LV.4]偶尔看看III

    发表于 2019-5-30 23:47 | 显示全部楼层
    嗯,很赞,很久前在油管上见过这个项目。
  • TA的每日心情
    无聊
    2020-1-23 18:36
  • 签到天数: 105 天

    [LV.6]常住居民II

    发表于 2019-6-27 13:53 | 显示全部楼层
    既漂亮又实用
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    [限时福利]5分钟带你快速了解新一代开发板:M5STACK
    [限时福利]5分钟带你快速
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    ESP32能烧录程序但是不能启动
    ESP32能烧录程序但是不能
    电路图3如下1,能烧录程序但是不能启动,3.3V供电正常
    SpiderRobot 蜘蛛
    SpiderRobot 蜘蛛
    关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
    点灯·blinker-app智动化设置不工作,还需设置那些?
    点灯·blinker-app智动化
    void loop() { Blinker.run(); // Blinker.delay(100); if (read_time ==
    OLED 128*64自制可达10000000个选项的菜单(已更新)
    OLED 128*64自制可达10000
    OLED 128*64自制可达10000000个选项的菜单 温馨提示: 建议占个楼再食用本帖子
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表