Bluetoothの直後にAndroidからArduinoにコマンド文字列を送信しようとすると
接続が確立されると、Arduinoは応答文字列を送信しません[おそらく
Arduinoは何も得ていない]。
しかし、私はメソッドを書く前にThread.sleep(1000)メソッドを置くと、それは動作します...
何が問題ですか?
Bluetooth接続設定がまだ始まらないうちにメッセージを送信しようとしていますか
準備ができている?
回答:
回答№1は1それを次のように考える:卓球が速すぎてボールが失われている。
執筆前に読んだり読んだりする前に書いていると、エラーが発生して文字列が失われます。
だから、それを解決する一つの方法は、Thread.sleep
詳細:
これは、あなたの arduino
まだです sending
あなたが android
実際に受け取った。その間 thread.sleep (1000)
、 きみの arduino
それを認識した android
受け取った receive
モード。それで、文字列はあなたから読めるのです arduino
1秒後に
必要に応じて、Arduinoができるだけ早く受信できるように送信をループすることができます。しかし、冗長文字列を受け取るようなループが続く場合もあります。
回答№2の場合は1
しかし、writeメソッドの前にThread.sleep(1000)メソッドを置くと、
Thread.sleepの後に複数の書き込みを行い、接続が確立されたとき、または書き込みごとに問題が発生するかどうかを確認してください。
とにかく、私の経験によって、私はあなたにいくつかのことを警告します:
- ボーレートが高すぎる場合は、それを下げてみてください。
- どんな種類のI / Oバッファリングも実装していない、安価なArduino Bluetoothモジュールを認識してください。
- あなたのアプリからデータを読み込む部分Arduinoは、(I / O操作のような)時間がかかる何らかのものをやっている、あるいは単純に過度のものをしているのでシリアルの一部のデータが失われてしまう。
- Bluetooth Low Energyを使用している場合は、20バイトに制限されています。より多くのデータを送信すると、データは失われます。
それはあなたのコードの一部に便利です!