Go Down

Topic: necesito aumentar nombre de variable, no valor de variable. (Read 161 times) previous topic - next topic

hip_africa

Hola amigos, necesito aumentar el nombre de una variable. no el valor sino el nombre.
cada vez que se enciende el arduino, pregunta el valor de la variableA.
para configurar cuantos submenu tiene cada menu, .... para no tener que definir una infinidad de variables tipo valor1, valor2, valor3, etc ..
he pensado en un bucle for  int++ que cree tantos menus como le especifique en variableA.
siendo así que cada incremento de i me sume un 1 al nombre de la variable valor,
entonces i++ se incrmenta de 0 a variableA " for (int i = 0; i <variableA; i ++) "
cuando me pregunta cuanto vale variableA, yo le voy a dar por ejemplo 4. entonces variableA = 4.
si el bucle se va a repetir 4 veces, creame una variable valor_actual=valor(i) . me creará valor1, valor2, valor3, valor4.

entiendo que es facil meter un valor dentro de una variable, pero lo de incrementar el nombre ahí me pierdo.

para entender lo que estoy preguntando no creo que sea necesario poner todo el codigo entero, por lo que solamente quiero saber es incrementar el nombre de una variable.

pasemos al programa:
------------------------------------

void Setup()

{Serial.begin (9600);}


void configuracion()
{

 Serial.print ("escriba cuantos menus hay"); // variableA
     g_pas:
           if (Serial.available ()> 0) {
         variableA = Serial.read ();} // escriba en variableA, lectura del valor de serial, por ejemplo = 4
           else
          {goto g_pas;} // si no recibe el char de serial, goto g_pas

Serial.print (variableA); // variableA = 4; , envié 4 por puerto searial.. ejemplo

for (int i = 0; i <variableA; i ++) // incremento i de 0 a 4 ++
   {
    delay (500);
     Serial.println ("escriba el valor para el valor1, el valor2, el valor3, el valor4 .. (dependiendo del valor de la variableA)");
        pas: 
           if (Serial.available ()> 0)
           {
               valor_actual = Serial.read ();
           }     
          else
           {delay (1000); goto pas;}

     valor_actual = valor (i);
     Serial.println ("valor"); Serial.println ("_ i_"); Serial.println (valor_actual);

.....
}

void loop() {}
configuracion();
trabajo();
....


 el int i (i) aumenta 4 veces
      en el paso 1, valor_actual = valor1
      en el paso 2, valor_actual = valor2
      en el paso 3, valor_actual = valor3
      en el paso 4, valor_actual = valor4

es necesario de forma automática, crear tantas variables como exponga en el valor de la variableA

surbyte

Ve a tu casilla de mensajes y sigue las instrucciones para editar tu post de acuerdo a las normas del foro.
Los códigos deben postearse con etiquetas.


Lo que necesitas es usar un vector.
Un vector es una variable de N elementos.

Asi que si en tu caso tu variable fuera un entero que hoy defines asi

int variableA;

ahora un vector de enteros será de este modo.

int variable[10]; lo que te permite tener 10 elementos que se enumeran desde 0 y no 1 hasta 9 y no 10. Recuerda esto porque no hay modo de cambiarlo.

variable[0] identifica al valor del indice 0
variable[1] identifica al valor del indice 1 y asi hasta
....
variable[9] que identifica al ultimo valor.

Puedes usar mas valores si.
pero se define antes del setup como variable global.

Para mas dato ve a este link (en ingles) o busca en google algún ejemplo en español como éste

Go Up