参考网络资料,自己做一个3x4光力柱.
代码是网络上下载的4x4光立方代码.
//此程序为16*4方案
byte led[]= {B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,
B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,
B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,B1000,
B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,B0100,
B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,B0010,
B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,B0001,
B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,B1111,
B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,
B1111,B0000,B0000,B0000,B0000,B1110,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,
B0000,B0000,B1111,B0000,B0000,B0000,B0001,B1110,B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,
B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,
B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,
B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0001,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,
B0000,B0000,B1111,B0000,B0000,B0000,B0001,B1110,B1111,B0000,B0000,B0000,B0000,B1111,B0000,B0000,
B1111,B0000,B0000,B0000,B0000,B1110,B0000,B0000,B0000,B0000,B1111,B0000,B0000,B0000,B0000,B1111,
B0010,B0000,B0000,B0100,B1000,B0000,B0000,B0010,B0000,B0010,B1000,B0000,B0100,B0000,B0000,B0000,
B0001,B0000,B0000,B0010,B0100,B0000,B0000,B1001,B0000,B0001,B1100,B0000,B1010,B0000,B0000,B0000,
B1000,B0000,B0000,B0001,B0010,B0000,B0000,B1100,B0000,B1000,B0110,B0000,B0101,B0000,B0000,B0000,
B0100,B0000,B0000,B0000,B0001,B0000,B0000,B0110,B0000,B0100,B0011,B0000,B0010,B0000,B0000,B0000,
B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0010,B0001,B0000,B0001,B0000,B0000,B0000,
B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0001,B0000,B0000,B0000,
B0010,B0000,B0000,B0100,B1000,B0000,B0000,B0010,B0000,B0010,B1000,B0000,B0100,B0000,B0000,B0000,
B0001,B0000,B0000,B0010,B0100,B0000,B0000,B1001,B0000,B0001,B1100,B0000,B1010,B0000,B0000,B0000,
B1000,B0000,B0000,B0001,B0010,B0000,B0000,B1100,B0000,B1000,B0110,B0000,B0101,B0000,B0000,B0000,
B0100,B0000,B0000,B0000,B0001,B0000,B0000,B0110,B0000,B0100,B0011,B0000,B0010,B0000,B0000,B0000,
B0010,B0000,B0000,B0000,B0000,B0000,B0000,B0010,B0000,B0010,B0001,B0000,B0001,B0000,B0000,B0000,
B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0000,B0001,B0000,B0001,B0000,B0000,B0000
};
int l=sizeof(led) ;
int v=3;
int i=0;
int j=16;
int k=0;
int ledi=0;
int ledj=0;
int ledk=0;
void setup() {
for(i=0;i<=20;i++)
{
pinMode(i,OUTPUT);
}
}
void draw_layer(int i){
for(k=16;k<=19;k++)
{
digitalWrite(k,HIGH);
//delay(10);
}
digitalWrite(i+16,LOW);
//delay(10);
}
void loop() {
for(i=0;i<=3;i++)
{
draw_layer(i);
for(j=0;j<=15;j++)
{
ledi=ledj+j;
if(led[ledi] & (1<<i))
{
digitalWrite(j,HIGH);
//delay(10);
}
else
{
digitalWrite(j,LOW);
//delay(10);
}
}
delay(5);
}
ledk++;
if(ledk>=v)
{
ledj+=16;
ledk=0;
}
if(ledj>=l)
ledj=0;
}
效果还行.
|