Go Down

Topic: Error en comparación de cadena (Read 245 times) previous topic - next topic

Hola, estoy tratando de enviarle comando al arduino vía serial, trato de que este los interprete y ejecute una acción en base al comando que le envió.

El problema que estoy teniendo es en la comparación de la cadena que envió por serial y el comando que yo tengo almacenado.

Ejemplo, si le envió "encender", que el arduino encienda un led.

Este es mi código:
Code: [Select]

String inputString = "";         
boolean stringComplete = false; 


void setup()
{
  Serial.begin(9600);     
  inputString.reserve(200); 
}





void loop()
{


  if (stringComplete)
  {
   
    Serial.println("Recibido: " + inputString);
   
    if(inputString  == "encender")
    {
        Serial.println("encendiendo led");
    }
   
    inputString = "";             
    stringComplete = false;     
  }
 
 
}
















void serialEvent()
{
  while (Serial.available())
  {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n')
    {
      stringComplete = true;
    }
  }
}




No se en que me estaré equivocando, pero desde ya muchas gracias.

bettoad

Hola,

Creo que te estás complicando muchísimo. Usa este codigo

Code: [Select]

String inputString = "";         
boolean encontrado = false; 


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

void loop()
{
 
  while(Serial.available()>0){
      encontrado=Serial.find("encender");
       if (encontrado==true){
           Serial.println("encendiendo led");
       }

  }
}



Saludos

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy