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

Multi-State Logic (State Machines)
สี่แยก 4 ทางไม่สามารถกะพริบไฟแบบสุ่มได้ หากทิศเหนือ-ใต้เป็น Green ทิศตะวันออก-ตะวันตก ต้อง เป็น Red
- State 1: NS Green / EW Red ค้างไว้ 10 วินาที
- State 2: NS Yellow / EW Red ค้างไว้ 3 วินาที
- State 3: NS Red / EW Red ค้างไว้ 1 วินาที (Clearance)
- State 4: NS Red / EW Green ค้างไว้ 10 วินาที
- แล้ววนซ้ำ!
ลำดับเชิงเส้นนี้เหมาะที่สุดที่จะโปรแกรมโดยใช้ 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