crear una variable formada por un nombre fijo y un dato variable? resuelto

Hola.... Pues eso como indico en el asunto, como se puede hacer eso?

void xxxx( byte pulsador, byte VALOR, byte r, byte v, byte sr){
                                   
      if (digitalRead(pulsador)==LOW && VALOR==0) 
       {
         VALOR=1;        
         expander.digitalWrite(r,HIGH);
         expander.digitalWrite(v,LOW); 
           if(confsalida == true){
              expander2.digitalWrite(sr, HIGH);
            }
           else 
              expander2.digitalWrite(sr, LOW);      
            ...............
..................
...............

falta mas codigo pero para ver lo que os pregunto es suficiente. La variable VALOR tiene una parte fija pero la otra cambia entre 1 y 8 osea VALOR1, VALOR2, VALOR3......

Como se puede hacer? espero que se me entienda :wink:
Un saludo y gracias!!

Pues no creas que se te entiende muy bien, aunque igual te refieres a los arrays.
int valores[5]={16, 25, 33, 12, 100};

crea un array de enteros:

valores[0]=16
valores[1]=25
valores[2]=33
y asín sucesivamente...

Gracias noter, intentare explicarme mejor....

Imagina que tienes una parte de código que se repite todo el rato (unas 20 veces), pero que solo cambia las variables, para ahorrar espacio creo un void con la parte de código que se repite y añado las variables (pin de entrada, pin de salida.....) todas estas son solo números, pero una de ellas es texto y numero VALOR1, VALOR2..... lo que pregunto es como puedo hacer que esa variable la acepte, osea que fuese el texto + el numero y así solo declarar el numero en el void(pin de entrada, pin de salida, Numero para valor).

Es el problema de ser autodidacta y no tener ningún cursillo en programación, seguro que hay alguna palabra que define lo que quiero hacer pero.....

Espero no complicar la cosa aun mas xD
Gracias y un saludo.

Muchos aca somos autodidactas pero también sabemos reconocer el conocimiento que dan los libros y antes de pegarnos contra la pared leemos un buen libro y luego otro y otro y obtenemos conocimiento.
Como dice Noter, tu explicación es sumamente confusa y aunque entiendo que estas intentando crear un procedimiento que por alguna razón o 20 razones se modfica según el pin a usar.
veo que tu problema esta en manera la variable que lleva texto + número.

para pasar una variable text + numero puedes usar varias opciones

String str = "valor123456";
char str[] = "valor123456";
char * str; 
y le pasas el valor asi
  strcpy(str, "valor123456);

De modo que tu procedimiento podria ser asi con la primera opción

void control(byte entrada, byte salida, String valor){
//// lo que tenga que procesar

}

como no esta muy claro el resto, lo dejo acá.

Bueno.... ya esta solucionado, tenia un problema (que era pero que de novato) me da vergüenza decirlo pero...... cuando quería poner el void copie todo:

void xxxx( byte pulsador, byte VALOR, byte r, byte v, byte sr)

y modificaba el contenido del paréntesis pero el corto de mi no quite el VOID!!! y por eso no me funcionaba..... si no puede ser.

Tras este error garrafal el programa funciona pero solo una vez (enciende el led pero no lo apaga), porque solo modifica la variable en el programa no en la global. He estado buscando por Internet y he leído sobre los punteros que por lo visto se pueden utilizar para hacer esto, el modificar una variable en una función y que modifique la global. Bua ya me fastidia la gilipollez de pregunta que me he cascao.

Surbyte hay algún libro en español que este bien para principiantes?

Gracias a los dos y perdón.

flatron:
Bueno.... ya esta solucionado, tenia un problema (que era pero que de novato) me da vergüenza decirlo pero...... cuando quería poner el void copie todo:

void xxxx( byte pulsador, byte VALOR, byte r, byte v, byte sr)

y modificaba el contenido del paréntesis pero el corto de mi no quite el VOID!!! y por eso no me funcionaba..... si no puede ser.

Tras este error garrafal el programa funciona pero solo una vez (enciende el led pero no lo apaga), porque solo modifica la variable en el programa no en la global. He estado buscando por Internet y he leído sobre los punteros que por lo visto se pueden utilizar para hacer esto, el modificar una variable en una función y que modifique la global. Bua ya me fastidia la gilipollez de pregunta que me he cascao.

Surbyte hay algún libro en español que este bien para principiantes?

Gracias a los dos y perdón.

Define valor antes del setup para hacerla global y quitala de la llamada a la funcion:

byte VALOR = 0;
void setup(){}
void loop(){}
 void xxxx( byte pulsador, byte r, byte v, byte sr){
                                    
       if (digitalRead(pulsador)==LOW && VALOR==0) 
        {
          VALOR=1;

Los libros y su mejor selección como infinidad de tutoriales estan el el subforo DOCUMENTACION. Ahi verás de todos los temas. Incluso te recomiendo el tutorial que lleva adelante un compañero forero con videos que va de menos a mas.. y es muy bueno. Desde nivel inicial en adelante. Te va a gustar y es muy ameno.

Si quieres comienza por ahi para tener un pantallazo, pero sigue los ejemplos como el lo explica.
Luego si no te basta y quieres profundicar hay libros de todo tipo.
Tu me preguntas que necesitas y te sugeriré algo. Sino aqui mismo.
Me da gusto que quieras leer un libro, es aconsejable cuando uno se da cuenta que esta limitado.

Yo mismo lo hago de tanto en tanto porque no todos los temas son manejables y siempre se debe aprender.

Gracias jose pero eso no me seria util, pues seria una variable "fija" y no podría repetir la función en diferentes pines...

Gracias surbyte le echare un vistazo a lo que comentas, espero enterarme de cosas nuevas y afianzan algo lo que tengo flotando por la cabeza....