Here it goes..
added 3 new mState.
const byte maximumState = 7;
case 5 : clear the leds and go on with next mState
case 5:
clearLEDs();
mState=6;
break;
case 6: FadeIn, when it is finished go on with the next mState
case 6:
if (flag == true && millis() - commonMillis >= 5 )
{
//restart the TIMER
commonMillis = millis();
//green
tira.setPixelColor(0, 0, greenColor, 0);
tira.setPixelColor(1, 0, greenColor, 0);
tira.setPixelColor(2, 0, greenColor, 0);
tira.setPixelColor(3, 0, greenColor, 0);
tira.setPixelColor(4, 0, greenColor, 0);
tira.setPixelColor(5, 0, greenColor, 0);
tira.setPixelColor(6, 0, greenColor, 0);
tira.setPixelColor(7, 0, greenColor, 0);
tira.setPixelColor(8, 0, greenColor, 0);
tira.setPixelColor(9, 0, greenColor, 0);
tira.setPixelColor(10, 0, greenColor, 0);
tira.setPixelColor(11, 0, greenColor, 0);
tira.setPixelColor(12, 0, greenColor, 0);
tira.setPixelColor(13, 0, greenColor, 0);
tira.setPixelColor(14, 0, greenColor, 0);
tira.show();
greenColor++;
}
if(greenColor>=255){
mState=7;
}
break;
case 7: FadeOut the pixels and loop with case 6
case 7:
if (flag == true && millis() - commonMillis >= 5 )
{
//restart the TIMER
commonMillis = millis();
//green
tira.setPixelColor(0, 0, greenColor, 0);
tira.setPixelColor(1, 0, greenColor, 0);
tira.setPixelColor(2, 0, greenColor, 0);
tira.setPixelColor(3, 0, greenColor, 0);
tira.setPixelColor(4, 0, greenColor, 0);
tira.setPixelColor(5, 0, greenColor, 0);
tira.setPixelColor(6, 0, greenColor, 0);
tira.setPixelColor(7, 0, greenColor, 0);
tira.setPixelColor(8, 0, greenColor, 0);
tira.setPixelColor(9, 0, greenColor, 0);
tira.setPixelColor(10, 0, greenColor, 0);
tira.setPixelColor(11, 0, greenColor, 0);
tira.setPixelColor(12, 0, greenColor, 0);
tira.setPixelColor(13, 0, greenColor, 0);
tira.setPixelColor(14, 0, greenColor, 0);
tira.show();
greenColor--;
}
if(greenColor<=50){
mState=6;
}
break;
The problem is that if you push the button on mState6 it doesn´t work. Because is on mState 6 and goes to mState 7 again.