Hi!
I am trying to make a simple police light flasher and want to press a button to change between different flashing modes, but I cant figure out how to do it..
This is my code so far, but the different modes just keeps looping one after the other..
I would gladly appreciate some help ![]()
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int blue1 = 8;
const int blue2 = 3;
const int blue3 = 7;
const int blue4 = 5;
const int blue5 = 6;
const int red1 = 13;
const int red2 = 11;
const int red3 = 12;
const int red4 = 10;
const int red5 = 9;
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current buttonState of the button
int lastButtonState = 0
; // previous buttonState of the button
void setup() {
pinMode(buttonPin, INPUT);
pinMode(blue1, OUTPUT);
pinMode(blue2, OUTPUT);
pinMode(blue3, OUTPUT);
pinMode(blue4, OUTPUT);
pinMode(blue5, OUTPUT);
pinMode(red1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(red4, OUTPUT);
pinMode(red5, OUTPUT);
Serial.begin(9600);
}
void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);
// ======= START PROGRAM NR. 1 =======
if(buttonState == 0){
buttonState = 1;
Serial.println("Program number 1 is running...");
delay(50);
digitalWrite(blue1, HIGH);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, HIGH);
digitalWrite(blue4, HIGH);
digitalWrite(blue5, HIGH);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, HIGH);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, HIGH);
digitalWrite(blue4, HIGH);
digitalWrite(blue5, HIGH);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(red4, HIGH);
digitalWrite(red5, HIGH);
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(red4, HIGH);
digitalWrite(red5, HIGH);
lastButtonState = buttonState;
}
// ======= START PROGRAM NR. 2 ======
if(buttonState == 1);
buttonState = 2;
Serial.println("Program number 2 is running...");
delay(50);
digitalWrite(blue1, HIGH);
digitalWrite(blue2, LOW);
digitalWrite(blue3, HIGH);
digitalWrite(blue4, LOW);
digitalWrite(blue5, HIGH);
digitalWrite(red1, LOW);
digitalWrite(red2, HIGH);
digitalWrite(red3, LOW);
digitalWrite(red4, HIGH);
digitalWrite(red5, LOW);
delay(80);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, LOW);
digitalWrite(blue4, HIGH);
digitalWrite(blue5, LOW);
digitalWrite(red1, HIGH);
digitalWrite(red2, LOW);
digitalWrite(red3, HIGH);
digitalWrite(red4, LOW);
digitalWrite(red5, HIGH);
delay(80);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
/*-----------------------------------------*/
delay(50);
digitalWrite(blue1, LOW);
digitalWrite(blue2, HIGH);
digitalWrite(blue3, LOW);
digitalWrite(blue4, HIGH);
digitalWrite(blue5, LOW);
digitalWrite(red1, HIGH);
digitalWrite(red2, LOW);
digitalWrite(red3, HIGH);
digitalWrite(red4, LOW);
digitalWrite(red5, HIGH);
delay(80);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
delay(50);
digitalWrite(blue1, HIGH);
digitalWrite(blue2, LOW);
digitalWrite(blue3, HIGH);
digitalWrite(blue4, LOW);
digitalWrite(blue5, HIGH);
digitalWrite(red1, LOW);
digitalWrite(red2, HIGH);
digitalWrite(red3, LOW);
digitalWrite(red4, HIGH);
digitalWrite(red5, LOW);
delay(80);
digitalWrite(blue1, LOW);
digitalWrite(blue2, LOW);
digitalWrite(blue3, LOW);
digitalWrite(blue4, LOW);
digitalWrite(blue5, LOW);
digitalWrite(red1, LOW);
digitalWrite(red2, LOW);
digitalWrite(red3, LOW);
digitalWrite(red4, LOW);
digitalWrite(red5, LOW);
lastButtonState = buttonState;