#include <Servo.h>
const int buttonPin = 11; // Pin where the button is connected
const int servoPin = 10; // Pin where the servo is connected
Servo myServo;
int buttonState = 0; // Variable for reading the button status
void setup() {
pinMode(buttonPin, INPUT);
myServo.attach(servoPin);
myServo.write(0); // Initial position of the servo
digitalWrite(9,OUTPUT); //train crossing lights
digitalWrite(8,OUTPUT);
digitalWrite(2,OUTPUT); //stop lights
digitalWrite(3,OUTPUT);
digitalWrite(4,OUTPUT);
digitalWrite(5,OUTPUT);
digitalWrite(6,OUTPUT);
digitalWrite(7,OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
myServo.write(90); // Rotate the servo to 90 degrees
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
delay(750);
digitalWrite(9,HIGH);
digitalWrite(8,LOW);
delay(750);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
}
else {
myServo.write(0); // Rotate the servo back to 0 degrees
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(2,HIGH); //stop lights
digitalWrite(3,LOW); // cycle 1
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(2000);
digitalWrite(2,HIGH); //stop lights
digitalWrite(3,LOW); //cycle 2
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(2000);
digitalWrite(2,LOW); //stop lights
digitalWrite(3,LOW); // cycle 3
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(2000);
digitalWrite(2,LOW); //stop lights
digitalWrite(3,HIGH); // cycle 4
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(2000);
digitalWrite(2,HIGH); //stop lights
digitalWrite(3,LOW); // cycle 5
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(2000);
digitalWrite(2,LOW); //stop lights
digitalWrite(3,LOW); // cycle 6
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(2000);
digitalWrite(2,LOW); //stop lights
digitalWrite(3,HIGH); // cycle 7
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay(2000);
digitalWrite(2,HIGH); //stop lights
digitalWrite(3,LOW); // cycle 8
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(2000);
}
delay(15); // Small delay to stabilize the servo position
}