byte val, task;
bool flag = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
for (int i = 3; i <= 10; i++) {
pinMode(i, OUTPUT);
delay(10);
Serial.println(i);
}
attachInterrupt(digitalPinToInterrupt(2), count, CHANGE);
}
void loop() {
// put your main code here, to run repeatedly:
switch (task) {
case 0:
pushButton();
break;
case 1:
for (int i = 3; i <= 10; i++) {
digitalWrite(i, HIGH);
delay(10);
}
pushButton();
break;
case 2:
pushButton();
for (int i = 3; i <= 10; i++) {
digitalWrite(i, LOW);
delay(10);
}
for (int i = 3; i <= 10; i++) {
digitalWrite(i, HIGH);
delay(1000);
}
break;
case 3:
pushButton();
for (int i = 3; i <= 10; i++) {
digitalWrite(i, LOW);
delay(10);
}
for (int i = 10; i >= 3; i--) {
digitalWrite(i, HIGH);
delay(1000);
}
break;
case 4:
for (int i = 3; i <= 10; i++) {
digitalWrite(i, LOW);
delay(10);
}
break;
}
}
void pushButton() {
if (val == 1) {
task = 1;
delay(10);
}
if (val == 2) {
task = 2;
delay(10);
}
if (val == 3) {
task = 3;
delay(10);
}
if (val == 4) {
task = 4;
if(digitalRead(2) == LOW){
val = 2;
}
delay(10);
}
}
void count(){
pushButton();
if (digitalRead(2) == LOW && flag == false) {
val += 1;
flag = true;
delay(500);
Serial.println("Value Button: " + String(val));
}
else{
flag = false;
delay(250);
}
}