It's in the bottom part of the code
#define MRELAY1 8// Drives a relay to which operates a soleniod to open gate1
#define MRELAY2 2// Drives a relay to which operates a soleniod to open gate2
#define MRELAY3 4// This drives a soleniod to switch earth
#define MRELAY4 3// This relay is for forward/reverse of motor
#define MRELAY5 10// This relay is for forward/reverse of motor
#define SWITCH1 12// This is a infrared sensor to detect when a can is in chute
#define REED1 7// This is a reed switch to stop motor at a distance when in reverse
int val = 0;
int val2 = 0;
void setup() {
pinMode(MRELAY1, OUTPUT);
pinMode(MRELAY2, OUTPUT);
pinMode(MRELAY3, OUTPUT);
pinMode(MRELAY4, OUTPUT);
pinMode(MRELAY5, OUTPUT);
pinMode(SWITCH1, INPUT);
pinMode(REED1, INPUT);
}
void loop() {
val = digitalRead(SWITCH1);// Read infrared sensor
if (val == LOW) {
delay(50);// Wait
digitalWrite(MRELAY1, HIGH);// Open frist gate
delay(2000);// Wait 2 seconds
digitalWrite(MRELAY1, LOW);// Turn off first gate
delay(2000);// Wait 2 seconds
digitalWrite(MRELAY5, HIGH);// Open second gate
delay(2000);// Wait 2 seconds
digitalWrite(MRELAY5, LOW);// Turn off second gate
delay(3000);// Wait 3 seconds
digitalWrite(MRELAY2, HIGH);// Swicth earth relay to drive motor forward
delay(10000);// wait 10 seconds
digitalWrite(MRELAY2, LOW);// Turn off earth relay stop driving motor
delay(3000);// wait 3 seconds
digitalWrite(MRELAY2, HIGH);// Turn on eatrh relay
digitalWrite(MRELAY4, HIGH);// swicth relay over to reverse motor
digitalWrite(MRELAY3, HIGH);// swicth relay over to reverse motor
delay(4000);// wait 4 seconds
}
val2 = digitalRead(REED1);// read reed switch to stop motor reversing at a set point
if (val2 == HIGH){
delay(500);// wait half a second
digitalWrite(MRELAY3, LOW);// Turn off earth relay stop the motor reversing
digitalWrite(MRELAY4, LOW);// Turn off relay for reverse
digitalWrite(MRELAY2, LOW);// turn off relay for reverse
}else{
digitalWrite(MRELAY1, LOW);// Do not activate first gate
}
}