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
}