Menu
CoddyTech

收到命令时闪烁

本课属于 Coddy Arduino 学习旅程的“输入”单元。第 18 课,共 22 课。

输入 3,LED 应该闪烁 3 次,然后停止。loop() 已经会重复运行,所以让它来计数:用一个变量记录还要闪烁多少次。每次运行 loop() 时,如果还要闪烁,就闪烁一次,并将计数减 1。

int blinksLeft = 0;

void loop() {
  // 串口监视器输入的数字会设置 blinksLeft
  if (blinksLeft > 0) {
    // 闪烁一次
    blinksLeft = blinksLeft - 1;
  }
}

当 blinksLeft 变为 0 时,if 条件为假,LED 会保持熄灭,直到输入下一个数字。

数字后的换行符仍会让 parseInt() 在一秒后再次返回 0。像之前一样忽略这个 0,否则它会清除还要闪烁的次数。

challenge icon

挑战

中等

让引脚 13 上的 LED 按照在 Serial 监视器中输入的数字闪烁相应次数:

  • 有字符等待读取时,使用 parseInt() 读取一个数字;如果数字大于 0,就将它存入 blinksLeft
  • 如果 blinksLeft 大于 0,就闪烁一次(亮 200 ms,灭 200 ms),然后将其减 1

按下运行,从 Serial 监视器发送 3,然后按下检查。

亲手试试

const int ledPin = 13;

int blinksLeft = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // 串口监视器输入的数字会设置 blinksLeft
  // 只要 blinksLeft 大于 0,就闪烁一次,再减去 1
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输入中的所有课

自己练习: Arduino 在线编辑器