const int switchPin = 2;
const int startPin = 3; // switch is connected to pin 2
const int ledPin = 13; // led on pin 13
int buttonPresses = 0; // how many times the button has been pressed
int lastPressCount = 0; // to keep track of last press count
bool clevermode = false;
bool bloommode = false;
bool bteamode = false;
bool gteamode = false;
bool start = false;
int seconds = 0;
void setup() {
pinMode(startPin, INPUT);
pinMode(switchPin, INPUT); // Set the switch pin as input
Serial.begin(9600); // Set up serial communication at 9600bps
}
void loop(){
if (digitalRead(switchPin) == LOW) // check if button was pressed
{
buttonPresses++; // increment buttonPresses count
delay(250); // debounce switch
}
if (buttonPresses == 4) buttonPresses = 0; // rollover every fourth press
if (lastPressCount != buttonPresses) // only do output if the count has changed
{
Serial.print ("Button press count = "); // out to serial
Serial.println(buttonPresses, DEC);
if (buttonPresses == 0){
clevermode=true;
bloommode=false;
bteamode=false;
gteamode=false;
seconds=30;
}
if (buttonPresses == 1){
bloommode=true;
clevermode=false;
bteamode=false;
gteamode=false;
seconds=20;
}
if (buttonPresses == 2){
bteamode=true;
clevermode=false;
bloommode=false;
gteamode=false;
seconds=10;
}
if (buttonPresses == 3){
gteamode=true;
bteamode=false;
clevermode=false;
bloommode=false;
seconds=5;
}
lastPressCount = buttonPresses; // track last press count
}
if (digitalRead(startPin) == LOW) // check if button was pressed
{
start=true;
delay(250);
}
if (start == true && clevermode == true){
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
seconds -=1;
Serial.println(seconds);
}
if (start == true && bloommode == true){
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
seconds -=1;
Serial.println(seconds);
}
if (start == true && bteamode == true){
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
seconds -=1;
Serial.println(seconds);
}
if (start == true && gteamode == true){
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
seconds -=1;
Serial.println(seconds);
}
if(seconds<=0){
start=false;
seconds=10;
}
}