Menu
CoddyTech

Màu sắc trên vòng NeoPixel

Thuộc phần Màn hình và cảm biến trong hành trình Arduino của Coddy. Bài học 13 trên 24.

Vòng này có 16 NeoPixel nối với nhau bằng một dây dữ liệu. Pixel đầu tiên chuyển tiếp phần dữ liệu còn lại đến pixel tiếp theo, nên chỉ cần một lần show() là có thể thiết lập tất cả. Các pixel được đánh số từ 0 đến 15.

ring.Color(red, green, blue) gộp một màu thành một số, để bạn có thể lưu số đó trong một biến và dùng lại. Kiểu dữ liệu của nó là uint32_t: một số nguyên 32 bit không bao giờ âm, đủ lớn để chứa cả ba thành phần.

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

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

Pixel nào bạn không đặt màu sẽ tắt. Giá trị 255 cho cả ba thành phần tạo thành màu trắng.

challenge icon

Thử thách

Dễ

Vòng đèn nối với chân 6. Bật sáng bốn điểm ảnh, cách nhau một phần tư vòng:

  • điểm ảnh 0 màu đỏ, điểm ảnh 4 màu xanh lá, điểm ảnh 8 màu xanh dương, điểm ảnh 12 màu trắng
  • tạo từng màu bằng ring.Color(), mỗi thành phần là 0 hoặc 255
  • để các điểm ảnh còn lại tắt

Nhấn Chạy, rồi nhấn Kiểm tra.

Tự làm thử

#include <Adafruit_NeoPixel.h>

// 16 pixel, dữ liệu trên chân 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);

void setup() {
  ring.begin();

  // pixel 0 màu đỏ, 4 màu xanh lá, 8 màu xanh dương, 12 màu trắng

  ring.show();
}

void loop() {
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Màn hình và cảm biến

Tự luyện tập: Playground Arduino