NoahChen 发表于 2015-1-3 06:36:14

Arduino代码不理解,想了一个小时了。求大神帮忙解释!!

本帖最后由 NoahChen 于 2015-1-3 06:37 编辑

这个代码是为了让8个LED灯按照二进制的方法(亮表示1,灭表示2)从1数到255,并且输出正在数的数。接线很简单, 把八个LED灯分别接到D4到D11.代码如下,运行后一切正常,很成功。但是小弟不明白这个j为什么一直在4到12之间而不会超过12。 求大神解释!!

void setup()
{int i;
for(i=4;i<12;i++)
{
  pinMode(i,OUTPUT);
}
Serial.begin(9600);
}
void loop()
{ int i;
int a=3;
int j;
int u;
for (i=4;i<269;i++)
{
  for(j=4;j<=i;j++)
  {
  a=digitalRead(j);
  if(a==0)
  {a=1;
  for(u=4;u<j;u++)
  {digitalWrite(u,LOW);}
  digitalWrite(j,a);
  break;
  }
  }
  delay(200);
  Serial.println(i-3);
 
}
}





maxims 发表于 2015-1-3 11:57:06

好复杂的循环:Q
让我先晕一会儿:curse:

wdjkzym 发表于 2015-1-3 12:03:23

因为到12之前就BREAK了
如果到12       I就越界了
话说这程序全亮后就卡住了么?

suoma 发表于 2015-1-3 15:28:42

i从4到11,j和i一样。

suoma 发表于 2015-1-3 15:29:39

这个什么意思Serial.println(i-3)?直接i循到255就行了吗?
页: [1]
查看完整版本: Arduino代码不理解,想了一个小时了。求大神帮忙解释!!