Working on Traffic Light System

Hello everyone I was working on the traffic light system for the Arduino uno board and I having trouble with my Main Street button I got the Side to work so that when it's pressed it changes the light and then goes back to the default state of main street green side street red, but I can't get it so that when the main street button is pressed it will go back to side street being red and main street green. Here is my code so far.

#define MainStreetButton 7
#define SideStreetButton 13
#define SideStreetRed 4
#define SideStreetYellow 3
#define SideStreetGreen 2
#define MainStreetRed 12
#define MainStreetYellow 11
#define MainStreetGreen 10

boolean trafficMainStreet = true; // MainStreet = true, SideStreet = false

int flowTime = 15000; // traffic passing time (15000 = 30 seconds)
int changeDelay = 2000; // color change time (2000 = 4 seconds)
int ssflowTime = 2000; // traffic passing time (2000 = 4 seconds)

void setup(){
pinMode(MainStreetButton, INPUT);
pinMode(SideStreetButton, INPUT);
pinMode(MainStreetRed, OUTPUT);
pinMode(MainStreetYellow, OUTPUT);
pinMode(MainStreetGreen, OUTPUT);
pinMode(SideStreetRed, OUTPUT);
pinMode(SideStreetYellow, OUTPUT);
pinMode(SideStreetGreen, OUTPUT);

//MainStreet side starts with green first
digitalWrite(MainStreetRed, LOW);
digitalWrite(MainStreetYellow, LOW);
digitalWrite(MainStreetGreen, HIGH);
digitalWrite(SideStreetRed, HIGH);
digitalWrite(SideStreetYellow, LOW);
digitalWrite(SideStreetGreen, LOW);
}

void loop()
{
if (digitalRead(MainStreetButton) == HIGH ) {
if ( trafficMainStreet != true ) {
trafficMainStreet = true;

delay(ssflowTime);
digitalWrite(SideStreetGreen, LOW);
digitalWrite(SideStreetYellow, HIGH);
delay(changeDelay);
digitalWrite(SideStreetYellow, LOW);
digitalWrite(SideStreetRed, HIGH);
delay(changeDelay);

digitalWrite(MainStreetYellow, LOW);
digitalWrite(MainStreetRed, LOW);
digitalWrite(MainStreetGreen, HIGH);
}
}

else if(digitalRead(MainStreetButton) == LOW ){
if ( trafficMainStreet != true ) {
trafficMainStreet = true;

delay(flowTime);
digitalWrite(SideStreetGreen, LOW);
digitalWrite(SideStreetYellow, HIGH);
delay(changeDelay);
digitalWrite(SideStreetYellow, LOW);
digitalWrite(SideStreetRed, HIGH);
delay(changeDelay);

digitalWrite(MainStreetYellow, LOW);
digitalWrite(MainStreetRed, LOW);
digitalWrite(MainStreetGreen, HIGH);
}
}

if ( digitalRead(SideStreetButton) == HIGH ) {
if ( trafficMainStreet == true ) {
trafficMainStreet = false;
delay(flowTime);
digitalWrite(MainStreetGreen, LOW);
digitalWrite(MainStreetYellow, HIGH);
delay(changeDelay);
digitalWrite(MainStreetYellow, LOW);
digitalWrite(MainStreetRed, HIGH);
delay(changeDelay);

digitalWrite(SideStreetYellow, LOW);
digitalWrite(SideStreetRed, LOW);
digitalWrite(SideStreetGreen, HIGH);
delay(flowTime);
}
}
}

welcome to the forums.

please be so kind as to read the first post in any forum entitled how to use this forum.
then skoot down to item #7 about how to post your code.

there is a way this forum and all users want to see code.

then come back to your posts and edit it (lower right of your post screen) add the code tags and make us happy.

Hi,
dave..

welcome to the forums.

please be so kind as to read the first post in any forum entitled how to use this forum.
then skoot down to item #7 about how to post your code.

there is a way this forum and all users want to see code.

then come back to your posts and edit it (lower right of your post screen) add the code tags and make us happy.

can I copy that to my notepad for further use, if you may be so kind.. I like it, its explanatory and informative. :slight_smile:

Tom... :slight_smile:

Right, first things first.

Go and read the instructions, then go back and modify your post (use the "More --> Modify" option to the bottom right of the post) to mark up the code as such so we can review it conveniently and accurately.

(Alternate version.)

TomGeorge:
Hi,
dave..can I copy that to my notepad for further use, if you may be so kind.. I like it, its explanatory and informative. :slight_smile:

Tom... :slight_smile:

please do !
I posted a suggestion to the moderators that a new member would have to read that thread,
then answer questions. a test.
one of which would be how to write a subject line
another would be to post some code.
pass the test and you can post.