กลับไปหน้ารวมไฟล์
advanced-traffic-lights.md

โครงสร้างพื้นฐานในเมือง: ไฟจราจรขั้นสูง

ระบบไฟจราจร เป็นการอัปเกรดที่ยอดเยี่ยมจาก LED กะพริบแบบธรรมดา มันนำเสนอสถานะตรรกะที่ซับซ้อน สอนวิธีจัดการการทำงานร่วมกันระหว่าง LED หลายตัว และที่สำคัญกว่านั้นคือวิธีจัดลำดับความสำคัญของ LED เหล่านั้น

button_led_basic_interaction_1772681969235.png

Multi-State Logic (State Machines)

สี่แยก 4 ทางไม่สามารถกะพริบไฟแบบสุ่มได้ หากทิศเหนือ-ใต้เป็น Green ทิศตะวันออก-ตะวันตก ต้อง เป็น Red

  1. State 1: NS Green / EW Red ค้างไว้ 10 วินาที
  2. State 2: NS Yellow / EW Red ค้างไว้ 3 วินาที
  3. State 3: NS Red / EW Red ค้างไว้ 1 วินาที (Clearance)
  4. State 4: NS Red / EW Green ค้างไว้ 10 วินาที
  5. แล้ววนซ้ำ!

ลำดับเชิงเส้นนี้เหมาะที่สุดที่จะโปรแกรมโดยใช้ functions สำหรับแต่ละ State เพื่อให้ loop() ของคุณสะอาดและอ่านง่าย

ชิ้นส่วนที่จำเป็น

  • Arduino Uno/Nano: ตัวควบคุมสี่แยก
  • LEDs (x12): Red 4 ตัว, Yellow 4 ตัว, Green 4 ตัว
  • 220-ohm Resistors (x12)
  • Large Breadboard & Jumper wires

ความท้าทายสูงสุด: Pedestrian Crossing

เมื่อลำดับหลักทำงานได้ ความท้าทายในการเขียนโปรแกรมที่แท้จริงก็เริ่มต้นขึ้น! คุณเพิ่ม Push Button เพื่อจำลองทางม้าลาย เมื่อกดปุ่ม Arduino ไม่สามารถเปลี่ยนไฟเป็น Red ได้ทันที (รถจะชน!) โค้ดจะต้องตรวจสอบว่าอยู่ในรอบใด จากนั้นจึงดำเนินการตามลำดับ Yellow อย่างปลอดภัย หยุดการจราจรทั้งหมดด้วยไฟ Red และกะพริบ LED "Walk" ใหม่ก่อนที่จะกลับสู่รอบปกติ สิ่งนี้จำเป็นต้องละทิ้ง delay() โดยสิ้นเชิง และใช้ millis() สำหรับ non-blocking timers

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

title: "Traffic Lights System"
description: "Control the intersection! Build a scale model of a 4-way intersection, managing Red, Yellow, and Green lights with precise timing delays."
category: "Basic Electronics"
difficulty: "Easy"