(SKU:DFR0606) Gravity:全彩4x4x4光立方

来自DFRobot Product Wiki
跳转至: 导航搜索
文件:DFR0606.jpg
Gravity Full Color 4x4x4 Light Cube

目录

概述

Gravity:DFR0606全彩4x4x4光立方套件是一款能够和Arduino标准接口配合使用的简单插接组装LED阵列显示扩展板,用户只需要通过简单的拼接就可以实现一款可全彩显示的4x4x4光立方,而省去了复杂的焊接任务,将更多的时间和精力投身于LED的多彩显示上,你可以比编写代码去控制任意一盏灯的颜色和亮度而尽情发挥自己的才智;它可以是你送给朋友的一个礼物,也可以是你学习Arduino编程和三维显示的必备良品,数学函数曲线的变化,三基色是怎样混合去实现各种颜色的变化的?传感器数值的可视化多彩显示……你统统都可以实现,DFR0606-Base上将Arduino上部分数字引脚和模拟引脚都引出来了,这样你就可以接DFRobot的各种传感器去实现一些简单的交互了,不同的颜色代表不同的温度值,不同的点亮的区域可以是三轴加速度传感器三个轴上不同数值的显示,利用红外遥控你就可以实现无线遥控去控制其的变化,模拟传感器可以直接利用光柱的变化去显示采样到的模拟值…….

Warning yellow.png

注意:因为此光立方在全饱和工作情况下的电流将达到1A,所以在使用此光立方时需要在Full color 4x4x4 light cube-Base 的Micro USB 接入5V/1A的直流电源,普通的手机充电器和充电宝就可以使用,如果不外接供电,光立方不会正常工作。


性能描述

  • 工作电压(VCC):4.5V ~ 5.5V
  • 最大工作电流:1.1 ± 0.1 A
  • 最大工作功率:>5.5W
  • 数字IO口:D5,D6,D7,D8,D9,D10
  • 模拟IO口:A0,A1,A2,A3,A4,A5
  • 无需焊接,简单组装即可点亮
  • 支持5V/1A Micro USB 供电,采用手机充电器或者充电宝就可以工作
  • 64颗RGB单总线灯WS2812B,单个灯珠可控
  • 板上拥有6个数字IO和6个模拟IO ,可连接丰富的传感器实现互动显示
  • 支持Arduino IDE 编程,可玩出更多的花样
  • 亚克力外壳包装,设计精巧
  • 产品尺寸:54*69*110mm/21.2*21.8*43.3 inch
  • 重量:Xg(不含Arduino UNO R3)

引脚定义

Gravity Full Color 4x4x4 Light Cube 引脚描述
  • USB POWER:接入5V/1A的直流电源即可正常工作,否则不会正常工作
  • POWER LED:当在USB POWER接入5V/1A的电源时,此红色的LED将会点亮
  • Gravity Full Color 4x4x4 Light Cube 引脚描述高清图下载请点击我

光立方组装教程

组装教程下载

  • Gravity:全彩4x4x4光立方组装教程,pdf文件下载请点击我

组装完成的光立方

组装完成的光立方

使用教程


准备

  • 硬件
    • 组装完成的光立方 x1
    • 5V/1A的直流电源(普通的手机充电器和充电宝就可以)x1
    • Micro USB线 x1


Warning yellow.png

库文件的安装方式,请参考如何安装库?

示例代码1

  • 打开Arduino IDE在“示例”中打开找到“DFR0606 LightCube”打开“LightCubestart”
DFR0606_Light_Cube示例目录
  • 示例LightCubestart源码如下:
/*!
   /*!
   file LightCuverainbow.ino

   DFRobot-DFR0606 Full Color 4x4x4 Light Cube
   This sample codee is to test whether the light cube can work properly?
   If the light cube were working properly, it would be a rainbow block.
   Copyright    [DFRobot](http://www.dfrobot.com), 2018
   Copyright    GNU Lesser General Public License
   Macro.
   version  V1.0
   date  2019-03-21
*/
#include <DFRobot_LightCube.h>

DFRobot_LightCube cube = DFRobot_LightCube(NEO_GRB + NEO_KHZ800);
// Create a new object cube.
void setup() {

  cube.begin();
  
}

void loop() {
  
       theaterChase(cube.Color(0, 139, 139), 100); 
       theaterChase(cube.Color(139, 0, 139), 100); 
       theaterChase(cube.Color(255, 255, 0), 100); 
       theaterChase(cube.Color(0, 255, 255), 100); 
       colorWipe(cube.Color(255, 0, 0), 10);
       colorWipe(cube.Color(0, 255, 0), 10);
       colorWipe(cube.Color(0, 0, 255), 10);
       rainbow(20);
       rainbowCycle(10);
}

// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<64; i++) {
    cube.setPixelColor(i, c);
    cube.show();
    delay(wait);
  }
}
//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < 64; i=i+3) {
        cube.setPixelColor(i+q, c);    //turn every third pixel on
      }
      cube.show();
      delay(wait);
      for (int i=0; i < 64; i=i+3) {
        cube.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}
void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<64; i++) {
      cube.setPixelColor(i, Wheel((i+j) & 255));
    }
    cube.show();
    delay(wait);
  }
}
/*
 * Function: The Light Cube becomes a rainbow.
*/
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) {                 
    for(i=0; i< cube.numPixels(); i++) {
      cube.setPixelColor(i, Wheel(((i * 256 / cube.numPixels()) + j) & 255));
    }
    cube.show();
    delay(wait);
  }
}
/*
 * Function: Three shades of red, green and blue create a rainbow.
*/
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return cube.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  if(WheelPos < 170) {
    WheelPos -= 85;
    return cube.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
  WheelPos -= 170;
  return cube.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}

运行结果

  • 在Arduino IDE中运行代码,光立方会以彩虹色绚丽变化。

示例代码2

  • 示例代码2是示例如何用x,y,z坐标轴的方式点亮每一颗LED.
/*!
   /*!
   file LightCuverainbow.ino

   DFRobot-DFR0606 Full Color 4x4x4 Light Cube
   TThis sample code is used to coordinate the way to open the light cube 
   of any one of the LED.
   setVoxel(int x, int y, int z,int r,int g,int b)
   x、y、z is the coordinate,r,g,b is the Color.
   Copyright    [DFRobot](http://www.dfrobot.com), 2018
   Copyright    GNU Lesser General Public License
   Macro.
   version  V1.0
   date  2019-03-21
*/
#include <DFRobot_LightCube.h>
int frame=0;
DFRobot_LightCube cube = DFRobot_LightCube(NEO_GRB + NEO_KHZ800);
// Create a new object cube.
void setup() {
  
    cube.begin();
    background(0,0,0);
    
}
void loop() {
  
      background(0,0,0);
        if(frame%20>10)
         setVoxel(1,1,1,139,0,139); // 139,0,139,The corresponding color is purple
         cube.show();
         frame++;
      if(frame>255)
         frame =0;        
}
//  setVoxel(int x, int y, int z,int r,int g,int b)
//  x、y、z is the coordinate,r,g,b is the Color.
void setVoxel(int x, int y, int z,int r,int g,int b)
{
  if(x >= 0 && y >= 0 && z >= 0 &&
      x < 4 && y < 4 && z < 4) {
    int index = (z*16) + (x*4) + y;
    cube.setPixelColor(index, cube.Color(r,g,b));
  }
}
// Set the entire light cube to display one color as background
void background(int r,int g,int b)
{
  
  for(int x = 0; x < 4; x++)
    for(int y = 0; y < 4; y++)
      for(int z = 0; z < 4; z++)
        setVoxel(x, y, z, r, g, b );
        
}

运行结果

  • 运行代码后你就会发现位于光立方(1,1,1)位置上的灯珠会以RGB值(139,0,139)紫色闪烁

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多

DFshopping car1.png Gravity 全彩4x4x4光立方

个人工具
名字空间

变换
操作
导航
工具箱