กลับไปหน้ารวมไฟล์
traffic-light-controller-with-pedestrian-crossing-784692.md

โปรเจกต์นี้จัดเต็มให้เห็นภาพการใช้งานอินเตอร์รัพต์หลายตัวในสถานการณ์จริง เลือกมาทำเป็นระบบไฟจราจรพร้อมทางม้าลาย เพื่อให้อินเตอร์รัพต์ได้ทำงานเบื้องหลังในการตรวจจับการจราจร และรับคำขอข้ามถนนแบบล็อคค่าไว้

สำหรับการทดสอบ เราใช้เซ็นเซอร์ฮอลล์เอฟเฟกต์แทนปุ่มกดหรือลูปเซ็นเซอร์นะตัวนี้

คำขอข้ามถนนจากคนเดินเท้าจะถูกล็อคไว้ และการกดซ้ำจะถูกละเลยจนกว่าวัฏจักรการข้ามจะเสร็จสิ้น การให้สิทธิ์ข้ามจะถูกหน่วงเวลาตามจุดที่กดปุ่มในลำดับไฟจราจร แต่จะถูกจำกัดไว้สูงสุดไม่เกิน 2 รอบวัฏจักร

อินเตอร์รัพต์ตัวที่สองจะตรวจจับปริมาณการจราจรเพื่อขยายเวลาไฟเขียวออกไปตามความหนาแน่น แต่ก็จำกัดเวลาไว้ไม่ให้กีดขวางฝั่งเดียวจนเกินไป

โปรเจกต์นี้สามารถขยายไปใช้กับไฟจราจรขนาดจริงได้เลย เพียงใช้อินเตอร์เฟสที่เหมาะสม รีเลย์ คอนแทคเตอร์

และลูปตรวจจับหรือเซ็นเซอร์จราจรแบบไมโครเวฟ โปรเจกต์นี้ถูกออกแบบมาควบคุมการจราจรทางเดียวบนสะพานช่องทางเดียวที่มีทางม้าลายด้านหนึ่ง แต่ก็สามารถปรับไปควบคุมสี่แยกได้เหมือนกัน

รันบน ARDUINO Mega 2560

Road Safety Logic: ตัวควบคุมไฟจราจร

ตัวควบคุมไฟจราจร นี่แหละคือแบบฝึกหัดพื้นฐานของ ลอจิกเรื่องเวลา และ การจัดการลำดับ มันเลียนแบบระบบในโลกจริงที่คอยรักษาความปลอดภัยบนถนนให้เราทุกวัน

ลูปแห่งเวลา (Timing Loop)

โปรเจกต์นี้ไม่ใช่แค่ให้ไฟสามดวงกระพริบๆ มันต้องเรียงลำดับที่ถูกต้อง:

  1. ไฟเขียว: ติด 5 วินาที
  2. ไฟเหลือง: ติด 2 วินาที (ช่วงเตือน)
  3. ไฟแดง: ติด 5 วินาที
  4. เริ่มใหม่: ลูปนี้ทำให้มั่นใจว่าไฟเหลืองจะต้องมาก่อนไฟแดงเสมอ เหมือนของจริงเป๊ะ

อุปกรณ์ที่ต้องจัด (Hardware Components)

  • Arduino Uno/Nano: สมองประมวลผล
  • LEDs (แดง, เหลือง, เขียว): ตัวแทนสัญญาณไฟจราจร
  • ตัวต้านทาน 220 โอห์ม (3 ตัว): ตัวละหนึ่งตัวสำหรับ LED แต่ละดวง
  • เบรดบอร์ดกับสายจัมเปอร์

ทำไมต้องทำโปรเจกต์นี้?

นี่คือจุดเริ่มต้นที่เพอร์เฟกต์สำหรับการเรียนรู้ฟังก์ชัน delay() และ การจัดการสถานะ (state management) พอน้องเก่งขึ้น ก็สามารถเพิ่ม ปุ่มสำหรับคนข้ามถนน (โดยใช้อินเตอร์รัพต์) ที่บังคับให้ไฟจราจรเปลี่ยนเป็นสีแดงเมื่อมีคนต้องการข้ามได้ ทำให้การจำลองสถานการณ์ของน้องสมจริงยิ่งขึ้น ไปลองทำดู สู้งานนะน้อง!

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

title: "โปรเจคไฟจราจรสุดตึง + ปุ่มข้ามถนนแบบวัยรุ่น!"
description: "งานนี้จัดไปเพื่อโชว์พลังของ Interrupt ให้เห็นจะๆ ระบบไฟจราจรเทพๆ พร้อมปุ่มกดข้ามถนนแบบที่เจอในชีวิตจริง งานง่ายแต่หล่อ รับรองเข้าใจเรื่อง Interrupt ขึ้นเป็นกะโดด!"
author: "aerobat"
category: ""
tags:
  - "traffic lights"
  - "experimenting with interrupts"
  - "traffic lights"
views: 5341
likes: 1
price: 299
difficulty: "Intermediate"
components:
  - "1x Breadboard, 400 Pin"
  - "1x Arduino Mega 2560"
  - "7x LED (generic)"
  - "1x 3 lead 2 colour LED"
tools: []
apps: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/ad53eace-34d8-4c56-9736-1cd025700d1b.ino"
  - "https://projects.arduinocontent.cc/ad53eace-34d8-4c56-9736-1cd025700d1b.ino"
documentationLinks: []
passwordHash: "abe9d576b72cf17a5590c340a89e7fa5c156dcfc40ce09130087168782e04031"
encryptedPayload: "U2FsdGVkX1/iot1KAKzhKw5nl6uwgbW6axOf22JoPoz9m4X+Frpo8fYnL/7rh2ldmN9SmPnjqMBvcpELvg1t5jdawFtdYN5pioWX6OkAC3Ayh0oU1z7fJXhNkR4Az1nnkPrbJaj8jg8QF5IP188B6e9t5KzYtkefH9LEEjHJIegewqBsJBm1CWe10wYNIENa/ZNygYXsK51vwt+wRitG3MZ41HXtQaKZbNTB19zBGyo="
seoDescription: "Learn to build a Traffic Light Controller with pedestrian crossing using Interrupts on Arduino. Real-world traffic system demonstration."
videoLinks:
  - "https://www.youtube.com/embed/pCqZkf8N9a8"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/traffic-light-controller-with-pedestrian-crossing-784692_cover.jpg"
lang: "en"