用 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)仍然是在说明引脚的用途。
挑战
简单红色 LED 接在引脚 9 上。让它以最大亮度的四分之一亮起:
- 255 的四分之一约为 64
- 使用
analogWrite()写入
按“运行”按钮查看效果,然后按“检查”按钮。
亲手试试
const int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
// 在这里将 LED 的亮度设为四分之一
}
void loop() {
// 不需要重复执行:引脚会自行持续输出脉冲
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器