让 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 秒。
挑战
简单让引脚 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
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输出中的所有课
自己练习: Arduino 在线编辑器