Automatic Railway Crossing Using Arduino
by monusuthar2016 in Circuits > Arduino
57733 Views, 32 Favorites, 0 Comments
Automatic Railway Crossing Using Arduino
Collect the Material
2. L293d motor driver ic or shild
3. Two IR sensor
4. one Dc geared motor 30 RPM
5. 12volt Power supply (SMPS)
6. A toy train
7. A cardboard (as base)
8. solder
9. hot melt gun
10. A buzzer
11. A wooden or plastic rod for gate
12. some wires, screws
Fix the Material on Cardboard
https://youtu.be/1Oc5R_yByNw
you can fix this by using hot melt glue, screw, rubber strip.
2. fix the moter on cardboard as shown in pic by screw or rubber strip.
3. connect a plastic or wooden rod to motor's axis, this is used as gate.
4. fix two IR sensor in both side of gate(motor) and should be at equal distance as shown in my video
https://youtu.be/1Oc5R_yByNw
5. Remove the LED's from circuit of sensor and fix opposite to PHOTO TRANSISTOR and connect by wires
Circuit Connection and Wiring
1. connect the IR sensor's Vcc and GND pin to Arduino
2. connect the output pins of IR sensors to Arduino's pin no 2 and 3
3. connect the pin no 4 and 5 of Arduino to L293D's input pins as shown in circuit.
4. connect the motor as shown in circuit.
5. connect all the connection as shown in circuit.
6. also connect the buzzer to both motors pins.
#program and Code
here code is shown
just copy and paste it
int sensor1=2;
int sensor2=3;
int motor1=4;
int motor2=5;
void setup(){
pinMode(sensor1,INPUT);
pinMode(sensor2,INPUT);
pinMode(motor1,OUTPUT);
pinMode(motor2,OUTPUT);
}
void loop(){
C:
if(sensor1==LOW){
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
delay(500);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,HIGH);
A:
if(sensor2==LOW){
digitalWrite(motor1,LOW);
digitalWrite(motor2,HIGH);
delay(500);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,HIGH);
delay(1000);
goto C;
}goto A;
if(sensor2==LOW){
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
delay(500);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,HIGH);
B:
if(sensor1==LOW){
digitalWrite(motor1,LOW);
digitalWrite(motor2,HIGH);
delay(500);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,HIGH);
delay(1000);
goto C;
}
goto B;
}
}
}
here 500ms delay is used because gate is closed in this time. you can change this according to practical response
Look My Video for More Information
https://youtu.be/1Oc5R_yByNw