Menu
CoddyTech

用 PWM 调暗 LED

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

digitalWrite()只知道两个状态:开或关。要让 LED 微微发光,开发板会让引脚每秒开关数百次。你的眼睛跟不上闪烁,只能看到平均效果:引脚四分之一的时间处于开启状态,看起来就有四分之一亮。

这个技巧叫作PWM,即脉冲宽度调制。引脚处于开启状态的时间占比就是它的占空比。

analogWrite(pin, value)用 0 到 255 之间的数字来设置它:

analogWrite(9, 0);    // 始终关闭
analogWrite(9, 64);   // 约四分之一的时间处于开启状态
analogWrite(9, 127);  // 约一半的时间处于开启状态
analogWrite(9, 255);  // 始终开启

写入一个值后,即使在运行 delay()期间,开发板也会自动让引脚持续脉冲,直到你写入新值。analogWrite()会自动将引脚设为输出;在setup()中使用pinMode(9, OUTPUT)仍然是在说明引脚的用途。

challenge icon

挑战

简单

红色 LED 接在引脚 9 上。让它以最大亮度的四分之一亮起:

  • 255 的四分之一约为 64
  • 使用 analogWrite() 写入

按“运行”按钮查看效果,然后按“检查”按钮。

亲手试试

const int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
  // 在这里将 LED 的亮度设为四分之一
}

void loop() {
  // 不需要重复执行:引脚会自行持续输出脉冲
}
quiz icon自我测试

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

输出中的所有课

自己练习: Arduino 在线编辑器