กลับไปหน้ารวมไฟล์
automatic-train-control-17bc11.md

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

ต่อยอดจากโปรเจค Interlocking ระบบ ควบคุมรถไฟอัตโนมัติ (ATC) ตัวนี้จะโฟกัสที่ตัวรถไฟโดยตรง แทนที่จะแค่ป้องกันการชนเท่านั้น โปรเจคนี้ทำหน้าที่เหมือน "พนักงานขับรถไฟ" คอยควบคุมทางลาดของการเร่งและลดความเร็วให้หยุดที่สถานีได้สมจริงสุดๆ สำหรับเลย์เอาท์สเกล HO หรือ N

พัลส์วิดท์ DDC (Digital Command Control)

รถไฟโมเดลได้รับพลังงานไฟฟ้าจากรางโลหะโดยตรง

  1. วงจร: Arduino ใช้มอเตอร์ชีลด์กำลังสูง (L298P หรือเทียบเท่า) ต่อตรงเข้ากับรางรถไฟเพื่อส่งสัญญาณ PWM 12V ออกไป
  2. อัลกอริทึมทางลาด: รถจักรจริงหนักเป็นร้อยตันมันไม่หยุดกึกทันทีหรอกน้อง โค้ด Arduino ใช้ลูป for เพื่อค่อยๆ เพิ่มและลดสัญญาณ PWM แบบนี้: for(speed=255; speed>50; speed--) { analogWrite(trackPin, speed); delay(20); } มันจะทำให้ได้โมเมนตัมที่ลื่นไหลและสมจริงมากๆ

ตรรกะการหยุดที่สถานี

เพื่อให้การทำงานเป็นไปตามตารางเวลา Arduino ต้องรู้ตำแหน่งที่แน่นอนของรถไฟ

  • น้องวาง เซ็นเซอร์อินฟราเรด (TCRT5000) หรือ รีดสวิตช์ ไว้ใต้รางตรงจุดเริ่มต้นชานชาลาสถานี
  • พอรถไฟผ่านเซ็นเซอร์ Arduino ก็จะรันลูปการลดความเร็วทันที
  • รถไฟจะหยุดนิ่งอย่างนุ่มนวลพอดีที่ชานชาลาสถานีเล็กๆ ของเรา
  • Arduino จะรัน delay(10000) เพื่อให้ผู้โดยสารจินตนาการลงรถ จากนั้นก็รันลูปการเร่งความเร็วช้าๆ เพื่อออกเดินทางต่อ!

การเปลี่ยนพารามิเตอร์เวลาในสเก็ตช์:

// 1  | 0 > Time < 5 sec
if (counterScheduler <= 5) {
......
// 2  | 10 sec > Time < 15 sec
if ((counterScheduler >= 10) && (counterScheduler <= 15)) {
......
// 3  | Change direction
if (counterScheduler == 16) {
.... etc.

จะสร้างตารางเวลาขึ้นมา

ตัวแปร:

int brakingDelta = 5;
int accelerateDelta = 6;

กำหนดพารามิเตอร์การเคลื่อนที่ของรถไฟ

ทิศทางของรถไฟถูกกำหนดโดยสถานะของพิน D6 และ D7:

// Set default direction to FORWARD
digitalWrite(L298_IN1, HIGH);
digitalWrite(L298_IN2, LOW);

อุปกรณ์ที่ต้องใช้

  • Arduino Uno/Mega
  • มอเตอร์คอนโทรลชีลด์: ที่สามารถจ่ายกระแสต่อเนื่อง 1-2 แอมป์ที่ 12V ได้
  • เซ็นเซอร์อินฟราเรดหรือรีดสวิตช์ + แม่เหล็ก
  • ชุดรถไฟสเกล HO หรือ N แบบอนาล็อก

น้องสามารถปรับแต่งสเก็ตช์นี้ได้เรื่อยๆ เพื่อสร้างตัวเลือกใหม่ๆ ในการควบคุมรถไฟอัตโนมัติ เอาเลยวัยรุ่น!

สู้งานนะน้อง!

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

apps:
  - "1x Arduino IDE"
author: "Steve_Massikker"
category: "Home & Automation"
components:
  - "1x Arduino UNO"
  - "1x Dual H-Bridge motor drivers L298"
  - "1x Jumper wires (generic)"
description: "Model railroading upgraded! Build an autonomous train dispatching system that manages speed, station stopping, and track switching reliably."
difficulty: "Advanced"
documentationLinks: []
downloadableFiles: []
encryptedPayload: "U2FsdGVkX1+9Pzq5YUjBb+U225WaWG1YEjjRkvsPMs0huzLm/ydlHO8rcNHIXR4YwfF6K6WQf4Cs+xukt9tXTVkMw+O/buT7wzI8pQtUAXc="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/automatic-train-control-17bc11_cover.jpg"
lang: "en"
likes: 20
passwordHash: "5b0f061843599a0c126ff15d65bc65e3ea263af7d71dacc9ec8520e2e9f45420"
price: 1120
seoDescription: "Automate your model railway with Arduino. Create custom schedules and ensure your trains run on time using any Arduino boards."
tags:
  - "control"
  - "home automation"
  - "train"
title: "ระบบควบคุมรถไฟอัตโนมัติ ตึงๆ วิ่งตามตารางเราเลย!"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/3m3fIjzGKho"
views: 30255