Go Down

Topic: Sistema se comunicacion (Read 451 times) previous topic - next topic

gorm

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.

Code: [Select]

#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
Code: [Select]

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' ;
}




gorm

#1
Jan 11, 2013, 04:38 pm Last Edit: Jan 11, 2013, 04:45 pm by gorm Reason: 1
bueno arregle lo que me mandaba en hex(en realidad lo mandaba en ascii pero como código no en caracteres)cambiando el .print() por .write() pero aun no logro hacer que me tomo en comando de cierre de transmisiones entre los puertos


Go Up