Ingresar numero de 8 cifras por puerto serie

Buenos días, estoy realizando un proyecto en Arduino UNO el cual consiste en ingresar una clave de 8 digitos que permita el encendido de un led, como pueden observar el led esta conectado al pin 13 y la clave que deseo que lo encienda es "12345678" (sin comillas), la clave es ingresada por teclado de computadora usando puerto serial, adjunto mi codigo que he estado avanzando, de antemano agradezco la ayuda que se me pueda ofrecer.
 

Adjuntos

  • codigo.txt
    410 bytes · Visitas: 4
En la comparación "if(cadena=='123456789')" las comillas están de mas, quítalas y de seguro funcionara. Adjunto el código corregido.
Código:
String cadena;

long clave;

void setup()

{

  pinMode(13,OUTPUT);

  Serial.begin(9600);

}

 

void loop()

{

   if (Serial.available() > 0)

   {

      cadena = Serial.readStringUntil('\n');

      clave = cadena.toInt();

      if( clave ==  123456789 )

      {

        digitalWrite(13,HIGH); 

      }

      else

      {

        digitalWrite(13,LOW);

      }

      Serial.println(clave);

   }

}
 
¿apoco en arduino una cadena se puede comparar como si se tratara de un numero?

yo pensaba que se usaba STRCMP();

if (strcmp(str1,str2) == 0)
{
printf("Son iguales!.\n");
}
 
Atrás
Arriba