Soucis pour sortir d'une tempo

J'ai apporter deux modification.

Avec ton code, le fonction n'étaient executées seulement si le un nouveaucarractère arrivait sur le port série.
Avec la modification,
Tour à tour, on vérifie la présence d'un caractère et on modifie la valeur de "chaine" si présence.
et execute l'une de boucle while en fonction de la valeur de "chaine".

int b=13; 
const unsigned long BLINK_INTERVAL1 = 500;
const unsigned long BLINK_INTERVAL2 = 1000;
void setup() {

pinMode(13,OUTPUT); // MOC3041 negatif
digitalWrite(b,LOW);
Serial.begin(9600); //débute la communication avec le moniteur série
Serial.println("*********\nListe des ordres\n*********");
}

void loop() {
  if (Serial.available()) { //teste s'il y a une saisie en attente
  String chaine = ""; // création d'un String vide
  //lecture de la saisie
  while (Serial.available()) { //tant que caractères en attente.
    delay(10); //petit délai de lecture
    char c = Serial.read(); //on lit le message
    Serial.println (c);
    if (c != 10 && c != 13) { //nettoyage de la chaine
      chaine += c; //on ajoute le caractère
    }
  }
  //test de la saisie
  while (chaine == "1") { 
    Serial.println("Marche");
    digitalWrite(b,HIGH);
    return;
  }

} // modification leptro : ajouter l'accolade ici
  while (chaine == "2") { 
    Serial.println("Arrêt");
    digitalWrite(b,LOW);
    return;
  }
   while (chaine == "3") { 
   Serial.println("Clignote");
   digitalWrite(b,LOW);
   delay(200); 
   digitalWrite(b,HIGH);
   delay(200); 
   return;
   }
// }     // modification leptro :supprimer cette accolade
}