ในโครงการนี้เราจะไปอินเตอร์เฟซที่ 5 RGB (สีแดงสีเขียวสีฟ้า) ไฟ LED เพื่อ Arduino Uno LED เหล่านี้เชื่อมต่อแบบขนานเพื่อลดการใช้ PIN ของ Uno
RGB LED ทั่วไปแสดงดังรูปด้านล่าง:
RGB LED จะมีสี่พินดังแสดงในรูป
PIN1: ขั้วลบสี 1 หรือขั้วบวกสี 1 สี
PIN2: ค่าบวกทั่วไปสำหรับทั้งสามสีหรือค่าลบทั่วไปสำหรับทั้งสามสี
PIN3: ขั้วลบสี 2 หรือขั้วบวกสี 2
PIN4: ขั้วลบสี 3 หรือขั้วบวกสี 3
ดังนั้นไฟ LED RGBจึงมีสองประเภทหนึ่งคือประเภทแคโทดทั่วไป (ค่าลบทั่วไป) และอีกประเภทหนึ่งคือประเภทแอโนดทั่วไป (ค่าบวกทั่วไป) ใน CC (Common Cathode หรือ Common Negative) จะมีขั้วบวกสามขั้วแต่ละขั้วแสดงถึงสีและขั้วลบ 1 ขั้วแทนทั้งสามสี วงจรภายในของ CC RGB LED สามารถแสดงได้ดังต่อไปนี้
หากเราต้องการให้ RED อยู่ด้านบนเราจำเป็นต้องจ่ายไฟให้กับขา LED สีแดงและกราวด์ขั้วลบทั่วไป เช่นเดียวกันกับไฟ LED ทั้งหมด ใน CA (Common Anode หรือ Common Positive) จะมีขั้วลบสามขั้วแต่ละขั้วแทนสีและขั้วบวกหนึ่งขั้วแทนทั้งสามสี วงจรภายในของ CA RGB LED สามารถแสดงได้ดังรูป..
หากเราต้องการให้ RED อยู่ด้านบนเราจำเป็นต้องกราวด์พิน LED สีแดงและเพิ่มพลังบวก เช่นเดียวกันกับไฟ LED ทั้งหมด
ในวงจรของเราเราจะใช้ประเภท CA (Common Anode หรือ Common Positive) สำหรับการเชื่อมต่อ 5 RGB LEDs เข้ากับ Arduino เราต้องใช้ 5x4 = 20 PINS โดยปกติเราจะลดการใช้ PIN นี้เป็น 8 โดยการเชื่อมต่อ RGB LEDs แบบขนานและใช้เทคนิคที่เรียกว่ามัลติเพล็กซ์
ส่วนประกอบ
ฮาร์ดแวร์: UNO, แหล่งจ่ายไฟ (5v), ตัวต้านทาน1KΩ (3 ชิ้น), LED RGB (แดงเขียวน้ำเงิน) (5 ชิ้น)
ซอฟต์แวร์: Atmel studio 6.2 หรือ Aurdino ทุกคืน
คำอธิบายวงจรและการทำงาน
การเชื่อมต่อวงจรสำหรับการเชื่อมต่อRGB LED Arduino แสดงไว้ในรูปด้านล่าง
ตอนนี้สำหรับส่วนที่ยุ่งยากบอกว่าเราต้องการเปลี่ยน LED สีแดงใน SET1 และ GREEN LED ใน SET2 เราให้พลังงาน PIN8 และ PIN9 ของ UNO และ PIN7, PIN6 ภาคพื้นดิน
ด้วยการไหลนั้นเราจะมี RED ใน SET แรกและ GREEN ใน SET ที่สอง แต่เราจะมี GREEN ใน SET1 และ RED ใน SET2 ON ด้วย จากการเปรียบเทียบอย่างง่ายเราจะเห็น LED ทั้งสี่ดวงปิดวงจรด้วยการกำหนดค่าด้านบนและทั้งหมดจึงเรืองแสง
ดังนั้นเพื่อขจัดปัญหานี้เราจะเปิดครั้งละหนึ่งชุดเท่านั้น พูดที่ t = 0m SEC ปรับ SET1 แล้ว ที่ t = 1m วินาที SET1 จะถูกปรับปิดและ SET2 เปิดอยู่ อีกครั้งที่ t = 6m วินาที SET5 จะปิดและ SET1 เปิดอยู่ สิ่งนี้ดำเนินต่อไป
เคล็ดลับคือสายตาของมนุษย์ไม่สามารถจับความถี่ได้มากกว่า 30 HZ นั่นคือถ้า LED เปิดและปิดอย่างต่อเนื่องในอัตรา 30HZ หรือมากกว่า ตาจะมองเห็น LED เป็น ON อย่างต่อเนื่อง อย่างไรก็ตามนี่ไม่ใช่กรณี LED จะเปิดและปิดตลอดเวลา เทคนิคนี้เรียกว่าการมัลติเพล็กซ์
พูดง่ายๆเราจะจ่ายไฟให้แคโทดทั่วไป 5 ชุด 1 มิลลิวินาทีดังนั้นใน 5 มิลลิวินาทีเราจะเสร็จสิ้นวงจรหลังจากนั้นวงจรจะเริ่มจาก SET1 อีกครั้งซึ่งจะดำเนินต่อไปตลอดกาล เนื่องจากชุด LED เปิดและปิดเร็วเกินไป มนุษย์คาดการณ์ว่า SET ทั้งหมดจะเปิดอยู่ตลอดเวลา
ดังนั้นเมื่อเราเปิด SET1 ที่ t = 0 มิลลิวินาทีเราจะกราวด์พิน RED ที่ t = 1 มิลลิวินาทีเราเปิดเครื่อง SET2 และกราวด์พิน GREEN (ในขณะนี้ RED และ BLUE ถูกดึงขึ้นสูง) การวนซ้ำดำเนินไปอย่างรวดเร็วและตาจะเห็นเรืองแสงสีแดงใน FIRST SET และ GREEN เรืองแสงใน SECOND SET
นี่คือวิธีที่เราตั้งโปรแกรม RGB LED เราจะเรืองแสงสีทั้งหมดช้าๆในโปรแกรมเพื่อดูว่ามัลติเพล็กซ์ทำงานอย่างไร