Affichage de la valeur de plusieurs variable via deux boucle for imbriqué

Bonjour à tous .
Je parviens à faire ce que je veux concernant le nom de la variable, par contre lorsque je cherche à lire la valeur de la variable j'obtiens toujours 0 .

Une fois le nom de la variable obtenu, j'ai donc essayé la fonction .To Int()

Petite précision, je débute .
Merci à vous pour votre aide

int Time1_1_ON = 20;
int Time1_1_OFF = 7;
int Time1_2_ON = 20;
int Time1_2_OFF = 7;

int Time2_1_ON = 20;
int Time2_1_OFF = 7;
int Time2_2_ON = 20;
int Time2_2_OFF = 7;

int Time3_1_ON = 20;
int Time3_1_OFF = 7;
int Time3_2_ON = 20;
int Time3_2_OFF = 7;

int Time4_1_ON = 20;
int Time4_1_OFF = 7;
int Time4_2_ON = 20;
int Time4_2_OFF = 7;

int Time5_1_ON = 20;
int Time5_1_OFF = 7;
int Time5_2_ON = 20;
int Time5_2_OFF = 7;

int Time6_1_ON = 20;
int Time6_1_OFF = 7;
int Time6_2_ON = 20;
int Time6_2_OFF = 7;

int Time7_1_ON = 20;
int Time7_1_OFF = 7;
int Time7_2_ON = 20;
int Time7_2_OFF = 7;

int Time8_1_ON = 20;
int Time8_1_OFF = 7;
int Time8_2_ON = 20;
int Time8_2_OFF = 7;



void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);

}

void loop() {
    for (int t=1; t<11; t++)
   {
      // instructions à exécuter
          for (int i=0; i<2; i++)
            {
            int val_ii = i;
            int val_tt = t;
            String On = ("Time" + String(val_tt) + "_" + String(val_ii) + "_ON = ");
            Serial.print(On);
            //affichage de la valeur de la variable
            int ValheureOn = On.toInt();
            Serial.println(ValheureOn);

            String Off = ("Time" + String(val_tt) + "_" + String(val_ii) + "_Off = ");
            Serial.print(Off);
            //affichage de la valeur de la variable
            Serial.println(Off.toInt());
            }


   }
    delay(4000);
    Serial.println("............................................................................................................................");
}

Bonjour,

En C/C++ une fois ton programme compilé les noms de variables ont complètement disparus. Il est donc complètement impossible pour le programme de retrouver la valeur d'une variable avec son nom.
Pour faire ce que tu sembles vouloir faire il faudrait utiliser un tableau ou mieux un tableau de structures.

Merci pour ton retour , je vais creuser le sujet .

avec des structures ça pourrait ressembler à cela :

struct Paire {
  int onTime;
  int offTime;
};

constexpr size_t nbPairesPerTemps = 2;    // 2 éléments de type OnOff
struct Temps {
  Paire moments[nbPairesPerTemps];
};

const Temps lesTemps[] = {
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
  {{{20, 7}, {20, 7}}},
};


const size_t nbTemps = sizeof lesTemps / sizeof * lesTemps;


void setup() {
  Serial.begin(115200);

  for (size_t i = 0; i < nbTemps; i++) {
    for (size_t j = 0; j < nbPairesPerTemps; j++) {
      Serial.print("Temps_");
      Serial.print(i + 1);
      Serial.print("_");
      Serial.print(j + 1);
      Serial.print("_ON = ");
      Serial.print(lesTemps[i].moments[j].onTime);

      Serial.print("\tTemps_");
      Serial.print(i + 1);
      Serial.print("_");
      Serial.print(j + 1);
      Serial.print("_OFF = ");
      Serial.println(lesTemps[i].moments[j].offTime);
    }
  }
}

void loop() {}

une Paire a un ON et un OFF
un Temps c'est 2 Paires
ensuite on a un tableau de Temps qui s'appelle lesTemps

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.