关于教程中第一个流水灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8731|回复: 6

关于教程中第一个流水灯

[复制链接]
发表于 2017-8-17 22:26 | 显示全部楼层 |阅读模式
关于教程中第一个流水灯,目前效果是1,
2,
3,
4,
5,
6,
7
按照顺序一个一个亮。


如果我想按照
1,
12,
123,
1234,
12345,
123456,
1234567

这种顺序亮,程序该怎么写呢?

---
目前程序如下:
void setup()
{
for (int i=2;i<8;i++)
pinMode(i,1);
}
void loop()
{
for(int i=2;i<8;i++)
{
  digitalWrite(i,1);
  delay(200);
  digitalWrite(i,0);
  }
}

发表于 2017-8-19 15:36 | 显示全部楼层
void setup()
{
for (int i=2;i<8;i++)
pinMode(i,1);
}
void loop()
{
for(int i=2;i<8;i++)
{
  digitalWrite(i,1);
  delay(200);
  
  }
for(int i=7;i>2;i--)
   {
  digitalWrite(i,0);
  delay(200);
  
  }
}
发表于 2017-8-19 15:38 | 显示全部楼层
我也是新手 根据例程试出来的 其实也想不太明白
发表于 2017-9-18 11:38 | 显示全部楼层
void Twinkle_Two()
{     
      char i;
     if(PINB == 0x02)
     {
      for(i=0;i<8;i++)
          {
           PORTD |= (1<<i);
           _delay_ms(300);
           PORTD |=~(1<<i);
           }
      }
}
发表于 2017-9-18 22:08 | 显示全部楼层
如果重复亮的灯中间没有间隔熄灭的话,就把  digitalWrite(i,0);去掉就好了,如果需要间隔熄灭那还需要添加代码
发表于 2018-3-17 18:09 | 显示全部楼层
同上,不过你应该加一段判断在全部亮后关闭所有灯然后在重新亮
发表于 2018-5-17 23:16 | 显示全部楼层
本帖最后由 PingWang13 于 2018-5-17 23:19 编辑

应该这样写,使用双重循环,外层循环控制LED灯下次打开的灯数量比上次多一个,内层循环控制每个循环内灯的开关,就可以了!!


int i;
int j = 0;
void setup() {
  for (i = 8; i <= 14; i++)
    pinMode(i, OUTPUT);
}
void loop() {
  for (i = 8; i <= 14; i++)
  {
    for (j = 8; j <= i; j++)    {
      digitalWrite(j, HIGH);
    }
    delay(30);
    for (j = 8; j <= i; j++)    {
      digitalWrite(j, LOW);
    }
    delay(30);
  }
}



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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:27 , Processed in 0.076915 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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