Thêm Cây Thông Noel Nhấp Nháy Đa Sắc

Tạo cây thông Noel "Just Another Christmas Tree" với hiệu ứng đèn LED WS2812b nhấp nháy đa sắc. Dự án này mô tả cách kết nối và lập trình đèn LED bằng vi điều khiển như Digispark Attiny85, ESP32, hoặc Raspberry Pi Pico/W, cùng với các vật liệu cần thiết và đoạn code mẫu để tạo hiệu ứng ánh sáng độc đáo.

👁️
44
Lượt Xem
❤️
1
Lượt Thích
📥
1
Lượt Tải
Cập Nhật Dec 19, 2025
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Dự án này sử dụng đèn LED địa chỉ WS2812b để tạo hiệu ứng ánh sáng đầy màu sắc. Các đèn LED được điều khiển bởi một vi điều khiển. Trong trường hợp của mình, mình đã sử dụng Digispark Attiny85 USB, nhưng bạn có thể sử dụng các lựa chọn thay thế như ESP32, ESP8266, hoặc Raspberry Pi Pico/W.

Nếu bạn muốn điều khiển nâng cao các mẫu ánh sáng, bạn có thể nạp firmware WLED và quản lý mọi thứ qua Wi‑Fi. Mình đã giữ mọi thứ đơn giản và dùng Digispark vì mình đã có sẵn và không cần thay đổi các mẫu.

Vật liệu cần có

  • 🎄 Dải hoặc vòng LED WS2812b

  • 🔌 Vi điều khiển (Digispark Attiny85, ESP32, ESP8266, Pico/W, v.v.)

  • ⚡ Nguồn điện (USB hoặc nguồn ngoài 5V)

  • 🛠 Dây nhảy và breadboard (tùy chọn)

  • 🧵Mình đã dùng sợi filament màu xanh lá và trong suốt. Loại trong suốt để che đèn LED 😉

Kết nối dây

  1. Kết nối chân DIN của dải LED với chân đầu ra của vi điều khiển.

  2. Kết nối VCC với 5V và GND với đất.

  3. Thêm một tụ điện (1000 µF, 6.3V hoặc cao hơn) giữa VCC và GND để ổn định nguồn điện.

  4. (Tùy chọn) Thêm một điện trở (330–470 Ω) giữa chân vi điều khiển và DIN để bảo vệ đèn LED.

Nguyên tắc code

Code khá đơn giản:

  • Sử dụng một thư viện như Adafruit NeoPixel hoặc FastLED.

  • Định nghĩa số lượng đèn LED và chân được sử dụng.

  • Viết các hàm đơn giản để đặt màu sắc, tạo hoạt ảnh mẫu, hoặc lặp qua các hiệu ứng.

Đoạn code ví dụ (FastLED):

#include <FastLED.h>

#define LED_PIN 0

#define NUM_LEDS 28

#define LED_TYPE WS2813

#define COLOR_ORDER GRB

#define BRIGHTNESS 140

CRGB leds[NUM_LEDS];

void setup() {

FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);

FastLED.setBrightness(BRIGHTNESS);

random16_set_seed(analogRead(1));

}

void loop() {

for (int i = 0; i < NUM_LEDS; i++) {

if (random8() < 30) {

leds[i] = CHSV(random8(), 255, random8(80, 255));

} else {

leds[i].fadeToBlackBy(random8(10, 40));

}

}

FastLED.show();

delay(40);

}

Giấy phép

Tác phẩm này được cấp phép theo

Creative Commons — Attribution — Noncommercial

CC-BY-NC

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Không được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (4 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)