#include <Button.h>
Button btn(13);
const byte led1 = 7;
const byte led2 = 8;
const byte led3 = 9;
const byte led4 = 10;
// Use 4 elements because easier to ref LED1 to nextime[1] (0 based counting)
unsigned long nextTime[4];
int ledState = 0;
byte stopFlag = 0;
int btnState = 0;
void setup() {
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
btn.begin();
}
void loop() {
// put your main code here, to run repeatedly:
if(millis() >= nextTime[1] && stopFlag == 0){ // If LED4 is off, blink every 1.2 seconds
nextTime[1] = millis() + 1200;
ledState = !digitalRead(led1);
digitalWrite(led1,ledState);
}
if(millis() >= nextTime[2]){
nextTime[2] = millis() + random(200,800);
ledState = !digitalRead(led2);
digitalWrite(led2,ledState);
}
if(millis() >= nextTime[3]){
nextTime[3] = millis() + random(400,1200);
ledState = !digitalRead(led3);
digitalWrite(led3,ledState);
}
if(btn.pressed()){
digitalWrite(led4,!digitalRead(led4));
stopFlag = !stopFlag;
digitalWrite(led1,LOW);
}
}