我正在Arduino做一个项目,并希望我的Android上有传感器数据。为此,我在Android上使用HC-05 BT模块和蓝牙终端应用程序。但蓝牙终端正在以恒定速率接收数据(我认为是1秒)。我希望以10毫秒的速度接收数据。我怎样才能做到这一点?
这是我的代码:
#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 :(得分:1)
答案 1 :(得分:1)
如果是完整代码,则发送不打印的字符。并且在你得到i = 127之后,你将从ascii表的上部发送字符。并且想想当我> 255时会发生什么。在循环中尝试此代码:
Bluetooth.println("this is test code")
而不是写Bluetooth.write(i);
您可以获得有关ASCII 的更多信息以及有关Serial.print和Serial.write
的更多信息答案 2 :(得分:1)
来自here:
蓝牙模块波特率由十六进制索引设置 '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 +波特率
例如对于multiwii,我们需要115200作为BT波特率 输入AT + BAUD8。
如果成功,您应该在串行监视器中返回“OK”。
答案 3 :(得分:0)
您可以使用AT命令更改HC-06的波特率
#include <SoftwareSerial.h>
SoftwareSerial btSerial(2, 3); // RX, TX
/*
* Connect pin 2 Arduino to pin TX HC-06
* Connect pin 3 Arduino to pin RX HC-06
*/
void setup() {
Serial.begin(9600);
Serial.println("Enter AT commands:");
btSerial.begin(9600);
}
void loop()
{
if (btSerial.available())
Serial.write(btSerial.read());
if (Serial.available())
btSerial.write(Serial.read());
}
AT
AT + BAUD4 ==> 9600
AT + BAUD8 ==> 115200