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

ยังไม่ได้อัพเกรดจากชุดเริ่มต้น (LEDs, resistors, push buttons, photo resistors) เลยนะ หลังจากทำโปรเจกต์พื้นฐานใน PDF ของ inventr.io ครบทุกอันแล้ว ก็เลยอยากท้าทายตัวเองขึ้นมาอีกนิด งานนี้ใช้ตัวอย่าง Traffic Lights เป็นไอเดียคร่าวๆ แล้วเขียนโค้ดเองทั้งหมดเลยว่ะ เรียกได้ว่าเป็นโปรเจกต์แรกที่ลุยเขียนจาก Arduino template เปล่าๆ เลยทีเดียว!

ถ้าจัดเต็มด้วยการแยก Breadboard ออกเป็น 2 อัน งานนี้ต้องดูปังกว่าเดิมแน่นอน!

ส่วนโค้ดนี่รู้เลยว่ายังจัดระเบียบไม่สุด ถ้าใช้ arrays หรือเทคนิคอื่นๆ ช่วยคงสวยกว่านี้ เดี๋ยวค่อยๆ ปรับไปเรื่อยๆ เนอะ สู้ๆ!

รายละเอียดเทคนิคแบบจัดเต็ม

ระบบ State-Machine แบบกระจายศูนย์

โปรเจกต์พื้นฐานนี้จำลองการทำงานประสานเวลาที่ซับซ้อนของสัญญาณไฟจราจรหลายแยกในเมืองจริงๆ

  • ลูปทำงานแบบขนานและเป็นลำดับ: Arduino จัดการชุดไฟ R/G/Y สองชุดขึ้นไป เฟิร์มแวร์ใช้ State Machine แบบก้าวหน้าโดยอาศัย millis() เพื่อจัดการเวลาแบบ "Green-Wave" ทำให้ไฟทั้งสองชุดทำงานประสานกัน เพื่อเพิ่มความลื่นไหลให้กับการจราจรจำลอง
  • ระบบขัดจังหวะด้วยปุ่มคนข้ามถนน: มีปุ่ม "Crosswalk" ให้กด พอกดแล้ว Arduino จะขัดจังหวะวงจรปัจจุบันอย่างปลอดภัย พร้อมกับมีช่วง "ไฟแดงทั้งหมด" 2 วินาทีเป็น buffer ก่อนให้คนข้ามถนน

ด้านการแสดงผล

  • ใช้ LED ตัวชี้วัดขนาด 10mm แบบอุตสาหกรรม: ใช้ LED ความสว่างสูงที่เลียนแบบสัญญาณไฟจราจรของจริง เฟิร์มแวร์ยังเพิ่มเอฟเฟกต์ "Fade-In/Out" ให้กับไฟสีเหลือง เพื่อความสมจริงยิ่งขึ้น

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

title: "Synchronized Traffic Lights"
description: "My simple spin on a Traffic Lights example, I am sure the code could be better but works as intended!"
author: "distractedmaker"
category: ""
tags:
  - "lights"
views: 4301
likes: 1
price: 1499
difficulty: "Easy"
components:
  - "6x Resistor 220 ohm"
  - "2x 5 mm LED: Yellow"
  - "1x Arduino UNO"
  - "1x Jumper wires (generic)"
  - "1x Solderless Breadboard Half Size"
  - "2x 5 mm LED: Green"
  - "2x 5 mm LED: Red"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/12125dbb-4325-4209-bfe1-87d52fbe993d.ino"
  - "https://projects.arduinocontent.cc/12125dbb-4325-4209-bfe1-87d52fbe993d.ino"
documentationLinks: []
passwordHash: "ba3409cd11951a1226a5add3e920025e6a7dde1744ec8eda5bd89161151fb5f0"
encryptedPayload: "U2FsdGVkX19EoTGrE1BuLqT3fVSrZ8C0UPmVibBHuUPV4iwhug1sHXxBVlsyaR2ieDv6YMR/O6SgcP5J1bSB2j4zCzGktlXYATrX6sURJzs="
seoDescription: "Learn how to build Synchronized Traffic Lights with Arduino. A simple, functional project for beginners."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/synchronized-traffic-lights-e81db6_cover.jpg"
lang: "th"