/ / Comunicación de Android a través de Bluetooth con Arduino - Android, bluetooth, arduino

Comunicación de Android a través de Bluetooth con Arduino - Android, bluetooth, arduino

Cuando intento enviar un comando String desde Android a Arduino justo después de Bluetooth

se ha establecido la conexión, Arduino no envía una cadena de respuesta [Creo que tal vez

Arduino no tiene nada].

Pero si pongo un método Thread.sleep (1000) antes de escribir, funciona ...

¿Cuál es el problema?

¿Estoy intentando enviar un mensaje antes de que la configuración de la conexión Bluetooth aún no esté

¿Listo?

Respuestas

1 para la respuesta № 1

Piense en esto como esto: el ping pong está sucediendo demasiado rápido que la pelota se está perdiendo.

Si está escribiendo antes de leer y leer antes de escribir, se producirá un error y la cadena se perderá.

Así que sí, una forma de resolverlo es poner algo de tiempo entre medio como Thread.sleep

DETALLADO:

Así que esto está pasando porque tu arduino es todavía sending porque no ha reconocido que su android En realidad recibido. Durante Eso thread.sleep (1000), tu arduino reconocido que android recibido y cambios a receive modo. Es por eso que la cadena se puede leer desde su arduino después de un segundo.

Si lo desea, puede realizar un bucle de su envío para que arduino reciba tan pronto como sea posible. Sin embargo, ciertas circunstancias pueden seguirse desde el bucle como recibir cadenas redundantes.


1 para la respuesta № 2

Pero si pongo un método Thread.sleep (1000) antes de escribir el método

Intente hacer múltiples escrituras después de Thread.sleep, para verificar si el problema ocurre solo en el momento correcto cuando se establece la conexión, o en cada escritura.

De todos modos, por mi experiencia, te advertiría sobre algunas cosas:

  • Velocidad de transmisión demasiado alta, intente bajarla.
  • Tenga en cuenta algunos módulos Bluetooth de Arduino, que no implementan ningún tipo de búfer de E / S.
  • La parte que lee los datos de su aplicación en elArduino está haciendo algo que lleva tiempo (como las operaciones de E / S), o simplemente está haciendo demasiadas cosas, por lo que algunos datos en la serie se pierden (una vez que me sucedió).
  • Tenga en cuenta que si utiliza Bluetooth Low Energy, está limitado a 20 bytes. Si envías más datos, se perderán.

¡Sería útil una parte de tu código!