Lire l'état de plusieurs bits de caractères reçu sur la liaison série

Bonjour à tous,
pour un projet je cherche à lire l'état de plusieurs bits correspondant aux octets des caractères reçu sur la liaison série mais je n'y arrive pas, je pense pourtant ne pas être très loin mais je ne trouve pas ce qui manque ou ne va pas.
Voici ce que j'ai fait :

char MotRecu[3];
int PorteSup=(0,BIN);
int PorteInf=(0,BIN);
int Monter=(0,BIN);
int Arreter=(0,BIN);
int Descendre=(0,BIN);
int Full=(0,BIN);
int FinCourse=(0,BIN);
int EtatMoteur=(0,BIN);
int SensRotation=(0,BIN);
int tel=(0,BIN);


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

}

void loop() {

  
 if (Serial.available()>0){
 }
   delay(5000);

 
 MotRecu[0] = Serial.read();
 //MotRecu[1] = Serial.read();
 delay(500); 
 Serial.print("MotRecu = ");
Serial.println(MotRecu[3],BIN);
delay(1000);

Full = bitRead(MotRecu[0],0);
Serial.print("Full = ");
Serial.println(bitRead(MotRecu[0],0));
delay(1000);
PorteSup = bitRead(MotRecu[0],1);
Serial.print("PorteSup = ");
Serial.println(bitRead(MotRecu[0],1));
delay(1000);
PorteInf = bitRead(MotRecu[0],2);
Serial.print("PorteInf = ");
Serial.println(bitRead(MotRecu[0],2));
delay(1000);
FinCourse = bitRead(MotRecu[0],3);
Serial.print("FinCourse = ");
Serial.println(bitRead(MotRecu[0],3));
delay(1000);
EtatMoteur = bitRead(MotRecu[0],4);
Serial.print("EtatMoteur = ");
Serial.println(bitRead(MotRecu[0],4));
delay(1000);
SensRotation = bitRead(MotRecu[0],5);
Serial.print("SensRotation = ");
Serial.println(bitRead(MotRecu[0],5));
delay(1000);
tel = bitRead(MotRecu[0],6);
 Serial.print("tel = ");
Serial.println(bitRead(MotRecu[0],6));

Merci d'avance :slight_smile:

Bonjour,
qu'est-ce qui arrive sur la liaison série, et qui doit le lire ?

Je vous remercie d'avoir répondu mais c'est bon j'ai trouvé ^^

En fait je devais recevoir des caractères du type : "%A" d'un autre appareil et devais lire chaque bit de ces 2 caractères et chaque bit correspondrais à une action
Voila ce que j'ai trouvé au final :

char MotRecu[3];
int PorteSup=(0,BIN);
int PorteInf=(0,BIN);
int Monter=(0,BIN);
int Arreter=(0,BIN);
int Descendre=(0,BIN);
int Full=(0,BIN);
int FinCourse=(0,BIN);
int EtatMoteur=(0,BIN);
int SensRotation=(0,BIN);
int tel=(0,BIN);


void setup() {
 Serial.begin(19200); // initialise connexion série à 19200 bauds
}

void loop() {

   Serial.write("I"),
 Serial.print("\n");
 delay(500);
 if (Serial.available()>0){
 }
   delay(5000);
 MotRecu[0] = Serial.read();
 MotRecu[1] = Serial.read();
 delay(500); 
 Serial.print("MotRecu[0] = ");
Serial.println(MotRecu[0],BIN);
 Serial.print("MotRecu[1] = ");
Serial.println(MotRecu[1],DEC);
delay(1000);
 
Full = bitRead(MotRecu[0],0);
Serial.print("Full = ");
Serial.println(bitRead(MotRecu[0],0));
delay(1000);
PorteSup = bitRead(MotRecu[0],1);
Serial.print("PorteSup = ");
Serial.println(bitRead(MotRecu[0],1));
delay(1000);
PorteInf = bitRead(MotRecu[0],2);
Serial.print("PorteInf = ");
Serial.println(bitRead(MotRecu[0],2));
delay(1000);
FinCourse = bitRead(MotRecu[0],3);
Serial.print("FinCourse = ");
Serial.println(bitRead(MotRecu[0],3));
delay(1000);
EtatMoteur = bitRead(MotRecu[0],4);
Serial.print("EtatMoteur = ");
Serial.println(bitRead(MotRecu[0],4));
delay(1000);
SensRotation = bitRead(MotRecu[0],5);
Serial.print("SensRotation = ");
Serial.println(bitRead(MotRecu[0],5));
delay(1000);
tel = bitRead(MotRecu[0],6);
 Serial.print("tel = ");
Serial.println(bitRead(MotRecu[0],6));[code/]

merci,
si j'ai bien compris, il fallait envoyer la commande "I" au périférique pour qu'il réponde ?