Expected unqualified-id before 'else'

Bonjour, je suis débutant dans le monde de l’arduino et je viens soliciter votre aide car j’ai une erreur qui me casse la tête depuis plusieurs heures. Voici mon code :

#include <Wire.h>
#include <FastLED.h>
#include <AccelStepper.h>
int x = 0;      //x = 0 : nul
                //x = 1 : Eteint
                //x = 2 : Envoie vers la position de synchronisation
                //x = 3 : aléatoire     
                //x = 4 : première animation 
                //x = 5 : deuxième animation 
                //x = 6 : troisième animation 

#define dirPin1 3
#define stepPin1 6
#define dirPin2 7
#define stepPin2 8
#define motorInterfaceType 1

AccelStepper stepper1 = AccelStepper(motorInterfaceType, stepPin1, dirPin1);
AccelStepper stepper2 = AccelStepper(motorInterfaceType, stepPin2, dirPin2);

const byte slaveId = 1;

//Clock :
int hour = 0;
int minute = 0;

//y = 0 : animation 
int y = 0;

//Hauteur 
int d1 = 0;
int d2 = 0;

//Couleur pour animation 
int gris_a = 0;

//Réception des durées et distance
int duree = 0;
int distance = 0;

//Leds :
#define  LED_PIN 2
#define NUM_LEDS 61

#define MAX_BRIGHTNESS 164 //MAX
#define MIN_BRIGHTNESS 0

CRGB leds[NUM_LEDS];

void setup() {
  Wire.begin(slaveId);
  Wire.onReceive(receiveEvent);

  FastLED.addLeds<WS2813, LED_PIN, GRB>(leds, NUM_LEDS);
  FastLED.setBrightness(MAX_BRIGHTNESS);

  stepper1.setMaxSpeed(8000);
  stepper2.setMaxSpeed(8000);
  stepper1.setAcceleration(2000);
  stepper2.setAcceleration(2000);
}

void receiveEvent(int howMany) {
  char inChar;
  while (Wire.available() > 0) {
    inChar = Wire.read();
  if (inChar == 0) {
    y = 0;
  }
  else if (inChar == 1) { /////Démarrage ou extinction
    y = 1;
  }
  else if (inChar == 2) {
    y = 2;
  }
  else if (inChar == 3) {
    y = 3;
  }
  else if (inChar == 4) {
    y = 4;
  }
  else if (inChar == 5) {
    y = 5;
  }
  if (y == 4) {
    if (inChar == 'D') {
      delay(150);
      duree = inChar;
      delay(100);
    }
    else if (inChar == 'T') {
      delay(150);
      distance = inChar;
      delay(100);
    }
    
  }
  else if (inChar == 'H') {
    delay(150);
    hour = inChar;
    delay(100);
  }
  
}
}

void loop() {

   ////////////////////// Définition des positions \\\\\\\\\\\\\\\\\\\\\\
   if (y == 1) {
    if (x != 1) { // Si allumé
    int toStepper1 = -d1;
    int toStepper2 = -d2;
    for (int brightness = 255; brightness > 0; brightness - 1) {
      for(int i = NUM_LEDS; i > 0; i--) {
        leds[i].fadeLightBy(0); //A vérifier
        FastLED.show();
      }
      delay(75);
    }
    stepper1.setSpeed(2000);
    stepper2.setSpeed(2000);
    stepper1.moveTo(toStepper1);
    stepper2.moveTo(toStepper2);
    x = 1;
    }
    else if (x == 1) {
      x = 2;
    }
   }
   else if (y == 2) {
   }
   }
}

Et voici l’erreur que j’obtiens :
exit status 1
expected unqualified-id before ‘else’

Merci de votre aide

le compilateur vous donne sans doute un autre warning avant, non ?
(du genre “warning: multi-line comment”)

il existe deux types courants de commentaires, sur une seule ligne ou plusieurs lignes

sur une seule ligne, ils sont introduits par

//

et ont pour marqueur de fin la fin de ligne, par exemple

// mon commentaire

sur plusieurs lignes, ils sont introduits par

/*

et ont pour marqueur de fin

*/

, par exemple

/* 
   ----------------
   mon commentaire
   sur plusieurs lignes
   ----------------
*/

il y a une exception à la première règle, vous pouvez faire des commentaire qui continuent à la ligne suivant en finissant la ligne par un antislash

\[i]<retour>[/i]

. dans ce cas la ligne suivante est aussi en commentaire…

// ce commentaire est \
   sur trois lignes mais seule la première a une marque de début... \
   donc si la ligne 2 ou 3 (par oubli) était une ligne de code... ça se passerait mal....:)

→ virez les \\\ que vous avez à la fin de vos commentaires

sinon si vous appuyez sur ctrl-T vous verrez que vous avez une accolade fermante en trop en bas du code et votre boucle for     for (int brightness = 255; brightness > 0; brightness - 1) {... n’est pas bonne, vous ne décrémentez pas la variable… faites brightness-- ou brightness = brightness-1

étudiez aussi la construction switch/case au lieu de vos if/else

 if (inChar == 0) {
    y = 0;
  }
  else if (inChar == 1) { /////Démarrage ou extinction
    y = 1;
  }
  else if (inChar == 2) {
    y = 2;
  }
  else if (inChar == 3) {
    y = 3;
  }
  else if (inChar == 4) {
    y = 4;
  }
  else if (inChar == 5) {
    y = 5;
  }
  if (y == 4) {
    if (inChar == 'D') {
      delay(150);
      duree = inChar;
      delay(100);
    }
    else if (inChar == 'T') {
      delay(150);
      distance = inChar;
      delay(100);
    }
    
  }
  else if (inChar == 'H') {...

ce sera plus lisible et je me demande si vous êtes sur de ce que vous faites quand vous comparez avec 1,2,3,4 ou 5 (regardez comment sont écrites les comparaisons avec T ou D… un chiffre n’est pas la même chose que le code ASCII…

Super, switch case est beaucoup plus simple, merci !