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

Pulse Width DDC (Digital Command Control)
รถไฟจำลองรับพลังงานโดยตรงจากรางโลหะ
- วงจร: Arduino ใช้ Motor Shield ที่รองรับกระแสสูง (L298P หรือใกล้เคียง) เชื่อมต่อโดยตรงกับรางรถไฟเพื่อส่งสัญญาณ 12V PWM
- อัลกอริทึมการเร่ง/ลดความเร็ว: หัวรถจักรขนาด 100 ตันของจริงไม่สามารถหยุดได้ทันที โค้ด Arduino ใช้
forloop เพื่อค่อยๆ เพิ่มและลดสัญญาณ PWM:for(speed=255; speed>50; speed--) { analogWrite(trackPin, speed); delay(20); }สิ่งนี้ทำให้เกิดโมเมนตัมที่ราบรื่นและสมจริงอย่างน่าทึ่ง
หลักการหยุดที่สถานี
เพื่อให้การจัดตารางเวลาเป็นไปโดยอัตโนมัติ Arduino จะต้องรู้ตำแหน่งที่แน่นอนของรถไฟ
- คุณวาง IR Sensor (TCRT5000) หรือ Reed Switch ไว้ใต้รางที่จุดเริ่มต้นของชานชาลา
- เมื่อรถไฟเคลื่อนผ่านเซ็นเซอร์ Arduino จะประมวลผลลูปการลดความเร็ว
- รถไฟจะหยุดได้อย่างราบรื่นสมบูรณ์แบบที่ชานชาลาเล็กๆ นั้น
- Arduino จะใช้
delay(10000)เพื่อให้ผู้โดยสารในจินตนาการลงจากรถ จากนั้นจึงประมวลผลลูปการเร่งความเร็วอย่างช้าๆ เพื่อออกเดินทาง!
อุปกรณ์ที่ต้องใช้
- Arduino Uno/Mega
- Motor Control Shield: สามารถส่งกระแสต่อเนื่อง 1-2 Amps ที่ 12V ได้
- IR Obstacle Sensors หรือ Reed Switches + แม่เหล็ก
- ชุดรถไฟจำลองแบบ Analog ขนาด HO หรือ N scale