Ajouter deux Tableaux via Serial Monitor

Bonsoir chers fans d'Arduino,
Comme je suis un débutant avec Arduino, je demande votre aide.
Je veux utiliser mon Arduino Uno pour contrôler 4 LEDs indépendamment via Serial.Monitor.
Je veux donner à mon Arduino 2 tableaux pour qu'il puisse allumer mes LEDs.
Le tableau numéro 1 contient les numéros des LEDs que je veux allumer, par exemple [1 2 3 4].
et le deuxième tableau contient le temps pendant lequel chaque LED s'allume, par exemple [5 10 9 7].
Dans cet exemple, la LED 1 s'allumera pendant 5 secondes, la LED2-----10s, la LED3----9s-, la LED4----7s.
Ma Question : Comment je dois faire pour que mon Programme Code reçoit ces 2 Tableaux du Serial.monitor
en Gros Comment ajouter 2 tableaux via Serial.monitor a mon Programm Code.

Merci d avoir concerner du temps a lire mon problem :slight_smile:

jetez un oeil à mon petit tuto sur l’écoute du port série

==> définissez comment vous allez rentrer l’information (en une ligne, en plusieurs, avec les crochets etc) et comment vous validez une commande.

une fois cela effectué, utilisez le tutos mentionnés ci dessus pour capturer la commande et ensuite l’analyser

en prenant le code du tuto, ceci serait une base de départ:

const byte tailleMessageMax = 50;
char message[tailleMessageMax + 1]; // +1 car on doit avoir un caractère de fin de chaîne en C, le '\0'
const char marqueurDeFin = '\n';

boolean commandeDisponible()
{
  static byte indexMessage = 0; // static pour se souvenir de cette variable entre 2 appels consécutifs. initialisée qu'une seule fois.
  boolean messageEnCours = true;

  while (Serial.available() && messageEnCours) {
    int c = Serial.read();
    if (c != -1) {
      switch (c) {
        case marqueurDeFin:
          message[indexMessage] = '\0'; // on termine la c-string
          indexMessage = 0; // on se remet au début pour la prochaine fois
          messageEnCours = false;
          break;
        case '\r': break; // ignoré
        default:
          if (indexMessage <= tailleMessageMax - 1) message[indexMessage++] = (char) c; // on stocke le caractère et on passe à la case suivante
          break;
      }
    }
  }
  return !messageEnCours;
}

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

void loop() {
  if (commandeDisponible()) {
    Serial.print(F("Commande à Analyser: "));
    Serial.println(message);
  }
}

ouvrez la console Série à 115200 bauds, sélectionnez “Nouvelle Ligne” ou “Les deux, NL et CR” comme marqueur de fin en bas de la fenêtre.

Tapez du texte dans la barre de saisie et validez

vous pouvez ensuite utiliser les fonction de stdlib.h et string.h pour analyser ce qui a été tapé et extraire les nombres

Problem résolu
Merci infiniment pour ton coup de main !

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