代码作业是让Arduino闪烁,在快速闪烁和慢速闪烁之间交替。 LED应闪烁5次,每半秒闪烁一次,然后再闪烁5次,每两秒闪烁一次。只要Arduino接通电源,LED就会以这种交替方式继续闪烁。
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
bool isChange=true;
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
void loop() {
for(int i=0;i<5;i++) {
digitalWrite(led,HIGH);
// turn the LED on (HIGH is the voltage level)
if(isChange)
delay(500);
else
delay(2000);
digitalWrite(led,LOW);
// turn the LED off by making the voltage LOW
if(isChange)
delay(500);
else
delay(2000);
}
isChange=isChange?false:true;
}
我不知道循环如何执行10次以及ischange
在代码的最后一行中的工作方式。
答案 0 :(得分:1)
当你到达loop()函数的末尾时,arduino会再次调用它,使for循环重新开始。这就是为什么它眨眼超过五次。
ischange = ischange ? false : true;
称为三元运算符。
是语法糖if (ischange)
ischange = false;
else
ischange = true;
可以概括为
condition ? expression A : expression B
如果条件为真,则执行表达式A,否则执行表达式B.此表达式的结果可由赋值运算符捕获,例如代码中的情况。
type variable_name = condition ? expression A : expression B