les cuento señores intento hacer un sistema que coordine varios rs232 para que me envíen la información que han guardado, pero tengo problemas para hacer que se comuniquen, tengo determinado un "nombre de usuario" para decir cual debe comunicarse, se activa la comunicación y (acá surge el problema) me envía los datos en HEX y no me deja cerrar el proceso con el comando determinado para esto.
y no se me ocurre como arreglar este problema, si alguien me pudiese echar una mano por favor.
bueno acá les dejo el código que tengo.
#include <SoftwareSerial.h>
//////////////////////////////////////////////////////////////////////
SoftwareSerial mySerial(10,11);
//////////////////////////////////////////////////////////////////////
int nDato;
char dato;
char Cadena[7];
/////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
int led = 13;
char nombre[]="scoop2";
char comand[]="break";
boolean inicio = false;
////////////////////////////////////////////////////////////////////
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
mySerial.begin(9600);
}
////////////////////////////////////////////////////////////////
void loop()
{
while ( inicio == false){
LeerSerial();
if((strcmp(Cadena, nombre) == 0))
{
inicio =true;
Serial.println("conected");
mySerial.println("conected");
digitalWrite(led, HIGH);
}
delay(50);
}
////////////////////////////////////////////////////////////////
while(inicio == true){
if (mySerial.available())
Serial.print(mySerial.read());
else if (Serial.available())
mySerial.print(Serial.read());
LeerSerial();
if((strcmp(Cadena, comand) == 0))
{
mySerial.println("not enough minerals");
Serial.println("not enough minerals");
digitalWrite(led, LOW);
inicio =false;
}
delay(50);
}
////////////////////////////////////////////////////////////////
}
y aca el voy adicinal
void LeerSerial()
{
nDato = 0;
if (Serial.available())
{
while (Serial.available()>0)
{
dato = Serial.read();
if (dato != '!'){
Cadena[nDato] = dato;
nDato++;
}
else
break;
}
}
/////////////////////////////////////
if (mySerial.available())
{
while (mySerial.available()>0)
{
dato = mySerial.read();
if (dato != '!'){
Cadena[nDato] = dato;
nDato++;
}
else
break;
}
}
//////////////////////////////////////
Cadena[nDato] = '\0' ;
}