Solo busqué algun while dentro del programa.
Cuando entras a un menú o a un submenú, estos esperan hasta que hagas algo, por lo tanto el resto del programa de arduino no está funcionando y el led no cambiará hasta que salgas del menú o submenú con la opción guardar y salir.
Escribiré codigo ejemplo para ilustrar la opción por la que optaría para cambiar el brillo de un led sin tomar tantas consideraciones como el valor máximo o mínimo que debe tener la variable.
//SUbmenu ejemplo
void SubMenu (){
while(true){
. analogWrite(LED, BrilloLed);//Esto es lo que controla el brillo y código similar debe estar por fuera
//del menú del programa que tienes hay.
. switch (Var){
. . case a:
. . BrilloLed++;
. . break;
. .
. .
. . case b:
. . BrilloLed--;
. . break;
. .
. . case c:
. . Return;//Con esto sales del método SubMenu
. . break;
. .
. }
.
}
}
Ahora a buscar algo similar en tu programa con este ejemplo.
Espero y sirva la ayuda.