Android和Arduino都通过蓝牙接收到奇怪的值
我使用Android端的BluetoothChat代码通过聊天框向Arduino UNO发送开/关信号(我发送110、119或下文定义的其他情况),但当我显示收到的值时,Arduino串行监视器中会显示奇怪的值,即255、254,250或245,并在Android端使用奇怪的值进行回复 但令人惊讶的是,当我从android发送这些命令时,110、119等中只有一个条件是正确的,没有其他指令/LED得到正确执行/打开/关闭 有人能帮我解决这个问题吗?下面是我的arduino代码Android和Arduino都通过蓝牙接收到奇怪的值,android,bluetooth,arduino,communication,Android,Bluetooth,Arduino,Communication,我使用Android端的BluetoothChat代码通过聊天框向Arduino UNO发送开/关信号(我发送110、119或下文定义的其他情况),但当我显示收到的值时,Arduino串行监视器中会显示奇怪的值,即255、254,250或245,并在Android端使用奇怪的值进行回复 但令人惊讶的是,当我从android发送这些命令时,110、119等中只有一个条件是正确的,没有其他指令/LED得到正确执行/打开/关闭 有人能帮我解决这个问题吗?下面是我的arduino代码 int data;
int data;
String message;
void setup ()
{
Serial.begin (57600);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
digitalWrite(6, LOW); // off LED 1 at pin6
digitalWrite(7, LOW); // off LED 2 at pin7
digitalWrite(8, LOW); // off LED 3 at pin8
digitalWrite(9, LOW); // off LED 4 at pin9
digitalWrite(10, LOW); // off LED 5 at pin10
}
void loop () {
int i=0;
if (Serial.available()>0)
{
int data= Serial.read();
Serial.println (" Received data: ");
Serial.println (data);
if (data==110) //q
{
digitalWrite(6, HIGH); // turn on LED 1 at pin6
message = "LED 1 On";
Serial.println (message);
}
if (data==102) // a
{
digitalWrite(6, LOW); // off LED 1 at pin6
message = "LED 1 Off";
Serial.println (message);
}
if (data==96) //c
{
digitalWrite(7, HIGH); //on LED 2
message = "LED 2 On";
Serial.println (message);
}
if (data==115) //d
{
digitalWrite(7, LOW); // off LED 2
message = "LED 2 Off";
Serial.println (message);
}
if (data==111) //e
{
digitalWrite(8, HIGH); //on LED 3
message = "LED 3 On";
Serial.println (message);
}
if (data==97)// f
{
digitalWrite(8, LOW); //sets the LED 3
message = "LED 3 Off";
Serial.println (message);
}
if (data==107) //g
{
digitalWrite(9, HIGH); //turn on LED 4
message = "LED 4 On";
Serial.println (message);
}
if (data==120)//h
{
digitalWrite(9, LOW); //sets the LED 4
message = "LED 4 Off";
Serial.println (message);
}
if (data==99) //i
{
digitalWrite(10, HIGH); //sets the LED 5
message = "L5 high";
Serial.println (message);
}
if (data==104) //j
{
digitalWrite(10, LOW); //sets the LED 5
message = "LED 5 Off";
Serial.println (message);
}
if (data==112) //y
{
digitalWrite(6, HIGH); // turn on ALL LEDs
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
message = "ALL LEDs ON";
Serial.println (message);
}
if (data==122)//z
{
digitalWrite(6, LOW); //Turn off all LEDs
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
Serial.println ("ALL LEDs OFF");
}
else
{
digitalWrite(13, HIGH); //sets the LED 5
delay(3000); //3sec
digitalWrite(13, LOW);
delay(3000);
Serial.println (" else case executed ");
} ////end of else
}
data=0;
}
尝试char data=Serial.read()强> 并显示Android的Java代码
请参阅100%工作代码,了解如果您使用的是Arduino Uno,则如果您已经使用串行与蓝牙通信,则无法使用串行监视器打印值,因为它只有一个串行端口
您必须使用软件串行库或使用Arduino Mega,它有4个串行端口。我是Arduino的新手,但如果serial.read()从蓝牙设备读取数据,则serial.println()调用将写入同一蓝牙设备,不是Arduino串行监视器。不,我在串行监视器上也收到一些随机值,比如255240。我收到的手机的价值观是什么样的??先生,我也试过煤焦。好的,谢谢,让我也在链接上工作…-)尊敬的艾哈迈德爵士;链接上提供的代码是针对Android版本4.1的,但我有2.2。我对安卓有点陌生。你能告诉我为了确保Android应用程序正常运行需要做哪些更改吗?谢谢。先生@sudar我在用UNO。我现在尝试了一些其他代码,这是不同的,我得到了arduino对mobile的正确回复,但相应的LED条件没有正确执行,即当我通过BluetoothChat应用程序发送任何字母或整数时。从我的手机到arduino。它在串行监视器上打印255或254。下面是我的arduino代码arduino代码snapsots