Thank you everyone for you're help! Especially you sterretje!
He helped me clean up my code as well as fix the issue. To stop my program setup from running twice I had to put in a case 0:
Here is the updated code just so it might help others with a similar issue! Thank you again!
#define button 3
int state = 0;
int old = 0;
int buttonPoll = 0;
int eye = 5;
bool doneFlag = 0;
void flicker(){
delay (10);
analogWrite (eye, 100); //turn eyes to 100 brightness
delay (50);
analogWrite (eye, 0); //turn eyes to off
delay (30);
analogWrite (eye, 100); //turn eyes to 100 brightness
delay (50);
analogWrite (eye, 0); //turn eyes to off
delay (30);
analogWrite (eye, 100); //turn eyes to 100 brightness
delay (150);
analogWrite (eye, 0); //turn eyes to off
delay (30);
analogWrite (eye, 125); //turn eyes to 125 brightness
delay (175);
analogWrite (eye, 0); //turn eyes to off
delay (5);
}
void fade(){
delay (5);
for (int brightness = 25; brightness <255; brightness += 5)
{
analogWrite (eye, brightness);
delay (20);
}
}
void setup() {
// put your setup code here, to run once:
pinMode (eye, OUTPUT);delay (50);
pinMode (button, INPUT);
flicker(); //Run Flicker Function
fade(); //Run Fade Function
}
void loop() {
buttonPoll = digitalRead(button);
if(buttonPoll == 1) {
delay(50);
buttonPoll = digitalRead(button);
if(buttonPoll == false) {
state = old + 1;
}}
else{
delay(100);
}
switch (state) {
case 0:
analogWrite(eye, 255);
old = state;
break;
case 1: //if state is 2
doneFlag = false; //if state is 1
analogWrite(eye, 48); //eyes at 18%
old = state; //set old stste as current state 2
break;
case 2: //if state is 2
analogWrite(eye, 24); //eyes at 9%
old = state; //set old state as current state 3
break;
case 3: //if state is 3
analogWrite(eye, 8); //eyes at 4.5%
old = state; //set old state as current state 4
break;
case 4: //if state is 4
analogWrite(eye, 0); //eyes at 6%
old = state; //set old state as current state 4
break;
default: //if state is not 1,2,3,4
if (doneFlag == false) {
flicker(); //Run Flicker Function
fade(); //Run Fade Function
doneFlag = true;
}
old = 0;
break;
}
}