Menu
CoddyTech

像素环上的颜色

本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 13 课,共 24 课。

这个灯环通过一根数据线连接了 16 个 NeoPixels。第一个像素会把剩余的数据传给下一个像素,因此调用一次 show() 就能设置所有像素。它们的编号是 0 到 15。

ring.Color(red, green, blue) 会把颜色打包成一个数字,这样你就可以把它保存在变量中,以后再次使用。它的类型是 uint32_t:一个 32 位的无符号整数,足够存储这三个部分。

uint32_t purple = ring.Color(150, 0, 255);

ring.setPixelColor(3, purple);
ring.setPixelColor(7, purple);
ring.show();

没有设置颜色的像素会保持熄灭。三个部分都设为 255 时,颜色是白色。

challenge icon

挑战

简单

灯环连接在引脚 6 上。点亮 4 个像素,沿灯环均匀间隔:

  • 像素 0 为红色,像素 4 为绿色,像素 8 为蓝色,像素 12 为白色
  • 用 ring.Color() 设置每种颜色,每个部分的值为 0 或 255
  • 让其他像素保持熄灭

按“运行”,然后按“检查”。

亲手试试

#include <Adafruit_NeoPixel.h>

// 16 个像素,数据引脚为 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);

void setup() {
  ring.begin();

  // 像素 0 为红色,4 为绿色,8 为蓝色,12 为白色

  ring.show();
}

void loop() {
}
quiz icon自我测试

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

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

自己练习: Arduino 在线编辑器