Pages: [1]   Go Down
Author Topic: Sistema se comunicacion  (Read 420 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

« Last Edit: January 11, 2013, 10:45:42 am by gorm » Logged

Pages: [1]   Go Up
Jump to: