lire de la port serial

bonjour
je veux comparer deux chaines de caractere
mais malheuresement ça marche pas
le code est le suivant :

 #include <string.h>


void setup()
{
Serial.begin(9600);

}
void loop()
{
  char TAB[7];// je le declare là pour initialiser chauqe fois on entre a LOOP
//je vais transmettre à arduino une chaine de caractère qui ne dépssase pas 4 caracteres   
int i=0;
  if(Serial.available()>0)
{
  while(Serial.available()!=0 )
 {
   TAB [i]= Serial.read();
 delay(5);// laiser un peut de temps pour enregisster les données dans le tableau
 i++;
 }
 i++;
TAB[i]='\0';
 char tab[]="good";
 Serial.print(TAB);
 Serial.println();
 
   Serial.print(tab);
   Serial.println();
        if(strcmp(TAB,tab)>0);
       {
            Serial.println("oui");
        }
 }
}

toujours la comparaison et vrai :S

Lorsque tu sors du while tu ne t'es pas assuré d'avoir bien reçu 4 caractères. Donc la comparaison ne fonctionne pas. A l'itération suivante la chaîne est réinitialisée (variable locale) et lorsque tu reçois d'autres caractères les premiers sont perdus et donc la comparaison ne fonctionne encore pas. Si tous les messages attendus ont la même longueur, il faut attendre d'avoir reçu le bon nombre de caractères avant de faire la comparaison. Si tous les messages attendus n'ont pas la même longueur, il faut attendre d'avoir reçu le caractère de fin de ligne avant de faire la comparaison.