Arduino 花样流水灯设计 (3种样式+闪烁)
写在前面
流水灯本身很简单,不过简单的东西也可以玩出花样来,增强自己对这方面的兴趣。博主目前的想象力并不强,所以只是设计了3种样式轮流展示而已,大家可以尽可能的发挥自己的想象力去创作,毕竟想象力比知识更重要, 知识是有限的,而想象力却包含整个世界。知识是砖块,想象力就是建筑设计图,砖块常有,而设计图不常有啊!
说正经的
好像很简单没啥好说的吖,祝大家身体健康万事如意!
LED1、2、3、4、5、6引脚分别为123456;写出LED灯闪烁的子程序,写出LED流水灯的三种样式。
样式1为依次点亮1-6引脚相连的led灯,再依次熄灭1~6引脚相连的led灯;
样式2为3、4先亮,依次2、5,1、6亮,再1、6灭,依次2、5,3、4灭;【从中间向外围亮】
样式3为34亮灭,25亮灭,16亮灭,再16亮灭,25亮灭,34亮灭。
代码及注释
//设置控制Led的数字IO脚
int Led1 = 1; int Led2 = 2; int Led3 = 3;
int Led4 = 4; int Led5 = 5; int Led6 = 6;
//灯闪烁的子程序
void flash(void)
{ unsigned char j,k;
for(k=0;k<=1;k++)//闪烁两次
{ for(j=1;j<=6;j++)//点亮1~6引脚相连的led灯
digitalWrite(j,HIGH);//点亮j引脚相连的led灯
delay(200);//延时200ms
for(j=1;j<=6;j++)//熄灭1~6引脚相连的led灯
digitalWrite(j,LOW);//熄灭j引脚相连的led灯
delay(200);//延时200ms
} }
//led灯花样显示样式1的子程序
void style_1(void)
{
unsigned char j;
for(j=1;j<=6;j++)//每隔200ms依次点亮1~6引脚相连的led灯
{ digitalWrite(j,HIGH);//点亮j引脚相连的led灯
delay(200);//延时200ms
}
for(j=6;j>=1;j--)//每隔200ms依次熄灭6~1引脚相连的led灯
{ digitalWrite(j,LOW);//熄灭j引脚相连的led灯
delay(200);//延时200ms
}
}
//led灯花样显示样式2的子程序
void style_2(void)
{ unsigned char j,k;
for(j=3;j>=1;j--)
{ digitalWrite(j,HIGH);//点亮灯
digitalWrite(7-j,HIGH);//点亮灯
delay(400);//延时400ms
}
k=5;//设置k值为5
for(j=1;j<=3;j++)
{ digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
delay(400);//延时400ms
k -=2;//k值减2
}
}
//led灯花样显示样式3的子程序
void style_3(void)
{ unsigned char j,k;//led灯花样显示样式3子程序
k=5;//设置k值为5
for(j=1;j<=3;j++)
{ digitalWrite(j,HIGH);//点亮灯
digitalWrite(j+k,HIGH);//点亮灯
delay(400);//延时400ms
digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
k -=2;//k值减2
}
k=3;//设置k值为3
for(j=2;j>=1;j--)
digitalWrite(j+k,HIGH);//点亮灯
delay(400);//延时400ms
digitalWrite(j,LOW);//熄灭灯
digitalWrite(j+k,LOW);//熄灭灯
k +=2;//k值加2
}
}
void setup()
{
unsigned char i;
for(i=1;i<=6;i++)//依次设置1~6个数字引脚为输出模式
pinMode(i,OUTPUT);//设置第i个引脚为输出模式
}
void loop()
{
style_1();//样式1
flash();//闪烁
style_2();//样式2
flash();//闪烁
style_3();//样式3
flash();//闪烁
}
就这么多~感概一下点灯真的是永远的白月光啊!