¿Como puedo hacer que se ejecute el codigo una sola vez?

:o Hola muy buenas noches, estoy armando un pequeño proyecto con mi amado arduino, el modulo hc-06 y appinventor, la cosa es que cree una app que manda un texto al modulo bluetooth, el arduino lo interpreta y todo bien, PERO quiero que se ejecute una sola vez, ademas en el monitor serial se ejecuta y se ejecuta en un loop infinito! y solo quiero que cuando mande el texto encienda un led y al cabo de 3 segundos se apague, pero que quede el modulo a la escucha de un nuevo texto :o

Este es el codigo que estructure:

String readString;

void setup() { Serial.begin(9600); pinMode(13, OUTPUT);

}

void loop() { while(Serial.available()){ delay(3); char code = Serial.read(); readString += code; } if(readString.length() >0){ Serial.println(readString);

if(readString == "EazsInvenTor"){ funcion(); } } }

void funcion(){ digitalWrite(13, HIGH); delay(2500); digitalWrite(12, LOW); }

El problema es que la cadena que lees y almacenas queda grabada en la variable y esto :

if(readString == "EazsInvenTor"){

se cumple (una vez que has mandado esa cadena por el serial).La solucion podria ser borrar la cadena una vez ejecutada la funcion:

if(readString == "EazsInvenTor"){
      funcion();
      readString = "";
     }

Ademas ,supongo que te has equivocado al apagar el led 13 :

void funcion(){
  digitalWrite(13, HIGH);
  delay(2500);
  digitalWrite(12, LOW);  // Supongo que querias poner digitalWrite(13,LOW);
}

Hola buen dia, ya resolvi el problema con solo colocar (una tonteria jajaja):

if(readString == "EazsInvenTor"){ funcion(); readString = ""; }

solo que lo modifique un poquito! Muchas Gracias Jose

así quedo el código final:

String readString;

void setup() { Serial.begin(9600); pinMode(13, OUTPUT);

}

void loop() { while(Serial.available()){ char code = Serial.read(); readString += code; } if(readString.length() >0){ Serial.println(readString);

if(readString == "EazsInvenTor"){ digitalWrite(13, HIGH); readString = ""; delay(10); digitalWrite(13, LOW); } } }

y funciona perfectamente, el delay de 10 ms impide que al colapsar el puerto serial con texto haga un loop y quede colgado ejejeje! Gracias nuevamente!

Van dos que posteas mal los códigos veces y al menos un privado donde te pido que edites tu código según las normas.
Lee las Normas del foro.
Luego ve a More (abajo a la derecha), click, luego Modify y estas en modo EDICION.
**Selecciona todo el código y click en </> arriba del emoticon **
Tags.jpg