const int LED1 = 13; // the number of the LED pin
const int LED2 = 12; // the number of the LED pin
const int LED3 = 11; // the number of the LED pin
int ms = 400; // The duration of the flashing in milliseconds
int state = 0;
int count = 0;
const int buttonPin = 2; // the pin that the pushbutton is attached to
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button
void setup() {
pinMode(LED1, OUTPUT); //Set the output pin
pinMode(LED2, OUTPUT); //Set the output pin
pinMode(LED3, OUTPUT); //Set the output pin
pinMode(buttonPin, INPUT); // initialize the button pin as a input:
Serial.begin(9600); //Set the output pin
}
void together() {
digitalWrite(LED1, HIGH); //Each LED current state
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
}
void traffic() {
digitalWrite(LED1, HIGH); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, HIGH);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(ms); //Flash delay in milliseconds
}
void flashing() {
digitalWrite(LED1, HIGH); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, HIGH); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //Each LED current state
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
delay(ms); //Flash delay in milliseconds
digitalWrite(LED1, LOW); //LED1 is turned on
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
delay(ms); //Flash delay in milliseconds
}
void loop() { //State and count identifier
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
buttonPushCounter++;
if (count == 4) {
count = 5;
}
Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
Serial.println("off");
}
delay(50);
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0) {
together();
}
if (buttonPushCounter % 3 == 0) {
traffic();
}
if (buttonPushCounter % 4 == 0) {
flashing();
}
}