像素追逐灯
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 15 课,共 24 课。
灯环上的灯光一次点亮一个像素,每一步都会移动到下一个像素。for 循环会给出像素编号:
for (int i = 0; i < 16; i++) {
ring.clear(); // 原来的像素熄灭
ring.setPixelColor(i, orange); // 新的像素亮起
ring.show();
delay(100);
}先调用 clear(),这样下一个像素点亮时,最后一个像素会在同一次 show() 中熄灭。如果不调用它,每个像素都会一直亮着,灯环就会全部亮起来。
循环在像素 15 之后停止,接着再次运行 loop(),而 i 会从 0 开始:灯光就这样一圈又一圈地移动。
挑战
简单让橙色灯光沿着灯环循环移动:
- 一次点亮一个像素,从 0 到 15
- 每个像素亮 100 毫秒
- 到 15 后,从 0 重新开始
按“运行”,然后按“检查”。
亲手试试
#include <Adafruit_NeoPixel.h>
// 16 个像素,数据引脚为 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t orange = ring.Color(255, 40, 0);
void setup() {
ring.begin();
}
void loop() {
// 从 0 到 15,每次点亮 1 个像素,每个持续 100 ms
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器