Menu
CoddyTech

让 LED 渐亮

本课属于 Coddy Arduino 学习旅程的“输出”单元。第 3 课,共 24 课。

变量可以保存亮度。每次运行 loop() 时,把亮度写入 LED,然后将它增加一点并等待片刻。LED 会逐步变亮:

int brightness = 0;

void loop() {
  analogWrite(9, brightness);
  brightness = brightness + 5;
  if (brightness > 255) {
    brightness = 0;
  }
  delay(30);
}

亮度变量和按下次数计数器一样,放在程序的顶部,因此它会在一次 loop() 运行结束后保留其值,供下一次运行使用。如果在 loop() 内创建它,每次都会重新变成 0。

255 是 analogWrite() 接受的最大值,因此亮度超过这个值后,if 会让渐变从 0 重新开始。

步长和等待时间决定速度:大约 50 步,每步等待 30 ms,总共需要 1.5 秒。

challenge icon

挑战

简单

让引脚 9 上的 LED 一次又一次地渐亮:

  • 把亮度存储在一个定义在 setup() 上方的变量中,初始值为 0
  • 在 loop() 中,用 analogWrite() 写入亮度值,加上 5,然后等待 30 ms
  • 当亮度超过 255 时,将它重置为 0

按“运行”并观察 LED,然后按“检查”。

亲手试试

const int ledPin = 9;
// 在这里创建亮度变量,初始值设为 0

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

void loop() {
  // 写入亮度值,然后加 5;超过 255 后重新开始,等待 30 ms
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器