este programa solo funciona una sola vez, los proximos intentos de ingresar "asas" no me detona la condicion del if.!!!! ya no se que hacer, no se si es mi falla o la de mi equipo. llevo horas atorado en esta *****
String a ;
String inputChar;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available()> 1){
char letra = Serial.read();
inputChar += letra;
}
if ( inputChar == "asas"){
Serial.println("funciono");
inputChar = "";
}
}
Moderador
Tienes sanción de un día por lenguaje inapropiado
Cambia a
String a ;
String inputChar;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
while (Serial.available() > 0) {
char letra = Serial.read();
if (letra != '\n' || letra != '\r')
inputChar += letra;
}
if ( inputChar == "asas") {
Serial.println("funciono");
inputChar = "";
}
}
Ahora lo pruebo a ver si es por ahi que está el problema.
El primer problema, coincido con @Surbyte, es el no filtrado de los caracteres de control (LF y CR)
Prueba así
//String a ; // no se usa
String inputChar = "";
void setup() {
Serial.begin(9600);
}
void loop() {
while (Serial.available() > 0) {
char letra = Serial.read();
if ((letra != '\n') && (letra != '\r')) {
inputChar += letra;
}
}
if ( inputChar == "asas") {
Serial.println("funciono");
inputChar = "";
}
Pero hay otro problema mayor.
Cualquier texto que no sea "asas" va a hacer que parezca que se bloquea porque nunca mas se va a limpiar inputChar, se van a agregar caracter tras caracter y jamás se cumplirá nuevamente la igualdad.
Atento con eso, hay que trabajarlo más.