Menu
CoddyTech

逐渐加快的闪烁

本课属于 Coddy Arduino 学习旅程的“初识电路”单元。第 17 课,共 22 课。

delay(waitTime) 会等待 waitTime 在那一刻所保存的值。在程序运行时更改这个变量,闪烁也会随之变化。

waitTime = waitTime - 100;   // 下一次闪烁的间隔缩短了 100 ms

把这行代码放在 loop() 的末尾,每次闪烁都会比上一次更快。

观察程序运行一段时间后会发生什么。等待时间会缩短到 0,然后变成负数。delay() 无法等待负数时间:它会把 -200 读作一个很大的数字,大约是 49 天,因此 LED 看起来像是卡住了。程序必须自行判断何时停止缩短等待时间,这就是下一课要讲的内容。

challenge icon

挑战

简单

让引脚 13 上的 LED 闪烁得越来越快:

  • 在顶部,创建 int waitTime = 1000;
  • 在 loop() 中,两次等待都使用 delay(waitTime) 闪烁
  • 在 loop() 末尾,让 waitTime 减少 200

按下运行,观察它直到冻结,然后按下检查。

亲手试试

// 在这里创建 waitTime

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
  // 把 waitTime 调小
}
quiz icon自我测试

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

初识电路中的所有课

自己练习: Arduino 在线编辑器