基于arduino的8阶光立方程序与设计图

yifancanyue 2019-03-15 01:27:12
基于arduino的8阶光立方程序与设计图

#define L 8//长:端口初值
#define W 0//宽:端口初值
#define H 14//高:端口初值
#define V 100//单灯点亮时间
#define U 500//回型点亮快慢
void setup()//初始化端口
{

for(int i=L;i<L+3;i++)//确定输出口:长
{
pinMode(i, OUTPUT);
}
for(int j=W;j<W+8;j++)//确定输出口:宽
{
pinMode(j, OUTPUT);
}
for(int k=H;k<H+8;k++)//确定输出口:高
{
pinMode(k, OUTPUT);
}

}
void Long(int l)//长1-8个,扫描实现
{
switch(l)
{
case 1:
digitalWrite(L, LOW);
digitalWrite(L+1, LOW);
digitalWrite(L+2, LOW);
break;
case 2:
digitalWrite(L, HIGH);
digitalWrite(L+1, LOW);
digitalWrite(L+2, LOW);
break;
case 3:
digitalWrite(L, LOW);
digitalWrite(L+1, HIGH);
digitalWrite(L+2, LOW);
break;
case 4:
digitalWrite(L, HIGH);
digitalWrite(L+1, HIGH);
digitalWrite(L+2, LOW);
break;
case 5:
digitalWrite(L, LOW);
digitalWrite(L+1, LOW);
digitalWrite(L+2, HIGH);
break;
case 6:
digitalWrite(L, HIGH);
digitalWrite(L+1, LOW);
digitalWrite(L+2, HIGH);
break;
case 7:
digitalWrite(L, LOW);
digitalWrite(L+1, HIGH);
digitalWrite(L+2, HIGH);
break;
case 8:
digitalWrite(L, HIGH);
digitalWrite(L+1, HIGH);
digitalWrite(L+2, HIGH);
break;
default:
break;

}
}
void Wide(int w)//宽1-8行
{
digitalWrite(W+w-1, HIGH);
}
void High(int h)//高1-8层
{
digitalWrite(H+h-1, HIGH);
}
void Trundown()//关掉灯
{
for(int t=0;t<8;t++)
{
digitalWrite(H+t, LOW);
digitalWrite(W+t, LOW);
}
Lock();
}
void HWcutoff()//高宽初始化
{
for(int t=0;t<8;t++)
{
digitalWrite(H+t, LOW);
digitalWrite(W+t, LOW);
}
}

void Lighten(int l,int w,int h)//点亮坐标点
{
Long(l);
Wide(w);
High(h);
delay(V);
Trundown();
}
void Lock()//锁存扫描
{
for(int i=1;i<=8;i++)
Long(i);
}
void All_light()//全亮
{
for(int i=1;i<=8;i++)
Wide(i);
for(int j=1;j<=8;j++)
High(j);
for(int k=1;k<=8;k++)
Long(k);
}
void Liushuideng()//流水灯:依次点亮
{
for(int i=1;i<=8;i++)
for(int j=1;j<=8;j++)
for(int k=1;k<=8;k++)
Lighten(j,k,i);
}
void huayang_1()
{
hui(1,8);
delay(U);
Trundown();
hui(2,7);
delay(U);
Trundown();
hui(3,6);
delay(U);
Trundown();
hui(4,5);
delay(U);
Trundown();
hui(1,8);
delay(U);
Trundown();
hui(2,7);
delay(U);
Trundown();
hui(3,6);
delay(U);
Trundown();
hui(4,5);
delay(U);
Trundown();
hui(3,6);
delay(U);
Trundown();
hui(2,7);
delay(U);
Trundown();
hui(1,8);
delay(U);
Trundown();
hui(4,5);
delay(U);
Trundown();
hui(3,6);
delay(U);
Trundown();
hui(2,7);
delay(U);
Trundown();
hui(1,8);
delay(U);
Trundown();

}
void hui(int m,int n)//回字型
{
Long(m);
HWcutoff();
for(int i=m;i<=n;i++)
Wide(i);
for(int j=m;j<=n;j++)
High(j);

for(int i=m+1;i<=n-1;i++)
{
Long(i);
HWcutoff();
Wide(m);Wide(n);
High(m);High(n);
}

Long(n);
HWcutoff();
for(int i=m;i<=n;i++)
Wide(i);
for(int j=m;j<=n;j++)
High(j);

}

void loop() {

All_light();
delay(5000);
Trundown();
Liushuideng();
huayang_1();

}



...全文
449 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉夢志昂丶 2019-03-15
  • 打赏
  • 举报
回复
你的问题应该直接问出来,这样看也没有着重点

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧