2017-10-18 51 views
0

这是迄今为止代码:For循环:LED的显示不正确的Arduino的

bool t1 = true; 
bool f1 = false; 
bool button_state = 0; 
int delay_led = 100; 
int led_num = 1, buzzer_delay = 75; 
void setup() { 
    // put your setup code here, to run once: 
pinMode(2, INPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); 
pinMode(12, OUTPUT); pinMode(13, OUTPUT); 
} 

void loop() { 
    // put your main code here, to run repeatedly: 
digitalRead(2); 
button_state = digitalRead(2); 

if (button_state == 0) 
{ 
    for (led_num = 10; led_num <= 13; led_num++) 
    { 
    digitalWrite(led_num, t1); 
    delay(delay_led); 
    digitalWrite(led_num, f1); 
    } 
} 

else 
{ 
    for (led_num >= 10; led_num <= 13; led_num++) 
    { 
    digitalWrite(led_num, t1); 
    } 
} 
} 

我试图让LED以一次亮了起来,这正是else语句用于。但是,我们的教练专门声明使用循环来实现这一点。这里是我们的任务:

Here is an image of our assignment

我无法弄清楚如何使用循环,而不是对的if/else,我不能得到的指示灯,同时亮起。任何帮助将不胜感激!

+0

你需要一直运行,并保持投票按钮状态.... 您的其他不需要循环的外循环,它只需要打开所有的灯,等待,然后把它们全部关掉。 – bigtlb

回答

1

你的第二个foor循环初始化语句led_num >= 10是错误的,因为它没有效果。相反的:

for (led_num >= 10; led_num <= 13; led_num++) 

这也许应该是:

for (led_num = 11; led_num <= 13; led_num++) 
+0

谢谢,罗恩!我赞成你的回答,但显然,在一定水平之下的用户不会公开地影响答案upvotes。 –