Comparar string leido desde el puerto serie...

Estoy haciendo un sketch para comunicar arduino con una aplicación de pc... pero para realizar la conexión hay que contestar con una cadena de texto a una enviada desde el pc...

he probado el siguiente código, pero da error de tipo de variable, es decir , que no se guardar lo leido desde el puerto en una variable String

#include <LiquidCrystal.h>

String entrada = "";
int conex=0;
LiquidCrystal lcd(13, 12, 5, 4, 3, 2);

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

void loop ()
{
if (Serial.available() > 0)
{
entrada = Serial.read();

if (entrada == '#G$'); //cadena que envía el pc para buscar la conexión
{
Serial.print("#J$"); //cadena que envia arduino para aceptar la conexión
delay(100);
conex=1;
conexion();
}
}
}

void conexion()
{
while (conex==1)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("CONECTADO");
}
}

No funciona... =( ... alguna idea?

gracias

Prueba cambiando la segunda estructura "if" por un "case";

void loop ()
{
  if (Serial.available() > 0) 
     { 
      entrada = Serial.read();
      
      Switch (entrada); //cadena que envía el pc para buscar la conexión
      {
        Case '#G

:
        Serial.print("#J$"); //cadena que envia arduino para aceptar la conexión
        delay(100);
        conex=1;
        conexion();
        break;
      }
    }
}

pues tampoco va.... :frowning:

In function 'void loop()':
error: case label '18212' not within a switch statement

ha cambiado el texto #G$ por 18212....

creo que el problema esta en leer la cadena de caracteres que entra por el puerto serie... el problema es que no soy capaz de leerla como cadena de texto...