สร้างวงจร LED Roulette สุดท้าทายด้วย Arduino UNO
โปรเจค LED Roulette หรือวงจรไฟวิ่งลุ้นโชค เป็นโปรเจคเริ่มต้นที่ยอดเยี่ยมสำหรับผู้ที่สนใจด้านระบบฝังตัว (Embedded Systems) เพราะมันรวมเอาพื้นฐานการควบคุม Output แบบ Digital, การจัดการกระแสไฟฟ้า และการเขียนโปรแกรมควบคุมลำดับเวลา (Timing Control) เข้าไว้ด้วยกันอย่างลงตัว
วิดีโอนี้จะช่วยให้คุณเข้าใจภาพรวมและขั้นตอนการประกอบวงจรได้ง่ายขึ้น
รายละเอียดอุปกรณ์และหลักการทำงานในเชิงวิศวกรรม
ในการสร้างโปรเจคนี้ เราไม่ได้เพียงแค่ทำให้ไฟติด แต่เรากำลังจัดการกับสัญญาณไฟฟ้าผ่านอุปกรณ์ต่างๆ ดังนี้:
- Arduino UNO: บอร์ดไมโครคอนโทรลเลอร์ที่เป็นหัวใจหลัก ทำหน้าที่ประมวลผลลอจิกและจ่ายแรงดันไฟฟ้า 5V ผ่านขา Digital I/O
- LED (Light Emitting Diode): อุปกรณ์สารกึ่งตัวนำที่เปลี่ยนพลังงานไฟฟ้าเป็นแสง ในโปรเจคนี้เราใช้ 9 ดวง เพื่อสร้างเอฟเฟกต์การวิ่งของไฟ
- Resistor (220 Ohms): ตัวต้านทานทำหน้าที่ "จำกัดกระแส" (Current Limiting) เพื่อป้องกันไม่ให้กระแสไฟฟ้าไหลผ่าน LED และขาของ Arduino มากเกินไป ซึ่งอาจทำให้อุปกรณ์เสียหายได้ตามกฎของ Ohm ($V = IR$)
- Breadboard & Jumper Wires: อุปกรณ์เชื่อมต่อวงจรโดยไม่ต้องบัดกรี

ขั้นตอนการประกอบวงจร (Step-by-Step)
ขั้นตอนที่ 1: การจัดวาง LED
นำ LED ทั้ง 9 ดวงเสียบลงบน Breadboard โดยแนะนำให้เรียงเป็นแนวเส้นตรงหรือวงกลมเพื่อให้เห็นเอฟเฟกต์ "Roulette" ได้ชัดเจน ข้อควรระวัง: ตรวจสอบขาของ LED ให้ดี ขาที่ยาวกว่าคือขั้วบวก (Anode) และขาที่สั้นกว่าคือขั้วลบ (Cathode)
ขั้นตอนที่ 2: การจัดการระบบ Ground (GND)
ในทางวิศวกรรม การจัดการสายกราวด์ที่ดีจะช่วยลดความซับซ้อนของวงจร ให้เชื่อมต่อตัวต้านทาน 220 โอห์ม จากแถวขั้วลบ (Negative Rail) ของ Breadboard ไปยังขา GND ของ Arduino เพื่อใช้เป็นจุดอ้างอิงแรงดันร่วมกัน
ขั้นตอนที่ 3: เชื่อมต่อวงจรลบ
ใช้สาย Jumper สีดำ (หรือสีที่ต้องการ) เชื่อมต่อขา Cathode (ขา過สั้น) ของ LED ทุกดวงลงไปยังแถวขั้วลบที่เราเตรียมไว้ในขั้นตอนที่ 2
ขั้นตอนที่ 4: เชื่อมต่อสัญญาณควบคุม (Digital I/O)
เชื่อมต่อขา Anode (ขาสั้นยาว) ของ LED แต่ละดวงเข้ากับพอร์ต Digital ของ Arduino ตามลำดับดังนี้ เพื่อให้การเขียนโปรแกรมควบคุมลอจิกทำได้ง่าย:
- LED 1 → Digital Pin 13
- LED 2 → Digital Pin 12
- LED 3 → Digital Pin 11
- LED 4 → Digital Pin 10
- LED 5 → Digital Pin 9
- LED 6 → Digital Pin 8
- LED 7 → Digital Pin 7
- LED 8 → Digital Pin 6
- LED 9 → Digital Pin 5
การวิเคราะห์ลอจิกของโปรแกรม (Code Logic)
เพื่อให้วงจรทำงานเป็น Roulette เราจะใช้หลักการ "Scanning" โดยการเปิด-ปิด LED ทีละดวงด้วยความเร็วที่กำหนด
โครงสร้าง Code เบื้องต้น:
void setup() {
// กำหนด Pin 5 ถึง 13 เป็น OUTPUT โดยใช้ Loop เพื่อความรวดเร็ว
for (int i = 5; i <= 13; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// ลอจิกไฟวิ่ง: วนลูปเปิดไฟจากพิน 13 ลงไปถึง 5
for (int i = 13; i >= 5; i--) {
digitalWrite(i, HIGH); // จ่ายไฟ 5V ให้ LED ติด
delay(100); // รอ 100 มิลลิวินาที (ปรับความเร็วได้ที่นี่)
digitalWrite(i, LOW); // ตัดไฟให้ LED ดับ เพื่อไปดวงถัดไป
}
}
คำอธิบายการทำงาน:
- Setup Phase: โปรแกรมจะสั่งให้ Arduino เตรียมความพร้อมของขา Pin 5-13 ให้ทำหน้าที่เป็น "ทางออกของสัญญาณ" (OUTPUT)
- Main Loop:
- โปรแกรมจะเริ่มสั่งให้ Pin 13 เป็น
HIGH(ไฟดวงที่ 1 ติด) - หน่วงเวลาด้วยคำสั่ง
delay()เพื่อให้ตาของมนุษย์มองเห็นแสงได้ทัน - สั่งให้ Pin 13 เป็น
LOW(ไฟดวงที่ 1 ดับ) และขยับไปทำแบบเดียวกันกับ Pin 12, 11 ต่อไปเรื่อยๆ จนครบ - เมื่อทำงานถึง Pin 5 โปรแกรมจะวนกลับไปเริ่มที่ Pin 13 ใหม่ เกิดเป็นภาพไฟวิ่งต่อเนื่อง
- โปรแกรมจะเริ่มสั่งให้ Pin 13 เป็น
ขั้นตอนสุดท้าย: อัปโหลดและทดสอบ
เชื่อมต่อ Arduino เข้ากับคอมพิวเตอร์ผ่านสาย USB เปิดโปรแกรม Arduino IDE เลือกบอร์ดและพอร์ตให้ถูกต้อง จากนั้นกดปุ่ม Upload หากทุกอย่างถูกต้อง คุณจะเห็นไฟ LED วิ่งวนไปมาเหมือนวงล้อรูเล็ตพร้อมใช้งาน!
การทำโปรเจคนี้เป็นพื้นฐานสำคัญในการต่อยอดไปสู่การสร้างเกม หรือการควบคุมอุปกรณ์หลายๆ ชิ้นพร้อมกันในอนาคต (Multiplexing) ขอให้สนุกกับการสร้างสรรค์ครับ!