The problem is that it will only go through the POT case once, if you want it to repeatedly read the potentiometer, and then change the LED brightness, you would have to put the case in a loop. So, you might do something like this: case POT: int Mode = digitalRead(BUTTONPIN); while(Mode == LOW) { val = (analogRead(pot) / 4); analogWrite(LED_PIN, val); Serial.println(val); state = OFF; break; Mode = digitalRead(BUTTONPIN); } }