2016-04-19 3 views
0

私はArduinoでプロジェクトをやっていて、Androidのセンサーデータが必要です。この目的のために私はHC-05 BTモジュールとAndroidのBluetooth端末アプリを使用しています。しかし、Bluetooth端末は一定の速度でデータを受信して​​います(1秒、私は思う)。そして私は10ミリ秒でデータを受け取りたいと思います。これどうやってするの?Arduinoでブルートゥースのボーレートを上げるにはどうすればいいですか?

#include <SoftwareSerial.h> 

int RX=0; 
int TX=1; 

SoftwareSerial Bluetooth(RX,TX); 
int i=0; 

void setup() { 
    Bluetooth.begin(9600); 
    Bluetooth.println("The controller has successfuly connected to the phone"); 
} 

void loop() { 
    Bluetooth.write(i); 
    i++; 
    delay(5); 
} 
+0

Arduinoコードを提供できますか?私はそれが1秒の固定レートでデータを送信していると思います。 –

+0

OK、私はコードを提供します。 –

+1

あなたの問題は、ボーレートよりも*その他のものです。 –

答えて

1

あなたはATコマンドを使って、HC-05のボーレートを変更することができます。

は、ここに私のコードです。

使用:ここ

AT+UART=57600,1,0 

は、それが完全なコードであれば、あなたが印刷されない文字を送信tutorial

+1

ArduinoとGSMモジュールの間のリンクのボーレートは、この問題を説明していません。 –

+1

彼が9600を使用しても、データは1ミリ秒あたり1バイトで到着するはずです。しかし、著者は1秒で受け取ったと主張しています –

1

です。そして、あなたがi = 127を得た後で、あなたはasciiテーブルの上部から文字を送ります。そして、私が> 255の時に何が起こるかを考えてください。ループ内でこのコードを試してみてください。

Bluetooth.println("this is test code")

代わりのBluetooth.write(i);

を書くあなたはhereからSerial.printSerial.write

+0

また、遅延(5)を遅延(5000)に変更します。それ以外の場合は、毎秒200レコードを受信します。 –

+0

目標は、毎秒100レコードを受信することでした。つまり、減速の原因となるものがない場合は、delay(10)です。 –

+0

私はAndroidで1秒あたり200サンプル以上のサンプルを受信して​​も問題はありませんが、データはバックスレッドで送信されました。あなたの説明から私たちはあなたがターミナルを使用していることを知っています、そして、私はGUIウィンドウでそのようなレートを持つ理由はありません。とにかくarduinoコードを変更する必要があります。ターミナルは印刷可能な文字のみのためです。 –

1

についてASCIIなどについての詳細情報を取得することができます

ブルートゥースモジュールのボーレートは16進数iで設定されますndexを から '1'から 'C'に変更します。インデックスは、1:1200,2:2400,3:4800,4:9600,5:19200, 6:38400,7:57600,8:115200,9:230400、A:460800、B:921600、C:

1382400このコマンド

AT + BAUD multiwiiため例えば

を入力し、デフォルトのボーレートを設定するには、我々はBTのボーレートとして115200を必要とする、我々は + BAUD8 ATと入力します。

成功した場合は、シリアルモニタで「OK」を返す必要があります。

関連する問題