J’envoie d’arduino à arduino chaîne (I2C), attrape et enregistre au caractère [10] Quand je compare cette variable à du texte, condition n’a pas execute: – / Et je ne sais pas pourquoi …
char dataRx[10] = ""; void DaemonReceiving(int howMany){ int index = 0; while(Wire.available() > 0){ char c = Wire.read(); dataRx[index++] = c; dataRx[index] = '\0'; } Serial.println(dataRx); if(dataRx == "HELLO"){ Wire.beginTransmission(1); Wire.write("HI"); Wire.endTransmission(); } }
Pour comparer la chaîne dataRX à “HELLO”, utilisez:
if (strcmp (dataRx,"HELLO") == 0) { // matches HELLO }
Si c’est C, vous devez utiliser strcmp
, sinon vous comparez simplement deux pointeurs: l’emplacement de “HELLO” et l’emplacement de dataRx (qui échouera).
Notez que cela n’a rien à voir avec Arduino 🙂
Ceci compare les valeurs de pointeur:
if(dataRx == "HELLO")
vous avez besoin de la comparaison de chaîne strcmp :
if(strcmp(dataRx, "HELLO") == 0)