Hi I'm trying to build a four way traffic light controller with two Pedestrian crossing
I have the some code done but find it hard to input interrupt into the code,
any help on this would be great
this is my program so far
//traffic light systems
// Programmed by, peter thunder
//03/02/2017
int Redlane1 = 22;
int yellowlane1 = 24;
int greenlane1 = 26;
int redlane2 = 32;
int yellowlane2 = 34;
int greenlane2 = 36;
int redps1 = 42;
int greenps1 = 44;
int redps2 = 50;
int greenps2 = 52;
int track1 = 10;
int track2 = 11;
int buttonps1 = 3;
int buttonps2 = 2;
void setup() {
pinMode (Redlane1, OUTPUT);
pinMode (yellowlane1, OUTPUT);
pinMode (greenlane1, OUTPUT);
pinMode (redlane2, OUTPUT);
pinMode (yellowlane2, OUTPUT);
pinMode (greenlane2, OUTPUT);
pinMode (redps1, OUTPUT);
pinMode (greenps1, OUTPUT);
pinMode (redps2, OUTPUT);
pinMode (greenps2, OUTPUT);
pinMode (track1, OUTPUT);
pinMode (track2, OUTPUT);
pinMode (buttonps1, INPUT);
pinMode (buttonps2, INPUT);
attachInterrupt(0, pin_isr, CHANGE);
}
void loop() {
digitalWrite(Redlane1, HIGH);
digitalWrite(greenlane2, HIGH);
digitalWrite(redlane2,LOW);
digitalWrite(redps1, HIGH);
digitalWrite(redps2, HIGH);
delay(5000);
digitalWrite(greenlane2, LOW);
digitalWrite(yellowlane2, HIGH);
digitalWrite(redps1, HIGH);
digitalWrite(redps2, HIGH);
delay(2000);
digitalWrite(yellowlane2, LOW);
digitalWrite(redlane2, HIGH);
delay(4000);
digitalWrite(Redlane1, LOW);
digitalWrite(greenlane1, HIGH);
digitalWrite(redps1, HIGH);
digitalWrite(redps2, HIGH);
delay(8000);
digitalWrite(greenlane1, LOW);
digitalWrite(redlane2, HIGH);
digitalWrite(yellowlane1, HIGH);
digitalWrite(redps1, HIGH);
digitalWrite(redps2, HIGH);
delay(4000);
digitalWrite(yellowlane1, LOW);
digitalWrite(Redlane1, HIGH);
delay(4000);
}
{
buttonState = digitalRead(buttonps1);
delay (2000);
digitalWrite(redps1, LOW);
digitalWrite(greenps1, HIGH);
delay (5000);
digitalWrite(greenps1,LOW);
delay (250);
digitalWrite(greenps1,HIGH);
delay (250);
digitalWrite(greenps1,LOW);
delay (250);
digitalWrite(greenps1,HIGH);
delay (250);
digitalWrite(greenps1,LOW);
delay (250);
digitalWrite(greenps1,HIGH);
delay (250);
digitalWrite(greenps1,LOW);
delay (250);
digitalWrite(greenps1,HIGH);
delay (250);
digitalWrite(greenps1,LOW);
digitalWrite(redps1,HIGH);
delay (1000);
}