Buenas tardes, soy nuevo programando en el lenguaje de arduino, asi como tambien nuevo en el foro. Mucho agradeceria ayuda con este codigo:
void setup(){
Serial.begin(9600);
}
void loop(){
while (Serial.available()){
if (Serial.find("Estado") == true){
delay(1000);
Serial.println("Segun se encuentre!!!");
Serial.flush();
}
else if (Serial.find("Prender") == true){
delay(1000);
Serial.println("Sistema Activado");
Serial.flush();
}
else if (Serial.find("Apagar") == true){
delay(1000);
Serial.println("Sistema Desactivado");
Serial.flush();
}
else{
Serial.println("Comando Invalido");
Serial.flush();
}
}
}
Lo que pretendo hacer es escribir palabras claves en el monitor serial (Estado, Prender y Apagar) pero este me arroja solo el mensaje en "Estado"; los demas me dan "Comando Invalido". De ante mano agradezco su ayuda.
Buenas!
Yo pondria una variable
String recibido; //por ejemplo
y te quedaria algo asi..
while (Serial.available()){
recibido=Serial.readString();
if (recibido == "Estado"){
delay(1000);
Serial.println("Segun se encuentre!!!");
Serial.flush();
}
Lo demas, sigues esto mismo y te tiene que funcionar.
Eso sí, a veces no se puede, pero para la mayoría de estos casos suelo preferir hacer un menú (que sé que ocupa más memoria y a los más puristas no les mola, pero para este tipo de casos, que te sobra por todos lados... un menú del tipo:
int opcion;
Serial.println ("Escoja opción");
Serial.println ("1--> Estado");
Serial.println ("2--> Prender");
Serial.println ("3--> Apagar");
while (!Serial.available(){}
opcion=Serial.read();
switch (opcion){
case 49: //Estado. 49 es "1" en ASCII
break;
case 50://Prender
break;
.
.
.
etc...
}
Aquí pulsando 1, 2, 3, etc.. eliges la opcion que quieras y tendras menos errores por haber escrito por ejemplo "Encender" en vez de "Prender" o que se te haya colado alguna mayúscula, etc...
Saludos,