กลับไปหน้ารวมไฟล์
color-mixing-ws2812b-hsv.md

WS2812B RGB LED การควบคุมความสว่างและการผสมสี

คณิตศาสตร์เชิงแสง: การผสมสี WS2812B

การใช้ไลบรารี <FastLED.h> มาตรฐานเพื่อจุด LED แถบสีแดงนั้นง่ายดาย: led[0] = CRGB::Red; แต่บรรดานักออกแบบแสงมืออาชีพไม่ใช้สีแบบเรียบ ๆ โปรเจกต์ Color Mixing & Brightness นี้จะบังคับให้คุณเชี่ยวชาญโมเดลสี HSV (Hue, Saturation, Value) เพื่อสร้างการไล่ระดับสีพระอาทิตย์ตกดินและสีมหาสมุทรที่นุ่มนวลและเปลี่ยนแปลงไปมา

button_led_basic_interaction_1772681969235.png

ทำไม HSV จึงเหนือกว่า RGB

หากคุณลองไล่สีจาก Red (255, 0, 0) ไป Green (0, 255, 0) โดยใช้ RGB ดิบ ๆ สีตรงกลางจะกลายเป็นสีน้ำตาลขุ่น ๆ น่าเกลียด นี่เป็นเรื่องน่าเกลียดในทางคณิตศาสตร์

  1. โมเดล HSV จะเปลี่ยนสเปกตรัมสีให้เป็นวงล้อ 360 องศา (Hue) Red คือ 0. Green คือ 120.
  2. หากคุณไล่สีโดยใช้ HSV การไล่ระดับสีจะกวาดไปอย่างสวยงาม รอบ ขอบของวงล้อสี Red จะเปลี่ยนผ่านทางคณิตศาสตร์จากสีส้มสดใส ไปยังสีเหลือง และลงตัวเป็นสีเขียว
  3. FastLED รองรับสิ่งนี้โดยกำเนิด: fill_solid(leds, NUM_LEDS, CHSV(hue, saturation, brightness));

ตัวแปรของคอนโทรลเลอร์ฮาร์ดแวร์

คุณจะต่อ 10K Potentiometers สามตัวเข้ากับขาอนาล็อกของ Arduino (A0, A1, A2)

  • Knob 1 (Hue): A0 ถูกแมปจาก 0-1023 ลงมาที่ 0-255 เมื่อคุณหมุนมัน แถบ LED จะค่อย ๆ เปลี่ยนไปตามทุกสีของรุ้งได้อย่างไร้ที่ติ
  • Knob 2 (Saturation): A1 แมป 0-255 หมุนลงไปที่ 0 และไฟจะกลายเป็นสีขาวบริสุทธิ์ (สีทั้งหมดจะถูกระบายออกไป) หมุนขึ้นไปที่ 255 และสีจะกลายเป็นนีออนที่เข้มข้น!
  • Knob 3 (Value/Brightness): A2 ควบคุมพลังงานเอาต์พุตโดยรวม
  • loop() จะรัน FastLED.show() อย่างต่อเนื่อง สร้างแผงควบคุมการผสมสีที่ตอบสนองได้สูงและจับต้องได้สำหรับฉากแสง

การประกอบ

  • Arduino Uno/Nano: หน่วยประมวลผล ADC matrix
  • WS2812B Custom Length Strip (เช่น 30 LEDs)
  • 10K หรือ 5K Rotary Potentiometers สามตัว
  • แหล่งจ่ายไฟภายนอก 5V: (สำคัญมาก! แถบ LED ที่เปิดสีขาวเต็มที่อาจทำให้ตัวควบคุมแรงดันไฟฟ้าของ Arduino ละลายได้ทันทีหากจ่ายไฟโดยตรง)

ข้อมูล Frontmatter ดั้งเดิม

title: "WS2812B RGB LED Brightness Control & Color Mixing"
description: "Master the rainbow! Dissect the complex Color math inside the FastLED library, generating dynamic gradients and mapping potentiometers directly to Hue, Saturation, and Value."
category: "Basic Electronics"
difficulty: "Intermediate"