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));
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/]