Bonsoir, cela fait des heures que j'esssaye simplement de récupérer et exécuter des commandes reçues par le port série, voilà mon code :
boolean ledState[13] = {false};
void setup () {
pinMode (13, OUTPUT);
Serial.begin (9600);
}
void loop () {
char command[50] = "";
int i = 0;
while (Serial.available ()) {
char in = Serial.read ();
command[i] = in;
if (in == '\n')
exeCmd (command);
Serial.println(command);
++i;
}
}
void exeCmd (char * cmd) {
if (strcmp(strtok(cmd, " "), "Set") == 0) {
// Action sur les sorties.
}
else if (strcmp(strtok(cmd, " "), "Check") == 0) {
// Vérifie l'état d'une sortie
int num = atoi (strtok(NULL, " "));
if (num > 0 && num < 13)
Serial.println (ledState[num]);
else
Serial.println ("Erreur cette sortie n'existe pas");
}
else if (strcmp(strtok(cmd, " "), "Read") == 0) {
// Lie la valeur d'une entrée
int num = atoi (strtok(NULL, " "));
if (num > 0 && num < 5)
Serial.println (analogRead(num));
else
Serial.println ("Erreur cet entrée n'existe pas");
}
else
Serial.println ("Commande inconnue");
}
Le but est d'envoyer une commande du style "Read 3" ou "Check 12" ou "Set 3 1" (pas encore codé le set") en série, mais ça ne fonctionne jamais, là j'ai mis le print (command); pour débuguer et celui ci ne renvoie rien, comme si le code ne lisait rien des commandes que j'envoie.
Si vous pouviez me dire si vous voyez une erreur, merci d'avance.