Hi everybody!
I dearly need some help with this sketch!
I have a toggle switch on a MEGA 2560.
Each time the switch is pushed, a counter goes up by 1. Reachind "8", it is reset to "0".
This part just works fine.
BUT: When I add the Switch Case, it gets stuck in "case 1". The serial printer gives out "mainSwitchcounter1?" and "1". On and on.
And the LED does "on/off" forever. So the "break" does not work.
What am I missing?
Your help would be highly appreciated!!!
// for MEGA 2560
// Each time the mainSwitch is activated, the counter goes up by 1 and calls up a corresponding Switch Case section which lights up an LED
//Sketch gets stuck in case 1
int mainSwitch = 9; // Toggle Switch
int buttonState = 0;
int lastButtonState = 0;
const int ledPin1 = 2; // the number of the LED pin which indicates the Switch Case section
const int ledPin2 = 3;
const int ledPin3 = 4;
const int ledPin4 = 5;
const int ledPin5 = 6;
const int ledPin6 = 7;
const int ledPin7 = 8;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
pinMode(ledPin6, OUTPUT);
pinMode(ledPin7, OUTPUT);
pinMode(mainSwitch, INPUT);
Serial.begin(9600);
}
void loop() {
buttonState = digitalRead(mainSwitch);
// checking the mainSwitch
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
mainSwitchcounter++;
Serial.println("mainSwitchcounter");
Serial.println(mainSwitchcounter);
}
}
delay(1000);
// Switch Case with 7 sections. Each indicated by LED if triggered
switch(mainSwitchcounter) {
case 1: // "break" doesn`t work. LED is switched on/off indefinitely. Serialprint says mainSwitchcounter1? and "1"
digitalWrite(ledPin1, HIGH);
Serial.println("mainSwitchcounter1?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin1,LOW);
break;
case 2:
digitalWrite(ledPin2, HIGH);
Serial.println("mainSwitchcounter2?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin2,LOW);
break;
case 3:
digitalWrite(ledPin3, HIGH);
Serial.println("mainSwitchcounter3?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin3,LOW);
break;
case 4:
digitalWrite(ledPin4, HIGH);
Serial.println("mainSwitchcounter4?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin4,LOW);
break;
case 5:
digitalWrite(ledPin5, HIGH);
Serial.println("mainSwitchcounter5?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin5,LOW);
break;
case 6:
digitalWrite(ledPin6, HIGH);
Serial.println("mainSwitchcounter6?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin6,LOW);
break;
case 7:
digitalWrite(ledPin7, HIGH);
Serial.println("mainSwitchcounter7?");
Serial.println(mainSwitchcounter);
delay(2000);
digitalWrite(ledPin7,LOW);
break;
}
// Resets the mainSwitchcounter to 0
if (mainSwitchcounter >= 8) {
mainSwitchcounter = 0;
}
}