/ / Comunicação Android via Bluetooth com Arduino - android, bluetooth, arduino

Comunicação Android via Bluetooth com Arduino - android, bluetooth, arduino

Quando tento enviar um comando String do Android para o Arduino logo após o Bluetooth

conexão é estabelecida, o Arduino não envia resposta String [acho que talvez

Arduino não recebeu nada].

Mas se eu colocar um método Thread.sleep (1000) antes do método write, ele funciona ...

Qual é o problema?

Estou tentando enviar uma mensagem antes que a configuração da conexão Bluetooth ainda não esteja

pronto?

Respostas:

1 para resposta № 1

Pense nisso da seguinte maneira: o pingue-pongue está acontecendo rápido demais e a bola está se perdendo.

Se você estiver escrevendo antes de ler e lendo antes de escrever, ocorrerá um erro e a sequência será perdida.

Então, sim, uma maneira de resolvê-lo é colocar algum tempo no meio, como Thread.sleep

DETALHADO:

Então, isso está acontecendo porque o seu arduino está parado sending porque não reconheceu que o seu android realmente recebido. Durante esse thread.sleep (1000), seu arduino reconheceu que android recebido e alterações em receive modo. É por isso que a string pode ser lida no seu arduino depois de um segundo.

Se desejar, você pode repetir o envio para que o arduino receba o mais rápido possível. No entanto, certas circunstâncias podem ocorrer a partir do loop, como o recebimento de strings redundantes.


1 para resposta № 2

Mas se eu colocar um método Thread.sleep (1000) antes do método write

Tente fazer várias gravações após o Thread.sleep, para verificar se o problema ocorre apenas no momento certo em que a conexão é estabelecida ou a cada gravação!

De qualquer forma, pela minha experiência, eu gostaria de avisá-lo sobre algumas coisas:

  • Baudrate muito alto, tente abaixá-lo.
  • Esteja ciente de alguns módulos Bluetooth baratos do Arduino, que não implementam nenhum tipo de buffer de E / S.
  • A parte que lê os dados do seu aplicativo noO Arduino está fazendo algum tipo de coisa que leva tempo (como operações de E / S), ou simplesmente está fazendo muita coisa, então alguns dados da série se perdem (uma vez que aconteceu comigo).
  • Esteja ciente de que se você estiver usando Bluetooth Low Energy, estará limitado a 20 bytes! Se você enviar mais dados, eles serão perdidos.

Seria útil um pedaço do seu código!