Hệ thống điều khiển cổng đường sắt tự động sử dụng cảm biến Arduino & IR
Khoảng một triệu người đã chết trong 5 năm qua trong các giao cắt đường sắt không người lái trên toàn thế giới. Ít nhất 1/3 số giao cắt đường sắt không có người lái do vị trí từ xa và ít giao thông hơn. Hệ thống điều khiển cổng đường sắt tự động sử dụng cảm biến hồng ngoại & Arduino tập trung vào kiểm soát giao thông có hệ thống các cổng đường sắt có cả có người lái và không người lái. Dự án này sẽ không chỉ làm cho hệ thống đáng tin cậy hơn và chính xác hơn, mà còn cứu các nhà chức trách khỏi việc thuê người đàn ông quyền lực để làm công việc. Bạn có thể coi đó là một khoản đầu tư một lần.
Dự án hệ thống điều khiển cổng đường sắt tự động sử dụng Arduino Nano để điều khiển toàn bộ mạch. Hai động cơ Servo được sử dụng để mở và đóng cửa đường sắt. Bốn cảm biến hồng ngoại được sử dụng để cảm nhận sự xuất hiện hoặc khởi hành của tàu. Mục tiêu chính là đóng các cửa đường sắt khi tàu đến gần nó, để ngăn chặn các phương tiện đi qua đường ray. Ngay sau khi tàu di chuyển xa hơn từ ngã tư đường sắt, các cửa phải tự động mở để cho phép các phương tiện đi qua.
Các thành phần được sử dụng
Hệ thống điều khiển cổng đường sắt tự động sử dụng vi điều khiển – Mạch điện
Điều khiển cổng đường sắt tự động sử dụng 3 PCB. Một là cho Nano Arduino, hoạt động như bộ điều khiển của toàn bộ dự án. Hai PCB khác là cần thiết cho các cặp hồng ngoại. Tôi thiết kế tất cả ba PCBs trên eagle CAD phần mềm. Nếu bạn muốn làm cho PCB khắc, tham khảo cả hai con số được đưa ra dưới đây.
Đầu ra của tất cả các cảm biến được kết nối với chân A0, A1, A2 và A3 của Arduino.
Các chân D9 và D10 của Arduino là chân PWM. Những chân này được kết nối với động cơ Servo. Servos được điều khiển bằng cách gửi một xung điện có chiều rộng thay đổi, hoặc điều chế chiều rộng xung (PWM), thông qua dây điều khiển.
Ir cặp được thực hiện với op-amp kép IC LM358. Chỉ cần một IC cho một cặp. Một cài đặt trước được sử dụng để hiệu chuẩn.
Cảm biến hồng ngoại
Hai cặp IR được sử dụng trong dự án. Nếu bạn đã quen thuộc với PCB khắc bạn có thể khắc PCB, nhưng nó không phải là cần thiết để sử dụng PCB khắc, bạn có thể sử dụng hai cảm biến hồng ngoại thay vì một cặp đó là dễ dàng có sẵn trên thị trường.
biến này được giữ ở cả hai bên cổng giao nhau mức như thể hiện trong Hình 1. Tất cả các cảm biến được kết nối với Arduino.
Bốn cảm biến được sử dụng trong dự án như hai cặp hai cảm biến; các cảm
Khi tàu đến từ bất kỳ phía nào, trước tiên nó vượt qua cảm biến1 sau đó vượt qua cảm biến2, bằng cách này Arduino đóng cổng bằng cách gửi tín hiệu đến servomotor. Khi tàu khởi hành từ bất kỳ phía nào nó lần đầu tiên vượt qua cảm biến2 sau đó vượt qua các cảm biến, bằng cách này Arduino mở cửa.
Servomotors được sử dụng trong cổng vì nó rất dễ sử dụng và không yêu cầu bất kỳ trình điều khiển VI MẠCH hoặc mạch. Động cơ Servo có ba chân. Pin đầu tiên là PWM, thứ hai là Vcc và thứ ba là GND. Động cơ Servo nhận tín hiệu PWM từ Arduino và xoay động cơ ở góc cố định theo chu kỳ tín hiệu.
Hiệu chuẩn
Có hai cài đặt trước trong một mạch cặp hồng ngoại. Trước khi hiệu chuẩn đảm bảo rằng đèn LED hồng ngoại và điốt ảnh được đặt trước mặt nhau, và rơi vào Điốt quang
Bây giờ xoay cài đặt trước, cho đến khi đèn LED chỉ báo không phát sáng. Khi một số rào cản được đặt giữa đèn LED và điốt ảnh, đèn LED chỉ báo bắt đầu phát sáng. Quy trình hiệu chuẩn này phải được thực hiện cho tất cả các cảm biến.
Mã chương trình
Tải xuống Mã Chương trình
Trong mã hai thư viện "EEPROM.h" và "Servo.h" được định nghĩa. Trong dự án, hai servomotors được sử dụng như vậy trong dòng thứ tư và thứ năm hai servomotors được định nghĩa là myservo1 và myservo2.
Bây giờ một số số nguyên được khai báo, "pos" là số nguyên vị trí cho servo. Sau đó, bốn cảm biến được tuyên bố là "sensor1", "sensor2", "sensor3" và "sensor4" được sử dụng để kết nối Arduino sau khi nó là một số nguyên được khai báo bằng tên buzzer.
Trong phần thiết lập khoảng trống cả hai động cơ servo được gắn bởi chức năng "myservo1.attach (5)" trong chức năng này 5 là số pin. Bây giờ tất cả bốn cảm biến được tuyên bố là thiết bị đầu vào bằng cách sử dụng chức năng "pinMode(sensor1, INPUT)". Buzzer được tuyên bố là thiết bị đầu ra bằng cách sử dụng chức năng "pinMode(buzzer, OUTPUT)". Bây giờ EEPROM.write(0,0) chức năng được sử dụng để viết EEPROM của Arduino.
Trong phần vòng lặp khoảng trống nếu điều kiện được sử dụng, Khi giá trị trong địa chỉ EEPROM1 và address2 trở thành số không, hệ thống đi vào nếu vòng lặp. Bây giờ một vòng lặp trong khi được sử dụng khi tàu đến và vượt qua hệ thống senaor1 đến trong vòng lặp này, sau đó một nếu được sử dụng khi tàu qua senaor2, EEPROM (0) và EEPROM(1) được cập nhật bởi một. Cách tiếp cận tương tự này được sử dụng cho sensor3 và sensor3.
Một vòng lặp "nếu" được sử dụng trong dòng 48 và nó trở thành sự thật khi giá trị của EEPROM(0) là Zero và EEPROM(1) là Một. Sau khi nó trong khi vòng lặp được sử dụng và nó trở thành sự thật khi tàu qua senaor2 và khi tàu qua senaor1, EEPROM(1) được cập nhật bởi Zero và EEPROM (0) được cập nhật bởi Một. Và cách tiếp cận tương tự này được sử dụng cho sensor4 và sensor3.
EEPROM(1) cho biết tình trạng của cổng, khi giá trị của EEPROM (1) là Một cổng được mở ra và khi EEPROM(1) là Zero gate được đóng lại
Bây giờ trong dòng 65 một vòng lặp nếu được sử dụng, nó trở thành sự thật khi giá trị của EEPROM (1) là Một bây giờ servo xoay từ số không đến 90 độ và cửa mở ra. "digitalWrite" chức năng được sử dụng để làm cho buzzer On and OFF trong dòng 70 và 72. Sau khi tất cả EEPROM (0) được cập nhật về 0. Cách tiếp cận tương tự này được sử dụng để đóng cổng.
Code: 7204-174 Còn hàng
Hotline: 0979 466 469