极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9830|回复: 2

从零开始 记录自己的arduino试验之LED流水灯

[复制链接]
发表于 2014-6-27 23:18:12 | 显示全部楼层 |阅读模式
本帖最后由 hxf 于 2014-6-28 09:57 编辑

     楼主记得当年刚开始学习51单片机的时候就是从点亮LED流水灯学起的。现在开始接触arduino带着怀旧的感觉所以楼主我也把LED流水灯的控制当成了arduino学习的第一课。
     废话不多说先来看楼主编写的程序:
void setup()
{
  pinMode(12,OUTPUT);
  pinMode(11,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(9,OUTPUT);
  pinMode(8,OUTPUT);
}
void loop()
{for(int j=0;j<=1;j++)     //第一种循环方式
{
  for(int i=7;i<=11;i++)   //从左向右循环
{digitalWrite(i+1,HIGH);
delay(500);
digitalWrite(i+1,LOW);
}
  for(int i=11;i>=8;i--)   //从右向左循环
{digitalWrite(i,HIGH);
delay(500);
digitalWrite(i,LOW);
}
}


for(int j=0;j<=1;j++)      //第二种循环方式
{
  for(int i=0;i<=2;i++)    //从中间向两边循环
{digitalWrite(10+i,HIGH);
digitalWrite(10-i,HIGH);
delay(500);
digitalWrite(10+i,LOW);
digitalWrite(10-i,LOW);
}
  for(int i=0;i<=2;i++)    //从两边向中间循环
{digitalWrite(i+8,HIGH);
digitalWrite(12-i,HIGH);
delay(500);
digitalWrite(i+8,LOW);
digitalWrite(12-i,LOW);
}
}

for(int j=0;j<=1;j++)     //第三种循环方式
{
  for(int i=7;i<=11;i++)   //led 按顺序点亮
{digitalWrite(i+1,HIGH);
delay(500);
}
  for(int i=12;i>=8;i--)   //led 按顺序灭
{digitalWrite(i,LOW);
delay(500);
}
}

for(int j=0;j<=1;j++)     //第四种循环方式
{
  for(int i=12;i>=8;i--)   
{digitalWrite(i,HIGH);
delay(500);
}
   for(int i=7;i<=11;i++)   
{digitalWrite(i+1,LOW);
delay(500);
}
}

for(int j=0;j<=5;j++)   
{
for(int i=8;i<=12;i++)
{digitalWrite(i,HIGH);}
delay(300);
for(int i=8;i<=12;i++)
{digitalWrite(i,LOW);}
delay(300);}
}






硬件连接很简单这里就不附带图片了,从程序不难看出5个LED的正极分别接在12,11,10,9,8管脚上、负极统统接地即可。感兴趣的小伙伴们可以自己连接试试,祝大家玩的开心哈。


下面是楼主的效果图
回复

使用道具 举报

发表于 2014-6-28 10:22:30 | 显示全部楼层
还是方形的led耶,,,,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-28 14:00:45 | 显示全部楼层
迷你强 发表于 2014-6-28 10:22
还是方形的led耶,,,,

对啊,之前做东西剩下的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 01:03 , Processed in 0.039523 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表