数据加载中....
您的位置:电子电路网 >>电路图 >>电子制作DIY >>LED DIY
炫耀夺目的LED Cube 光立方设计 评论(0) 收藏(0
所属分类:电子制作DIY LED DIY
浏览:311次
顶 [0人]
0%
踩 [0人]
0%
登陆即可参与评分,获得积分奖励! [评分一次获1分,每天最多得5分]
  • 详细说明

项目简介
LED Cube 光立方是一个非常酷炫的装置,当它发光时不仅有炫耀夺目的视觉效果,而且其中还隐藏了不少数学原理。
所用器件
Arduino UNO     1
LED     1
硬件说明
检查所有的 LED 是否有正常发亮,弯折 LED,制作固定 LED 的模板,将圆孔母排针焊到电路板上,焊接公排针,焊接 LED。


UNO脚位D0~D13 & A0~A1 分别控制每一颗 LED,D0 控制的 LED 是靠近 D0 脚位那一颗,A1 脚位则是控制距离 D0 最远的那一颗 LED。A2 控制顶层 LED,A5 则是控制底层 LED。


软件说明
把所有的脚位都设定成 OUTPUT,才可以指定它要 HIGH 或 LOW。当指定它为 HIGH 时电位是 5V;当指定它为 LOW时电位是 0V,相对于 5V 而言可以把它视为是 GND。
在初始阶段为了让所有的 LED 都不亮,所以在 setup() 阶段将 16只 LED 脚位都设为 LOW,并且将控制层面的 4 只脚位都设为 HIGH。此时 LED 受到逆向 5V 的电压,但因 LED 可承受 5V 逆向偏压,再加上 UNO 的输出电流不大(每一脚位为 20mA),所以 LED 不至于会烧毁。个人觉得这是一种为节省材料成本,但却是非常冒险的电路做法,LED 稍有不慎短路,将会毁坏 Arduino 主板。
//2017-01-01 LED_Cube4_01.ino

#define CUBE_SIZE 4
#define PLANE_SIZE CUBE_SIZE*CUBE_SIZE
#define PLANE_TIME 20
#define LED_TIME 500

int LEDPin[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1};
int PlanePin[] = {A2 , A3, A4, A5};

void setup()
{
  int pin;
  for (pin = 0; pin < PLANE_SIZE; pin++) {
    pinMode(LEDPin[pin], OUTPUT);
    digitalWrite(LEDPin[pin], LOW);
  }
  for (pin = 0; pin < CUBE_SIZE; pin++) {
    pinMode(PlanePin[pin], OUTPUT);
    digitalWrite(PlanePin[pin], HIGH);
  }
}

void loop()
{
  for (int plane = 0; plane < CUBE_SIZE; plane++)
  {
    digitalWrite(PlanePin[plane], LOW);
    for (int led = 0; led < PLANE_SIZE; led++)
    {
      digitalWrite(LEDPin[led], HIGH);
      delay(LED_TIME);
      digitalWrite(LEDPin[led], LOW);
    }
    digitalWrite(PlanePin[plane], HIGH);
    delay(PLANE_TIME);
  }
}
演示效果


 


5.jpg [ 45.2 KB ] [ 成品图片 ] [ 下载次数:1 ]

如无法正常下载,请点击这里报告问题,我们将在下一工作日内为您解决。

  • 发表评论
关闭
请您在通行证中登陆后再下载!
关闭

您当前的用户还没有激活


无法下载相关附件。


请查看您的注册邮箱获取激活信息或


单击此处


重新发送激活信息!


关闭

下载该附件需要积分

您的积分为 ,不足以支付!


您可以通过以下途径获取积分


1.上传文档可得5积分奖励


2.登陆可得2积分奖励,最多可得2分每天


3.评价文档可得1积分奖励,顶、踩,最多可得5分每天


查看更多积分获取的详细规则>>