Menu
CoddyTech

让 LED 渐亮和渐暗

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

要让亮度逐渐降低,步进值必须改变方向。把步进值单独存放在变量 fadeAmount 中。加上一个负数会降低亮度:

int brightness = 0;
int fadeAmount = 5;

void loop() {
  analogWrite(9, brightness);
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  delay(30);
}

在变量前加上减号会反转它的符号:-fadeAmount 会把 5 变成 -5,再把 -5 变回 5。

if 会检查两个端点。到达顶部时,步进值变成 -5,LED 变暗;到达底部时,步进值再次变成 5,LED 变亮。LED 会像呼吸一样明暗变化,不会突然从亮变暗。

challenge icon

挑战

简单

让引脚 9 上的 LED 反复渐亮再渐暗:

  • 在 brightness 旁边添加一个值为 5 的 fadeAmount 变量
  • 每次运行 loop() 时,将 fadeAmount 加到亮度上,然后等待 30 ms
  • 亮度达到 0 或 255 时,反转它的正负号

按“运行”,然后按“检查”。

亲手试试

const int ledPin = 9;
int brightness = 0;
// 在这里创建 fadeAmount 变量

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

void loop() {
  analogWrite(ledPin, brightness);
  brightness = brightness + 5;
  if (brightness > 255) {
    brightness = 0;
  }
  delay(30);
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器