Menu
CoddyTech

像素追逐灯

本课属于 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 开始:灯光就这样一圈又一圈地移动。

challenge icon

挑战

简单

让橙色灯光沿着灯环循环移动:

  • 一次点亮一个像素,从 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
}
quiz icon自我测试

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

显示器与传感器中的所有课

自己练习: Arduino 在线编辑器