Soucis pour sortir d'une tempo

Bonjour Pierre,

Alors j'ai remplacé mais while par if, cela me permet de changer d'état à chaque comande, mais ma diode ne clignote pas en état 3.

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() {
  String chaine = ""; // création d'un String vide
  if (Serial.available()) { //teste s'il y a une saisie en attente
    //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
  if (chaine == "1") {
    Serial.println("Marche");
    digitalWrite(b,HIGH);
    }
  if (chaine == "2") {
    Serial.println("Arrêt");
    digitalWrite(b,LOW);
    }
   if (chaine == "3") {
   Serial.println("Clignote");
   digitalWrite(b,LOW);
   delay(200);
   digitalWrite(b,HIGH);
   delay(200);
   }
}  
}

Commencez par sortir votre variable "chaine" de la fonction loop() pour la placer en haut de votre application, avant le setup(). Ainsi, elle ne sera pas réinitialisée à chaque passage dans la loop().

j'ai placé " String chaine = ""; // création d'un String vide" tout en haut de mon code avec le "int b=13"

Là, mon 1er ordre est reconnu et plus les autres!