ผสมสีหลอดไฟ LED RGB
แสงที่เรามองเห็นอยู่นี้ เกิดจากการผสมสีกันของแสง หลัก ๆ 3 สี คือ สีแดง สีเขียว และสีน้ำเงิน ถ้ารวมกันทั้งหมดทั้ง 3 สีจะได้เป็นแสงสีขาว
ในการทดลองนี้เราจะผสมสีของแสง ให้เป็นสีต่าง ๆ รวมทั้งปรับความเข้มของแต่ละสี ก็จะได้สีที่มีความหลากหลาย ใช้ Arduino สั่งงานหรี่ไฟแต่ละสีแบบ PWM
หลอด RGB LED มีอยู่สองแบบ
1. แบบ common cathode ลบร่วม
2. แบบ common anode บวกร่วม
ผสมสี
หลอด LED RGB 255,0,0 ไฟสีแดง
หลอด LED RGB 0,255,0 ไฟสีเขียว
หลอด LED RGB 0,0,255 ไฟสีน้ำเงิน
หลอด LED RGB 255,255,255 ไฟสีขาว
เพิมเติม
ไฟแต่ละสี สามารถหรี่ไฟได้ 0-255 ระดับ ยิ่งค่ามากไฟยิ่งสว่าง เป็นระบบสีของแสงแบบ RGB เหมือนในที่เราใช้งานในหน้าจอคอมพิวเตอร์
เราสามารถผสมสีได้ด้วยโปรแกรมหลาย ๆ ตัว เช่น โปรแกรม Paint เลือกสีที่ชอบ จะเห็นค่า R G B
การผสมสี
การที่จะทำให้หลอด LED RGB เปล่งแสงออกมาเป็นสีอะไร สามารถทำได้โดยการควบคุมความสว่างของแสงแต่ละสี
แบบเดียวกับการผสมสีลงบนจานผสมสี หากให้สีของแต่ละสีติดเท่ากันหมด ก็จะทำให้ได้แสงสีขาวออกมา
การปรับความสว่างของหลอด LED ทำได้จากการปรับค่าดิวตี้ไซเคิลของความถี่ PWM โดยหากค่าดิวตี้ไซเคิลมีมาก ก็จะทำให้หลอด LED
สว่างมากขึ้น และหากค่าดิวตี้ไซเคิลน้อยลงจนถึง 0 ก็จะทำให้หลอด LED ดับไปเลย
หลอด LED RGB กันก่อนครับ หลอด LED RGB ภายในหลอดจะมี LED ทั้งหมด 3 แม่สี คือ สีแดง สีเขียว และสีน้ำเงิน
อยู่ภายใน และมีขาต่อใช้งานทั้งหมด 4 ขา ประกอบด้วยขา Common R G และ B ซึ่งขา Common จะเป็นขาที่รวมขา
A หรือขา K ของหลอด LED แต่ละสีเข้าด้วยกัน หากเป็น Common A (CA) จะต้องต่อขา Common เข้าขั่วบวก
และป้อนลอจิก 0 (LOW) ออกจากไมโคร จึงจะทำสีที่ต้องการติดสว่างขึ้นมา หากเป็น Common K (CC)
จะต้องต่อขา Common ลงกราว์ด แล้วปล่อยลอจิก 0 เข้าไปควบคุม ก็จะทำให้แสงสีที่ต้องการติดสว่างขึ้นมาได้
ใน Arduino การสร้าง PWM สามารถทำได้จากการใช้คำสั่ง analogWrite()
ในการสร้าง และปรับค่าดิวตี้ไซเคิล ในบอร์ด Arduino ที่ใช้ไอซีไมโครฯเบอร์ ATmega328P (Arduino Uno R3 ,
Arduino Nano, Arduino pro mini) จะสามารถปรับค่าดิวตี้ไซเคิลได้ความละเอียด 8 บิต คือปรับได้ตั้งแต่ 0 - 255
และจะใช้ PWM ได้เฉพาะขาที่รองรับขา PWM เท่านั้น (ขา 3, 5, 6, 9, 10 และ 11)
Arduino uno ผสมสีหลอดไฟ LED RGB
int R = 9;
int G = 10;
int B = 11;
void setup() {
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
Serial.begin(9600);
}
void loop() {
// กำหนด LED สีชมพู
analogWrite(R, 255);
analogWrite(G, 0);
analogWrite(B, 120);
delay(500);
}
Arduino Uno ผสมสีหลอดไฟ LED RGB
.png)


