Mô Hình Tín Hiệu Giao Lộ Tàu HO

Mô hình tín hiệu giao lộ tàu HO này bao gồm thanh chắn, đèn LED nhấp nháy và chuông. Dự án sử dụng bộ vi điều khiển Arduino, cảm biến IR, servo SG90 và DFPlayer Mini để tạo hiệu ứng chân thực cho mô hình đường sắt của bạn.

👁️
2.2K
Lượt Xem
❤️
30
Lượt Thích
📥
341
Lượt Tải
Cập Nhật Dec 31, 2025
Chi tiết
Tải xuống
Bình Luận
Khoe bản in
Remix

Mô tả

Nội dung được dịch bằng AI

Bộ Vi Điều Khiển: Bất kỳ bộ vi điều khiển nào tương thích với Arduino đều được.

Cảm biến hồng ngoại (IR) có thể được cấp nguồn bằng điện áp DC 3.3V, nhưng sẽ có phạm vi phát hiện xa hơn khi cấp nguồn bằng điện áp DC 5V. Bộ vi điều khiển XIAO SAMD21 được sử dụng trong dự án này được cấp nguồn bằng điện áp DC 5V nhưng sử dụng logic 3.3V và đầu vào/đầu ra tương tự. Điều này yêu cầu bộ chuyển đổi mức logic từ 5V sang 3.3V để bảo vệ XIAO. Do đó, trong dự án này có hai mức điện áp cao: điện áp DC 5V được biểu thị bằng dây màu đỏ và điện áp DC 3.3V bằng dây màu cam.


Cảm biến IR: Sử dụng các mô-đun cảm biến quang phản xạ IR 3 dây. Cấp nguồn cho chúng bằng điện áp DC 5V để có phạm vi phát hiện xa hơn. Các cảm biến có hai đầu ra: kỹ thuật số (DO) và tương tự (AO). Đoạn mã dưới đây sử dụng đầu ra kỹ thuật số. Mức kích hoạt cho đầu ra kỹ thuật số được đặt bằng cách sử dụng tua vít để xoay chiết áp ở mặt sau của bảng mạch. Sử dụng hai cảm biến để giữ cho tín hiệu hoạt động cho đến khi toa cuối cùng của tàu đi qua giao lộ. Lý tưởng nhất là các cảm biến này nên được gắn bên dưới đường ray, nhưng chúng quá dày. Thay vào đó, hãy gắn chúng vào đá, cây cối hoặc các tòa nhà bên đường ray.

Bộ Chuyển Đổi Mức Logic: Sử dụng để chuyển đổi đầu ra 5V của cảm biến IR sang mức tương thích với bộ vi điều khiển. Điều này không cần thiết nếu bộ vi điều khiển chấp nhận tín hiệu 5V.

Tín Hiệu Giao Lộ: In với mặt sau úp xuống khay in và không cần hỗ trợ. Thêm thay đổi filament cho các chi tiết nhấn.

Đèn LED Tín Hiệu: Sử dụng đèn LED đỏ 10 mm khuếch tán (không trong suốt). Ép chặt vào tín hiệu. Dây nối song song với các cực ngược nhau (chân LED dài là + và chân LED ngắn là -), và nối tiếp với điện trở hạn dòng (~220 ohm). Trong dự án này, các chân LED được định hướng theo chiều dọc (chân dài ở trên cho một LED và ở dưới cho LED kia). Các chân ngắn được uốn theo chiều ngang và mỗi chân được hàn vào chân LED dài tương ứng. Các chân dài được điều chỉnh theo chiều ngang sao cho khoảng cách của chúng nằm bên trong vỏ động cơ servo, sau đó được hàn vào dây nối. Cấp nguồn bằng đầu ra kỹ thuật số của bộ vi điều khiển.

Servo Tín Hiệu: Sử dụng servo SG90 để nâng lên và hạ xuống thanh chắn. Bộ vi điều khiển có thể dễ dàng cung cấp điện áp cần thiết để đặt vị trí của servo, nhưng có thể không cung cấp đủ dòng điện để chạy động cơ servo. Dự án này sử dụng bảng breakout nối tiếp loại C USB để cấp nguồn cho động cơ ở điện áp DC 5V. Một cáp chia USB C 2-trong-1 có thể cấp nguồn cho cả bảng breakout USB và bộ vi điều khiển từ một bộ chuyển đổi sạc USB duy nhất. Đặt động cơ servo vào trong vỏ bảo vệ với các dây dẫn hướng xuống dưới. Lắp vào tín hiệu và cố định bằng hai vít kim loại tấm #2 x ½ inch. Gắn nắp đậy lên vỏ động cơ servo. Sử dụng tay quay đơn đi kèm với servo để kết nối thanh chắn với động cơ servo. Bạn có thể phải cắt/mài mặt trước của tay quay để làm phẳng. Lắp thanh chắn bằng một miếng băng dính hai mặt kẹp giữa thanh chắn và đòn bẩy tay quay (kết nối này cần bị đứt dễ dàng trong trường hợp servo quay quá xa) và một vít kim loại tấm #2 x 3/8 inch. Bạn có thể cần phải mở rộng các lỗ cho ốc vít: mũi khoan cỡ #43 cho lỗ trên thanh chắn và mũi khoan cỡ #48 cho lỗ trên nắp trước của hộp servo.

Chuông Tín Hiệu: Sử dụng DFPlayer Mini với loa 8 ohm. Tải các tệp âm thanh mp3 hoặc wav lên thẻ micro SD và cắm vào DFPlayer Mini. Cấp nguồn cho DFPlayer bằng điện áp DC 5V từ bảng breakout USB. Bạn có thể thay đổi độ trễ trong mã để đồng bộ hóa đèn và chuông.

Nút Giao Lộ: Được thiết kế để lắp vừa với Bachmann EZ Track. In hai bản sao của Phần 1 nằm nghiêng với hỗ trợ ở mọi nơi. Điều này giúp dễ dàng thêm các sọc trên đường ray bằng cách thay đổi filament. Phần 2 được sử dụng để kết nối chúng với một đoạn đường ray thẳng. Bạn sẽ cần tạo rãnh ở các cạnh của đường ray. Tôi thấy rằng cưa bàn hoạt động tốt nhất. Đặt độ sâu lưỡi cưa thành 5 mm. Phần 2 ấn vào mặt dưới của đường ray. Ma sát sẽ giữ nó cố định. Sử dụng vít kim loại tấm #2 x 3/8 inch để gắn các nút giao lộ vào Phần 2. Sau đó lắp các tín hiệu giao lộ bằng vít hoặc băng dính hai mặt.

Bộ Vi Điều Khiển: Bất kỳ bộ vi điều khiển nào tương thích với Arduino đều được. Tôi đã sử dụng XIAO SAMD21 từ Seeed Studio (xem ảnh), vì nó nhỏ và giá cả phải chăng. SAMD21 cũng có đầu nối USB loại C. Đây là mã:

/ Cảnh báo giao lộ đường sắt với đèn, thanh chắn và chuông bởi Everett Ramer ngày 24/01/2023 /

/ Chuông cảnh báo giao lộ đường sắt bởi https://hackaday.io/project/194056-digital-bicycle-horn-with-customizable-sound/details /

/ Đèn cảnh báo giao lộ đường sắt bởi DAVID https://projecthub.arduino.cc/eldo85/railroad-crossing-lights-3c1252 /

/* Sweep bởi BARRAGAN http://barraganstudio.com Đoạn mã ví dụ này thuộc phạm vi công cộng.

sửa đổi ngày 8 tháng 11 năm 2013 bởi Scott Fitzgerald https://www.arduino.cc/en/Tutorial/LibraryExamples/Sweep */

include <Servo.h>

Servo myservo; // tạo đối tượng servo để điều khiển servo // có thể tạo mười hai đối tượng servo trên hầu hết các bo mạch

include <SoftwareSerial.h>

define RX D6 // Chân RX của DFPlayer Mini được kết nối với chân kỹ thuật số 6

define TX D7 // Chân TX của DFPlayer Mini được kết nối với chân kỹ thuật số 7

SoftwareSerial mySoftwareSerial(RX, TX); // Tạo đối tượng SoftwareSerial

include <DFRobotDFPlayerMini.h>

DFRobotDFPlayerMini myDFPlayer; // Tạo đối tượng DFPlayerMini

// đặt số chân const int ledPin1 = 1; const int ledPin2 = 2; const int sensorPin1 = 3; const int sensorPin2 = 4; const int armPin = 5; bool sensorState1 = false; bool sensorState2 = false; bool signalOn = false;

void setup() { pinMode(ledPin1, OUTPUT); // khởi tạo chân LED làm đầu ra: pinMode(ledPin2, OUTPUT); pinMode(sensorPin1, INPUT); // khởi tạo chân cảm biến làm đầu vào: pinMode(sensorPin2, INPUT); myservo.attach(armPin); // gắn servo vào đối tượng servo myservo.write(0); // đảm bảo thanh chắn được nâng lên

mySoftwareSerial.begin(9600); // Bắt đầu giao tiếp nối tiếp phần mềm myDFPlayer.begin(mySoftwareSerial); // Khởi tạo DFPlayer Mini myDFPlayer.volume(30); // Đặt âm lượng (0 đến 30) }

void loop() { sensorState1 = digitalRead(sensorPin1) == LOW; sensorState2 = digitalRead(sensorPin2) == LOW; // hạ thanh chắn và nhấp nháy đèn LED khi một trong hai cảm biến ở mức LOW if (sensorState1 || sensorState2) { if (!signalOn) { signalOn = true; myDFPlayer.play(1); // Hàm phát bài hát 1 myservo.write(90); // hạ thanh chắn } digitalWrite(ledPin1, HIGH); // đèn đỏ 1 bật digitalWrite(ledPin2, LOW); // đèn đỏ 2 tắt delay(400); // chờ 400ms digitalWrite(ledPin1, LOW); // đèn đỏ 1 tắt digitalWrite(ledPin2, HIGH); // đèn đỏ 2 bật delay(400); // chờ 400ms } else { delay(400); // cho phép khoảng trống giữa các xe sensorState1 = digitalRead(sensorPin1) == HIGH; sensorState2 = digitalRead(sensorPin2) == HIGH; // nâng thanh chắn và tắt đèn LED nếu cả hai cảm biến đều ở mức HIGH if (sensorState1 && sensorState2 && signalOn) { signalOn = false; myDFPlayer.stop(); myservo.write(0); digitalWrite(ledPin1, LOW); // đèn đỏ 1 tắt digitalWrite(ledPin2, LOW); // đèn đỏ 2 tắt } } }

Giấy phép

Tác phẩm này được cấp phép theo

Creative Commons — Attribution

CC-BY

Yêu cầu ghi công
Remix & phái sinh Được phép
Sử dụng thương mại Được phép

File mô hình

TẤT CẢ FILE MÔ HÌNH (10 Tập tin)
Đang tải files, vui lòng chờ...
Vui lòng đăng nhập để bình luận.

Chưa có bình luận nào. Hãy là người đầu tiên!

Vui lòng đăng nhập để khoe bản in của bạn.

Chưa có bản in nào được khoe. Hãy là người đầu tiên!

Remix (0)