This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[AYUDA]Arduino comunicación Serial
#1
Hola a todos,

estoy intentando realizar una comunicación entre labVIEW y Arduino mediante Xbee pero me estoy hecho un lío con la comunicación entre ambos.

Por el lado de LabVIEW hay un mando de la ps3 conectado y cuyas teclas corresponden a los movimientos para un coche. El string enviado es el siguiente:

%sentido%,%sentidoVel%,%freno%,%giroSentido%,%giroVel%;

El Arduino por su parte, recibe el string y lo reenvía a LabVIEW.

Código:
int mensaje = 0;

void setup(){
  
  Serial3.begin(115200);
  Serial.begin(115200); // uncomment to debug code on (mega only)
  lcd.clear();
}

void loop(){

  if(Serial.available() > 0) {
    Serial.write(Serial.read());
    Serial.flush();  
   }
  
}

El problema que tengo, es que la comunicación no es fluida, se para a veces y los comandos no se envían actualizados.

Dejo un link donde se puede apreciar mejor el problema.

  Responder
#2
Mete un delay, empieza por 1, 10, 100.. y prueba el comportamiento. Eso o sube la velocidad a 250.000.

Esto.. yo siempre lo hago un poco al prueba-error. Según la velocidad que establezcas de comunicación y los bytes que quieras procesar necesitas darle un poco de tiempo al micro.

Te paso un enlace (tienes muchos más):http://forum.arduino.cc/index.php?topic=48103.0

Ahí puedes ver comentarios de lo que se tarda en transmitir cada byte según la velocidad del puerto. También yo cambiaría un poco el sketch y lo meteria todo dentro de un while(Serial.available()) en lugar de tener el loop() constantemente empezando y finalizando.

Una programación eficiente de Arduino iría encaminada a que nuestro programa se ejecute de forma que haya un sólo 'loop'. Dentro podemos establecer los bucles que queramos.
  Responder
#3
Muchas gracias hectorri!!

Voy a ponerme a probar con los delays. Respecto a al bucle while, había sitios donde ponían if o while, y no me quedaba claro porque se usaba uno u otro, pero gracias por la aclaración!! Sonrisa
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Error en función Serial.printIn Bear 6 1,048 30-05-2021, 08:54 PM
Último mensaje: Bear
Triste DUDA Error compilando para la tarjeta Arduino/Genuino Uno. Necesito ayuda siro7 9 4,836 28-04-2019, 02:22 PM
Último mensaje: siro7
  Ayuda con drivers arduino msa 32 17,808 28-03-2018, 10:37 AM
Último mensaje: superkuko
  ayuda en coneccion de java con arduino claudiohnavarro 0 1,190 26-04-2017, 07:02 PM
Último mensaje: claudiohnavarro
  Ayuda con robot arduino Qar2015 0 1,432 11-10-2015, 04:19 AM
Último mensaje: Qar2015