การใช้งานหลอดไฟ ky-016 rgb led module

KY-016 RGB LED Module คืออะไร?

Image
Image
Image
Image
Image

KY-016 RGB LED Module เป็นโมดูลหลอดไฟ LED แบบ 3 สี (RGB: Red, Green, Blue) ที่ได้รับความนิยมอย่างมากในงาน Arduino, ESP32, ESP8266 และระบบ IoT ต่าง ๆ โดยภายในประกอบด้วย LED RGB 1 ดวง พร้อมตัวต้านทานจำกัดกระแสบนบอร์ด ทำให้สามารถนำไปใช้งานได้ทันทีโดยไม่ต้องต่อตัวต้านทานเพิ่มเติม

โมดูลนี้สามารถสร้างสีได้หลากหลายโดยการผสมความเข้มของแสงสีแดง สีเขียว และสีน้ำเงินเข้าด้วยกัน จึงมักใช้เป็นไฟแสดงสถานะ (Status Indicator) ของระบบต่าง ๆ เช่น

  • แสดงสถานะ WiFi
  • แสดงสถานะแบตเตอรี่
  • แสดงคุณภาพอากาศ (AQI)
  • แสดงระดับอุณหภูมิ
  • แสดงสถานะเครื่องจักร
  • แสดงสถานะ Smart Home
  • แสดงผลการทำงานของ AIoT

สำหรับโปรเจกต์ KY-016 ตัวอย่างเช่น สำหรับใช้แสดงสถานะ PM2.5 และคุณภาพอากาศ

คุณสมบัติทางเทคนิค

รายการค่า
โมดูลKY-016
ประเภท LEDRGB LED
สีพื้นฐานRed, Green, Blue
แรงดันทำงาน3.3V – 5V
กระแสต่อสี10-20mA
จำนวนขา4 ขา
รองรับ PWMYes
ใช้กับ ESP32Yes
ใช้กับ Arduino UNOYes
ใช้กับ ESP8266Yes

หลักการทำงานของ RGB LED

RGB ย่อมาจาก

R = Red
G = Green
B = Blue

ภายใน LED หนึ่งดวงประกอบด้วย

      RGB LED

        Red
         ●
        / \
       /   \
      ●-----●
   Green   Blue

เมื่อเปิดแต่ละสีจะได้ผลดังนี้

RGBสีที่ได้
25500แดง
02550เขียว
00255น้ำเงิน
2552550เหลือง
0255255ฟ้า
2550255ม่วง
255255255ขาว

โครงสร้างโมดูล KY-016

โมดูลมาตรฐานจะมีลักษณะดังนี้

     KY-016

 ┌─────────────┐
 │             │
 │   RGB LED   │
 │             │
 └─────────────┘
   R G B GND

รายละเอียดขา (Pinout)

ขาหน้าที่
Rควบคุม LED สีแดง
Gควบคุม LED สีเขียว
Bควบคุม LED สีน้ำเงิน
GND

ตัวอย่างการต่อกับ ESP32

KY-016ESP32
RGPIO25
GGPIO26
BGPIO27
GNDGND

หลักการผสมสี

RGB LED ใช้หลักการ Additive Color Mixing

Red + Green = Yellow

Red + Blue = Magenta

Green + Blue = Cyan

Red + Green + Blue = White

ตัวอย่าง

setColor(255,0,0);

ได้สีแดง

setColor(0,255,0);

ได้สีเขียว

setColor(0,0,255);

ได้สีน้ำเงิน

setColor(255,255,0);

ได้สีเหลือง

setColor(0,255,255);

ได้สีฟ้า (Cyan)

การควบคุมความสว่างด้วย PWM

ESP32 สามารถสร้างสัญญาณ PWM เพื่อปรับความสว่างของแต่ละสีได้

ตัวอย่าง

setColor(255,0,0);

แดงสว่างสุด

setColor(100,0,0);

แดงสว่างประมาณ 40%

setColor(20,0,0);

แดงสว่างน้อย

จึงสามารถสร้างสีได้มากกว่า

256 × 256 × 256
=
16,777,216 สี

หรือประมาณ 16.7 ล้านสี

การประยุกต์ใช้งาน

1. Smart Air Quality Monitor

ใช้แสดงค่า AQI

AQIสี
0-50ฟ้า
51-100เขียว
101-200เหลือง
201-300ส้ม
301+แดง

2. Smart Home

สถานะสี
ระบบพร้อมใช้งานเขียว
กำลังเชื่อมต่อน้ำเงิน
แจ้งเตือนเหลือง
ข้อผิดพลาดแดง

3. AI Assistant Robot

สำหรับ

สถานะสี
รอฟังคำสั่งน้ำเงิน
กำลังประมวลผลเหลือง
ตอบกลับเขียว
Errorแดง

4. ระบบวัดอุณหภูมิ

อุณหภูมิสี
ต่ำน้ำเงิน
ปกติเขียว
สูงแดง

5. Smart Factory

ใช้แสดงสถานะเครื่องจักร

สถานะสี
Runningเขียว
Standbyน้ำเงิน
Warningเหลือง
Alarmแดง

ข้อดีของ KY-016

  • ราคาถูก
  • ใช้งานง่าย
  • มีตัวต้านทานบนบอร์ดแล้ว
  • ใช้ได้ทั้ง 3.3V และ 5V
  • รองรับ PWM
  • สร้างสีได้มากกว่า 16 ล้านสี
  • เหมาะกับ Arduino และ ESP32
  • ใช้ GPIO เพียง 3 ขา
  • เหมาะกับงาน IoT และ Smart City

ข้อจำกัด

  • ไม่สามารถให้แสงสว่างได้มากเหมือนหลอด LED กำลังสูง
  • มองเห็นชัดในระยะใกล้เท่านั้น
  • ใช้เป็นไฟแสดงสถานะมากกว่าการส่องสว่าง
  • หากใช้ PWM หลายช่องพร้อมกันอาจต้องจัดการ Timer ของ ESP32 ให้เหมาะสม

ตัวอย่างการใช้งาน กับ esp32

#define POT_PIN 34

#define RED_PIN   25
#define GREEN_PIN 26
#define BLUE_PIN  27

int AQI = 0;

void setup() {

  Serial.begin(115200);

  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);

  Serial.println("AQI RGB Indicator");
}

void loop() {

  int adcValue = analogRead(POT_PIN);

  // แปลงค่า 0-4095 เป็น AQI 0-500
  AQI = map(adcValue, 0, 4095, 0, 500);

  Serial.print("ADC = ");
  Serial.print(adcValue);

  Serial.print("  AQI = ");
  Serial.println(AQI);

  if (AQI <= 50) {

    // สีฟ้า
    setColor(0, 255, 255);

    Serial.println("คุณภาพอากาศดีมาก");

  }
  else if (AQI <= 100) {

    // สีเขียว
    setColor(0, 255, 0);

    Serial.println("คุณภาพอากาศดี");

  }
  else if (AQI <= 200) {

    // สีเหลือง
    setColor(255, 255, 0);

    Serial.println("ปานกลาง");

  }
  else if (AQI <= 300) {

    // สีส้ม
    setColor(255, 100, 0);

    Serial.println("เริ่มมีผลกระทบต่อสุขภาพ");

  }
  else {

    // สีแดง
    setColor(255, 0, 0);

    Serial.println("มีผลกระทบต่อสุขภาพ");

  }

  delay(500);
}

void setColor(int red, int green, int blue) {

  analogWrite(RED_PIN, red);
  analogWrite(GREEN_PIN, green);
  analogWrite(BLUE_PIN, blue);
}

KY-016 RGB LED Module เป็นโมดูล LED แสดงสถานะแบบ 3 สีที่เหมาะสำหรับงาน Arduino และ ESP32 อย่างมาก เนื่องจากใช้งานง่าย ราคาประหยัด และสามารถสร้างสีได้หลากหลายผ่านการควบคุมแบบ PWM จึงนิยมนำไปใช้ในระบบ IoT, Smart Home, Smart Factory, Smart Farm และ AI Assistant โดยเฉพาะโปรเจกต์ YakYim ที่สามารถใช้ KY-016 เป็นตัวแสดงผลคุณภาพอากาศ PM2.5 และสถานะการทำงานของระบบ AI ได้อย่างมีประสิทธิภาพ