No queda otro remedio que controlar las variables una a una, al menos, en mi humilde opinión, puede que alguien sepa algo que yo no sepa.
Si es por cuestión de no repetir muchas veces el mismo codigo puedes usar una función.
Cuando una variable se incrementa o decrementa dentro de un rango y tengo varias, suelo utilizar una funcion incrementar/decrementar.
int incrementar(int &variable, int minimo, int maximo) {
variable++;
if ( variable > maximo ) variable=minimo;
return variable;
}
int decrementar(int &variable, int minimo, int maximo) {
variable--;
if ( variable < minimo ) variable=maximo;
return variable;
}
Dentro del código cuando has de modificar una variable llamo a esas funciones. En tu caso dices que las variables van de 0 a 24, así que cuando haya que incrementar/decrementar una variable llamo a la función:
if ( condicion_incremento ) incrementar(variable, 0, 24);
if ( condicion_decremento ) decrementar(variable, 0, 24);
Si quieres ahorrar aun mas, puedes definir dos variables minimo y maximo fuera de las funciones y simplificar las funciones.
int minino = 0;
int maximo = 24;
int incrementar(int &variable) {
variable++;
if ( variable > maximo ) variable=minimo;
return variable;
}
int decrementar(int &variable) {
variable--;
if ( variable < minimo ) variable=maximo;
return variable;
}
...
void loop() {
..
if ( condicion_incrementar ) incrementar(variable);
if ( condicion_decrementar ) decrementar(variable);
...
}
En la declaración de la función notaras que pongo un "&" delante de la variable.
int incrementar(int &variable)
Eso convierte el parametro en la función en un parametro por referencia, en cristiano, que puedes modificar la variable dentro del código de la función y lo que estaras modificando será la variable que le pases como parametro.