// Sketch for testing switch between loops for LED patterns
int buzzerPin = 9;
int pinSwitch = 2;
unsigned long lastMilli = 0;
int intervalDelay = 500;
byte mode = 0;
unsigned long lastCheck = 0;
int intervalDebounce = 50;
void setup()
{
pinMode(9, OUTPUT);
pinMode(pinSwitch, INPUT_PULLUP);
// initialize serial communication:
Serial.begin(9600);
}
void loop()
{
if (millis() - lastCheck >= intervalDebounce) {
lastCheck = millis();
if (digitalRead(pinSwitch) == HIGH) {
if (mode != 1) {
Serial.println("Mode 1");
mode = 1;
}
intervalDelay = 500;
}
else {
if (mode != 2) {
Serial.println("Mode 2");
mode = 2;
}
}
}
switch (mode) {
case 1: loop1(); break;
case 2: loop2(); break;
}
}
// primer loop
void loop1() {
if (millis() - lastMilli >= intervalDelay) {
lastMilli = millis();
digitalWrite(9, !digitalRead(9));
}
}
//effector loop
void loop2() {
if (millis() - lastMilli >= intervalDelay) {
lastMilli = millis();
if (!digitalRead(9)) intervalDelay = 1000; else intervalDelay = 500;
digitalWrite(9, !digitalRead(9));
}
}