基于Arduino和红外传感器的铁路闸门自动控制系统

在过去的5年里,大约一百万人在世界各地的无人铁路交叉路口去世。至少1/3rd.其中的铁路道口无人值守,因为它们的位置偏远和较少的交通。的基于红外传感器和Arduino的铁路闸门自动控制系统侧重于既有人和无人驾驶的铁路门的系统交通管制。该项目不仅将使系统更可靠,而且精确,而且还拯救了当局雇用人力才能完成这项工作。您可以将其作为持续投资。

自动铁路门控制系统项目利用Arduino Nano.控制整个电路。两个伺服电机用于打开和关闭铁路门。四个IR传感器用于感知火车的到来或出发。当火车接近它时,主要目标是关闭铁路门,以阻止车辆穿过轨道。一列火车远离铁路交叉的远离铁路,门必须自动打开,以允许车辆交叉。

使用的组件

组件 规范 数量
arduino. 纳米 1
伺服电机 `2
蜂鸣器 1
红外LED 4.
光电二极管 4.
lm358 2
预设 10k. 4.
适配器 12V. 1
引领 红色的 4.
电阻器 10k. 4.
电阻器 330欧姆 8.
玩具火车 1

基于单片机的铁路闸门自动控制系统-电路

自动铁路门控制使用3个PCB。一个是arduino nano,它用作整个项目的控制器。IR对需要另外两个PCB。我设计了Eagle CAD软件上的所有三个PCB。如果要进行蚀刻PCB,请参阅下面给出的图。

自动铁路闸门控制- PCB设计
自动铁路闸门控制- Arduino Nano的PCB设计

自动铁路门控制系统项目 -  PCB设计
自动铁路门控制系统项目 - 用于IR传感器对的PCB设计

Arduino Nano PCB轨道
Arduino Nano PCB轨道

IR传感器对 -  PCB轨道
红外传感器对- PCB轨道

基于Arduino和红外传感器的铁路闸门自动控制

如果你想在零PCB或实验板上制作电路,请参考下面给出的两个图。

IR对采用LM358运算放大器
IR对采用LM358运算放大器

自动铁路闸门控制-电路图
自动铁路门控制 - 电路图

所有传感器的输出连接到Arduino的A0,A1,A2和A3引脚。

arduino的引脚D9和D10是PWM引脚。这些引脚连接到伺服电机。通过通过控制线发送可变宽度或脉冲宽度调制(PWM)的电脉冲来控制伺服。

IR对采用双运放IC LM358制作。一对只需要一个IC。预置用于校准。

红外传感器

项目中使用了两枚红外对。如果您熟悉PCB蚀刻,则可以蚀刻PCB,但没有必要使用蚀刻的PCB,您可以使用两个IR传感器而不是在市场上轻松获得的一对。

红外连接
红外连接

如果您使用的是现成的IR传感器,请将“<”更换为“>”和“>”在代码中的“<”,因为现成的IR传感器的输出是反转项目中使用的传感器对。

工作

铁路闸门自动控制系统
铁路闸门自动控制系统

该项目中使用四个传感器作为两对两个传感器;如图1所示,这些传感器保持在级联交线栅极的两侧。所有传感器都连接到Arduino。

沿铁路轨道放置的红外传感器
沿铁路轨道放置的红外传感器

当火车从任何一侧到达时,首先通过传感器1,再通过传感器2,Arduino通过发送信号给伺服电机关闭闸门。当火车从任何一侧出发时,首先通过传感器2,然后再通过传感器2,这样Arduino就打开了大门。

伺服电动机在门中使用,因为它非常易于使用并且不需要任何驱动器IC或电路。伺服电机有三个引脚。第一引脚是PWM,第二个是VCC,第三是GND。伺服电机从Arduino接收PWM信号,并根据信号的占空比以固定角度旋转电机。

控制系统概述
控制系统概述

校准

IR对电路中有两个预设。在校准之前,请确保IR LED和照片二极管彼此前面放置,并落在光电二极管上

现在旋转预设,直到指示灯LED不发光。当LED和光电二极管之间放置一些屏障时,LED指示灯开始发光。所有传感器都必须执行此校准程序。

视频

在视频中,封闭和打开的门的速度很慢,所以如果你将使用慢火车会更好。为了增加,打开和关闭的速度降低了线71,73,84和86的延迟。

计划代码

下载程序代码

在代码中定义了两个库“EEPROM.h”和“Servo.h”。在项目中,使用了两个伺服电机,因此在第四和第五行两个伺服电机被定义为myservo1和myservo2。

现在,某些整数被声明,“POS”是伺服的位置整数。之后,将四个传感器声明为命名为“Sensor1”,“Sensor2”,“Sensor3”和“Sensor4”用于连接Arduino之后由名称蜂鸣器声明。

在void设置部分中,伺服电机通过功能附加“myservo1.attach(5)”在此功能5中是PIN数。现在,所有四个传感器都通过使用功能“Pinmode(Sensor1,输入)”声明为输入设备。蜂鸣器被声明为使用功能“Pinmode(蜂鸣器,输出)”输出设备。现在EEPROM.WRITE(0,0)函数用于编写Arduino的EEPROM。

在void循环段中使用if条件,当EEPROM address1和address2中的值为0时,系统进入if循环。现在当火车经过senor1系统进入这个循环时使用while循环,之后当火车经过senor2时使用if循环,EEPROM(0)和EEPROM(1)被更新为1。同样的方法也用于sensor3和sensor3。

另一个“如果”循环在第48行中使用,并且当EEPROM(0)的值为零时变为真,并且EEPROM(1)是一个。在使用循环时,当火车交叉时,当火车交叉时变为真实,当火车交叉时,EEPROM(1)由零更新,并且EEPROM(0)由一个更新。这种相同的方法用于Sensor4和Sensor3。

EEPROM(1)表示门的状态,当EEPROM(1)的值为“One gate”时打开,当EEPROM(1)的值为“Zero gate”时关闭

现在在第65行使用了一个if循环,当EEPROM(1)的值为1时,它变成真,现在伺服从0°旋转到90°,门打开。“digitalWrite”功能用于使蜂鸣器在第70和72行On和OFF。在所有EEPROM(0)被更新为0之后。同样的方法也用于关闭大门。

作者

13.注释

  1. Aaryan辛格

    我们可以在亚马逊上提供IR传感器模块吗?

  2. Siddhant Kumar.

    先生,
    请描述这种情况......
    如果有人被困在铁路轨道上,大门就关闭了。

  3. jaymees

    如何创建一个传感器电路。教他们

  4. Harsha.

    兄弟,你用4个红外传感器可以用2个吗??

  5. vaishnavi.p

    先生,我们应该使用PCB,然后建立你给出的电路。你能讲清楚一点吗?如果你能尽早这样做,那将非常有帮助。谢谢你!

  6. Nilesh Kumar.

    我使用12V,2a(最大)适配器和IC asm1117被烧毁。我现在应该做什么?

  7. rohit.

    先生。我需要你的帮助,请帮助我我是这个项目,但这不起作用我调整了预设,但LED总是发光请帮助我

  8. Kartikey chauhan

    太棒了。
    可以用nodemcu esp8266编程而不是arduino吗?
    当我们使用nodemcu esp8266而不是arduino时,代码是否需要更改或连接需要更改?

  9. Akash Chohdhary.

    先生,在第43行中,您正在使用逻辑“或”运算符。我有点困惑。我认为它应该是逻辑的“和”。请你澄清我的怀疑。

  10. Atchaya Rajenthiran.

    代替使用两个arduino,我们可以使用一个时间日为单个红外传感器打开或关闭大门!

    • Akash Chohdhary.

      您可以使用一个传感器代替对,但随后缺点将是传感器将打开门,即使任何人都会在轨道上行走。这里的程序基本上基于火车的长度。通过使用对传感器,我们可以防止不需要的人类检测人类。

      这就是我在我的实验室中理解和执行的。

  11. Keerthi.

    这么好的项目。我的印象
    我想要这个工具包,要多少钱