Hello,
I've written some code for some traffic lights with red, amber and green, I'm in the UK so they're running as the UK traffic lights do.
There are two sets of lights that work oppositly to each other, set A and set B.
Whilst the code I've written probably isn't very efficient (noob) it does work perfectly on the breadboard.
What I'd like to do is add in a button that puts both sets of lights to red and then after a delay starts the loop cycle from the start again.
With much googling I haven't been able to find out how to do it.
I've tried putting in an attachInterupt but this does nothing.
Can anybody help?
This is my original code that runs the lights but what do I need to code in to put all to red when the button is pressed?
BTW the pins aren't logical becasue I did it with just red and green and then altered it to add in the amber lights too.
void setup() {
// put your setup code here, to run once:
}
#define ARED 3
#define AAMBER 4
#define AGREEN 2
#define BRED 6
#define BAMBER 8
#define BGREEN 7
void loop() {
pinMode(ARED,OUTPUT);
pinMode(AAMBER,OUTPUT);
pinMode(AGREEN,OUTPUT);
pinMode(BRED,OUTPUT);
pinMode(BAMBER,OUTPUT);
pinMode(BGREEN,OUTPUT);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,LOW);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,HIGH);
delay(10000);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,LOW);
digitalWrite(BAMBER,HIGH);
digitalWrite(BGREEN,LOW);
delay(3000);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,LOW);
delay(3000);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,HIGH);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,LOW);
delay(3000);
digitalWrite(ARED,LOW);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,HIGH);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,LOW);
delay(10000);
digitalWrite(ARED,LOW);
digitalWrite(AAMBER,HIGH);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,LOW);
delay(3000);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,LOW);
digitalWrite(BGREEN,LOW);
delay(3000);
digitalWrite(ARED,HIGH);
digitalWrite(AAMBER,LOW);
digitalWrite(AGREEN,LOW);
digitalWrite(BRED,HIGH);
digitalWrite(BAMBER,HIGH);
digitalWrite(BGREEN,LOW);
delay(3000);
// put your main code here, to run repeatedly:
}