Pages: [1]   Go Down
Author Topic: Comparar string leido desde el puerto serie...  (Read 1717 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 195
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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...  smiley-cry ... alguna idea?

gracias
Logged

0
Offline Offline
Jr. Member
**
Karma: 2
Posts: 62
No puenso decirle mi nombre a una maquina. uighhhh
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
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;
      }
     }
}
Logged

* Utiliza un 'Subject' para tu hilo que explique su contenido.

* Si preguntas sobre software, pon el código de tu programa, facilita la ayuda.

* Si consigues solucionar tu problema, Explica en tu post como lo conseguiste para beneficio de todos.

* Cambia el 'Subject' de tu hilo y añade '[Solucionado]' si la duda está resuelta.

Offline Offline
Full Member
***
Karma: 0
Posts: 195
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

pues tampoco va....  smiley-sad




 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...
Logged

Pages: [1]   Go Up
Jump to: